京都から福岡に引っ越した

もう2ヶ月以上前の話になるけれど10/21に京都から福岡に引っ越した。

引っ越した理由

2022年5月に会社の働き方制度が変更され、日本全国のほとんどで働けるようになった。

これきっかけで自分の住む場所について考え直し引っ越すことに決めた。

hatena.co.jp

引っ越した理由は一言で言えば「京都にこのまま住み続けるより面白いことをしたい」が一番の理由。

趣味で出かけることも多いけど、京都にはもう4年以上住んでいて近くの主要な場所は行ったというのもあり、新しい場所に行ってみたいという気持ちが強くなってきた。

それと事前にチーム異動することが決まっていたので、働き方とかを始めとした生活習慣をこの機会に新しくするためにというのもあった。

異動前のチームでは比較的激しく働いていて、その働き方を新しいチームでもそのまましてしまうともうしばらくは抜け出せなくなる予感がしたので周りの人が変わるタイミングで環境も変えることにした。

京都の部屋は2018年から住んでいて自宅で働くことを想定してないし当時から大きく給料も上がったので、学生の延長みたいな部屋からグレードアップするというのも目的としてあった。

という感じで諸々を新しくして自分が面白いと思うのもそうだしそれをまた会話のネタとして話題を提供できれば良いなと思って思い切って今と全然違う環境に引っ越すことにした。

場所に関して特に福岡に縁があるわけでもなくて、今まで住んだことのあるところが名古屋、埼玉、京都で次を考えたときに福岡あたりが面白いだろうと思ってただそれだけで決めた感じ。

なのでまた何年かしたら全然違うところに引っ越す可能性も十分にある。

部屋に関して

ざっくり部屋はだいぶグレードアップしたけど市街地への距離はあんま変わらない感じの変化になっている。

Before

  • 家賃5.6万円、共益費3000円 合計5.9万円
  • 築34年 1K 専有面積 24.7㎡
  • 京都地下鉄東西線 二条城前駅 徒歩5分
    • 三条京阪駅から3駅220円
  • インターネット別5000円ぐらい
  • 会社まで片道徒歩15分
  • この部屋

After

  • 家賃10.1万円、共益費3800円=10.48万円
  • 新築(2022年10月)1LDK 専有面積 40.9㎡
  • 西鉄天神大牟田線 高宮駅 徒歩4分
    • 西鉄天神駅まで3駅160円
  • インターネット込み
  • ZEH-M
  • 建物

2ヶ月住んでの感想

他の地域との違い

よく言われるIT先進みたいなのは一日乗車券がスマホでそのまま買えて使えたり、粗大ゴミの支払いがLINEからできるみたいなところで感じるのがちょくちょくある。

とはいえ自分が住んでいるところは市街地とは離れていて個人でやっているお店も多いので現金のみの店もまだ多い。

スーパーの品揃えも結構印象違っていて、メーカーも九州のものも多く、海鮮コーナーやお酒のコーナーが広め。

物価に関しては京都がそもそも高いから比較はフェアじゃないけど安く感じる。ここ最近の高騰で差は縮まった印象だけど、福岡で高いものは明らかに質が良いと感じるので安いのは間違い無いと思う。

ゴミ捨てに関しては日没から夜24時までに出せば良いので時間をほとんど気にしなくて良くなり非常に楽。

逆に24時間ゴミ出し可みたいな物件の価値はかなり下がるので検索条件から外すのがおすすめだと思う。

あとはよく言われるのは人が温かいというのは確かにあって、引っ越しして2日後にはこのツイートの内容に遭遇している。

これ以外にも海鮮丼を買いに行ったらおまけであら汁用の魚を丸々おまけでくれたりとかびっくりすることがあって楽しい。

部屋や周りの環境について

家賃が倍近くになって、福岡関係なく体験もかなり良くなったのでその紹介もする。

今の部屋はZEHという簡単にいえば太陽光発電+高断熱で電気代などがかなり抑えられる物件になった。

電気代が抑えられるのはもちろんだけど、それよりすごいのは断熱で、エアコンを入れ始めたのも12月になってから。

何日か前に雪が降ったけど、その日も夜にエアコンを10分くらい入れたらあとは朝まで布団一枚で寒くないくらいで快適に過ごせている。

その分家賃は相場より高いけど、防音に関しても性能が良いのに加えて家賃の高さによるものか普段は生活音が全く聞こえないのも嬉しいポイント。

あとはウォークインクローゼットも最高で、いろんな縁で持っている服をどんどん収納できたり、引っ越しで持ってきた段ボールを全てそこにしまって寝室含め広々としたスペースを確保できたりと思ってた以上に役に立っている。

周りの環境に関しても徒歩数分のところに普通のスーパーと高級スーパーがあり、10分も歩けば24時間営業のスーパーもあるのでもはやスーパーに行くのが趣味になっている。

特に高級スーパーに関してはそこそこ広いので品揃えも十分で2~3日に1回くらいのペースで行って酒とつまみを買うみたいな生活をしているので居酒屋を全然開拓できてない。

もし今後また引っ越すことがあってもZEHとウォークインクローゼットありで高級スーパーの近くという条件は外せないと思うくらいには今の部屋を気に入ってる。

不満点

目立って不満なところというと可燃ごみ以外のゴミ捨てが月一ということで、ちゃんと日にちを覚えていないと全然出せないのが困る。

ウォーターサーバーを契約したのでペットボトルのゴミに関してはほとんど出ないようになっているのでなんとかなってるけど缶や瓶は難しい。

あとは朝など市街地に出る道路は混雑していて、バスに関してはそこそこ遅延している感じなので時間を気にしているときは余裕を持った方がいい印象。

とはいえバス自体の混雑は京都の方が酷いのでどこもそんな感じかもしれない。

部屋探しについて

日本全国どこでも働けるようになったということで部屋探しはめちゃくちゃ難しかった。

通勤もしないので駅からの距離はもはやどうでも良く、何回か行ったことはあるにしても土地勘はないので結局全域から調べることになって選択肢が多い。

最初は無駄に専有面積の広い順で検索していたけれどあんまりピンと来ず、絞り込みをしたところで変わらず結果は大量に出るので難航していた。

そこから作戦を変えて広さはそこそこに高級志向で行こうと思ってシャーメゾンにたどり着き、断熱も大事だと思って最終的にシャーメゾンのサイトで検索条件に入れたのは「福岡市全域」「1LDK」「ZEH」だけであとはそこからの選択肢で決めた。

京都から福岡の引越しということで内覧から契約までできる限りオンラインで済ませたかったけどそこもなんとかなった。

今回の部屋を取り扱っている不動産屋がLINEでのやりとりに対応していて、重要事項説明も含めて全てオンラインで済ませることができた。

不動産屋に行ったのは引っ越し当日鍵の受け取りだけだった。

ちなみに今回の引っ越しで掛かった費用は契約の57万+引っ越し業者の12万で約70万近い出費で多分人生で一番でかい出費になった。

今回利用した不動産屋はこちら。

www.t-living.net

仕事の変化は特になし

同じ自宅からのリモートワークからとはいえオフィスからの近さが段違いになったので何かしら変化があるだろうかと思ったけど、ありがたいことに本当に何も変わらず仕事ができている。

現行のフレキシブルワークスタイル制度から約半年、それ以前から考えると約二年間オフィスを前提にしない働き方を全社で行っていたこともあってこの辺はさすがだと思った。

最後に

今までいろんな人の部屋に遊びに行ったことはあったけど、呼んだことはほとんどないなと思ったのでそのお返しといってはなんだけど是非遊びにきてください。

「ユメミルクスリ」をプレイした

2005/12/22発売のユメミルクスリを最後までプレイした。

この作品を今プレイした理由は2022/10/05に公開された以下の動画で作品のOPを聴いたから。

www.youtube.com

個人的にここ一年近く配信を見ていた人の久しぶりの歌ってみた動画で、自分はこの作品の世代でもないし知名度を正確には知らないので、なぜこの曲を選んだのか全く理由がわからず逆に興味が出てきたと言う感じ。

ユメミルクスリ自体も十年以上前から存在は知っていた作品だし、5月にも同じブランドの「つくとり」をプレイしていたのでこの機会にやってみるかと思って始めた。

感想はあまり言うとネタバレになるので細かいところは言えないけれど、作品内のとあるキャラクターと歌った人の活動におけるスタイルが強く重なる部分が感じられる部分があり、そこを意識して欲しくて選んだのではないかと思えるような印象的な作品だった。(もちろん合っているかは本人にしかわからないけれど)

少なくとも自分には二人の初見のインパクトと長く見てきた中での印象のどちらもがかなり近くてルーツとすら思えるほどだった。

また別のあるルートではそう言ったことと関係なく自分の過去の体験を思い出すようなシーンもあり先が気になって一気にプレイしてしまった。

こういった複数の理由もあって個人的にかなり刺さった作品になった。

パッケージに似合わずすごく現実的な作品で描写など人を選ぶ部分はあるけれど、あえて言うなら学生時代に死にたいと思ったことがあるような人には特に刺さるそんな作品だと思う。

余談

仕事でAsanaを使っているのでスクショを同僚に見せたところウケが良かった。

Fluent Bit のメトリックを Mackerel に送る

Fluent Bit では以下のようにHTTP_Serverを有効にすることで内部のメトリックをHTTP経由で /api/v1/metrics というパスからJSON形式で取得できるようになります。*1

[SERVICE]
  HTTP_Server       On
  HTTP_Listen       127.0.0.1
  HTTP_PORT         2020

これで各プラグインで今までに処理したレコード数やバイト数が取得できるわけですが、実はこのJSONはmackerel-plugin-jsonでそのまま扱える形式になっています。

下はoutputのcloudwatch_logsプラグインに対してのメトリックを送信する例です。

$ mackerel-plugin-json -prefix='fluent-bit' -url='http://127.0.0.1:2020/api/v1/metrics' -diff='.?' -include='output.cloudwatch_logs'
fluent-bit.output.cloudwatch_logs.1.retries 0.000000    1653008277
fluent-bit.output.cloudwatch_logs.1.retries_failed  0.000000    1653008277
fluent-bit.output.cloudwatch_logs.1.dropped_records 0.000000    1653008277
fluent-bit.output.cloudwatch_logs.1.retried_records 0.000000    1653008277
fluent-bit.output.cloudwatch_logs.1.proc_records    0.000000    1653008277
fluent-bit.output.cloudwatch_logs.1.proc_bytes  0.000000    1653008277
fluent-bit.output.cloudwatch_logs.1.errors  0.000000    1653008277

このようにdiffオプションを使ってFluent Bitで1分間に処理したログに関するメトリックをMackerelで確認することができるようになります。

ユースケースとしては、Fluent Bit経由でCloudWatch Logsにエラーログを送っているけどエラーの増加はMackerelで通知したいという時にわざわざCloudWatchから集計しなくても良くなるというのがあります。

ちなみにmackerel-container-agentのpluginsイメージにはmackerel-plugin-jsonが最初から同梱されているので、HTTP_Serverを有効にすればあとはすぐに取得できるようになります。

参考

htnosm.hatenablog.com

cohalz.co

distrolessのnonrootイメージを使おう

この記事は はてなエンジニア Advent Calendar 2021 11日目の記事です。

コンテナのベースイメージとしてdistrolessを選択肢にするということがここ最近増えてきました。

そんなdistrolessを非rootユーザで使おうとしたらとても簡単だったのでその紹介です。

どのくらい簡単かというと、Goのアプリケーションであれば以下のように変えるだけで対応できます。(コメントアウト部分は元々のrootユーザで動かしていた場合のもの)

FROM golang:1.17 as builder

WORKDIR /go/src
COPY go.mod go.sum .
RUN go mod download
COPY . .
RUN go build -o /out/myapp .

# FROM gcr.io/distroless/static:latest
FROM gcr.io/distroless/static:nonroot

# COPY --from=builder /out/myapp /usr/local/bin/
COPY --from=builder --chown=nonroot:nonroot /out/myapp /usr/local/bin/

distrolessでは2019年にマージされた以下のプルリクエストで非rootユーザである nonroot ユーザ及びそれを利用するための :nonroot というイメージタグが導入されました。

github.com

:nonroot のタグはstaticに限らずdistrolessの全イメージで使うことができ、簡単には :latest はrootユーザで :nonroot はnonrootユーザという区別がされています。

なので非rootユーザ対応は基本的には :nonroot にするだけで良いですが、マルチステージビルドの場合はbuilderステージで作成されたものはユーザを指定していない限りrootで作成されて実行できなくなってしまうのでCOPY時にchownオプション*1nonroot:nonroot を指定してあげる必要があります。

ちなみにnonrootというユーザは :nonroot イメージに限らずどのイメージでも作成されているのでDockerfileに USER nonroot と書くという方法でも冗長だけど一応実現は可能です。

cohalz@co ~ % docker run -it --rm gcr.io/distroless/static:debug
/ # cat /etc/passwd
root:x:0:0:root:/root:/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/sbin/nologin
nonroot:x:65532:65532:nonroot:/home/nonroot:/sbin/nologin

ちなみにdistrolessはnonroot以外にもbusybox入りのdebugイメージやアーキテクチャも指定することができますが、全部使いたい場合は順番としてはdebug-nonroot-arm64 といった順番で指定するという感じになっています。

この :nonroot イメージは少しずつ利用が広がっており、google/koも2020年10月に出たv0.6.0からデフォルトではこのnonrootイメージを使うようになっています。

cloud.google.com

セキュリティ対策をちゃんとしようという流れがある中、コンテナイメージの非root化をまだ全然やれてない人は数行変えるだけで試せるdistrolessからやってみてはどうでしょうかという記事でした。

明日のアドベントカレンダーの担当は id:papix さんです。

Google Cloud Innovators Gym Japan に参加して Professional Cloud Developer に合格した #giggcp

Google Cloud Innovators Gym JapanというGoogle Cloud主催のトレーニングプログラムに第二期生として参加しました。

その結果Professional Cloud Developerに合格することができた*1のでそのレポートです。

cloud.google.com

トレーニングを受ける前の経験

  • Google Cloudの実務経験はなし
    • AWSの経験はあるけど資格は一つも取ってない
  • Kubernetesに関してもPod、ReplicaSet、Deployment、Serviceが何を指しているかはわかるくらいの知識くらいしかない状態

試験に向けて勉強したこと

基本的にはトレーニングプログラムで用意されたものを使って対策しました。

具体的にはpixivさんの記事にあるとおりで Google Cloudのエンジニアが行うセッション+ハンズオンと、Courseraのコースが無償で提供されるのでそれを進めていくという感じです。

inside.pixiv.blog

例えばこんなコースを受けていました。 www.coursera.org

Courseraに関しては動画を見る・Qwiklabsと連携したハンズオンを行う・テストを受けるのサイクルで結構効率よく学べました。

下の記事にもある通り、Qwiklabsのハンズオンが非常に良くできていて、実際にGoogle Cloudの環境を用意してハンズオンをすることができました。 コマンドを打つときも基本的にCloud ShellとCloud Shell Editorを使う手順になっているので手元の環境に依存することはないです。

dekotech.dekokun.info

その他では本を読むとかはしていなくて、Courseraのテストや模試で間違えたところはちゃんとドキュメントを見るというのをやったくらいです。

掛けた時間としてはセッション+ハンズオンとCourseraのコースを8つほど受けて、大体50時間弱くらいかなと思います。

スケジュールとしては6月に入ってからCourseraのコースをやり始めて6/24にAssociate Cloud Engineerに合格、7/6にProfessional Cloud Developerという感じです。

感想

普段業務で触れていないGoogle Cloudについて知る機会になってとても楽しかったです。

試験の内容自体もクラウドネイティブなアプリケーションの構築ができるかどうかを問われている問題も多く、腕試しという感じで楽しく受けられました。

せっかくなのでトレーニングプログラムの期間中にProfessional Cloud Architectも取得目指してみたいなと思いました。