仕事
2年目 (新卒1.8ヶ月) で引き続き SRE グループで色々をやった。今年は組織やチーム体制が変わったり、メンバーが別のプロジェクトに一時的に参加することになったりということが起きて、これは自分にとってはじめてのことだった。結果、去年までしっかりと理解できていなかった ECS 周りや、自前のバッチ処理システム、非同期ジョブ実行システムといった基盤も運用したり改善することも業務のスコープとなった。基盤勉強会という勉強会を何度かやって大枠をつかんだ後は、業務で必要に応じてコードを読んだり PR を出す過程で理解していった。まだ Fargate は多くのユースケースで実用段階ではなく、大半のコンテナは EC2 で動かす必要があり、それゆえに EC2 インスタンスの管理は ASG や Spot Fleet を使いつつもある程度自前でカバーしていかなければならず、そのためのシステムが多数あることを知って驚いた。このあたりは最近 ASG の機能が増えたり、今後 ECS がよくなっていくことで、いくつかのシステムが不要となりシンプルになっていく可能性はある。
今年の目立った動きとして、サービス開発者の声を拾いプラットフォーム側の改善を行うところは一貫していたと思う。もちろん他のメンバーもガンガンソフトウェアを書いてセルフサービス可能にしているが、未来を見据えたプロアクティブな改善というよりは、現場の声を拾ってそれを咀嚼して改善案を実装しサービス開発者 (と SRE) の生産性を上げるようなリアクティブ性のある動きといえる。ジョブやバッチのログをより高速に (かつ安く) 見れる仕組みを導入したり、依頼が多くなってきた ECS サービスのスケジュールスケーリング機能を内製のコンソールに組み込んだりした。ECS 運用と密接に関係する eagletmt/hako にコミットしたり、社内の hako 拡張に対してのコミットも増えた。社内では、評価を受ける際他人からフィードバックをもらうプロセスがあり、今年はチームメンバーではない外の組織からフィードバックをもらったところ、自分の動きが伝わっていたことを実感できたので良かった。この動きについてはマネージャーからも比較的評価されているところなので、引き続き生産性向上には寄与していきたい。
運用のセルフサービス化に向けて、アラーティングを展開してサービスチームに届ける下地の整備もした。いきなり PagerDuty のアカウントを渡してオンコールになってもらうというやり方ではなく、最初は Slack での通知からスモールスタートすることにした。アプリケーションにチームの Slack チャンネルを紐付け、タスクが不安定・OOM Killed といった ECS レベルのエラーをそのチャンネルに流すようにするところから始めた。通知が多すぎてノイズになったり狼アラートにならないように気をつけ、社内ブログで頻繁に宣伝したり、サービス開発者の Slack チャンネルをウォッチしてアラート対応のサポートをしたりした。同時に Runbook の拡充・布教も行った。最近だと ECS サービスに紐づく ELB の CloudWatch メトリクスに対して、5XX error rate high といった CloudWatch Alarm を低コストで設定できる仕組みを作って、興味のありそうなサービスチームと連携して試してもらったりしている。今では、自分が整備した下地に、RDS のイベント通知など他のメンバーが導入した仕組みが乗っかっていっている状況だ。
オーナーシップを意識して、誰もやっていない領域を拾っていく動きも去年よりはできたと思う。自分がオンコールのときに海外から攻撃を受けて消耗した経験をもとに、攻撃を対処するオペレーションをチャットコマンド化した。金銭コストの事情がありリクエストを弾くのは NGINX と WAF の2つのレイヤーを用意したことで、あらゆるサービスを素早く守れるようにした。実際に攻撃を受けて対処することは複数回あった。また、TLS 証明書の運用がセキュリティグループから SRE グループに引き継がれることになり、引き継ぐ担当になった。まだ引き継いだばかりではあるが、早速有効期限の監視方法を近代化したりしている。必要ならばソフトウェアを書いて可能な限りの運用の効率化をしていきたい。
夏インターンのインフラパートの講師も担当した。今年の夏インターンは講師陣で話し合ってやりたいことをやることにした結果、内容がてんこ盛りになり、例年やっているインフラパートの内容をベースにすることができなくなった。なので一から内容を設計したり、自由時間で取り組み課題を作成したり、講義資料をつくった。インターン駆動で自分も認証認可をまともに勉強したり DynamoDB の内部に詳しくなることになった。インターンの TA は担当したことがあったものの、講師を担当するのは始めてのことで、不慣れな部分もあって準備から完了までほぼ1ヶ月を費やしてしまった。頼れる部分は TA にデリゲートしたり、他のパートとの繋ぎこみのコミュニケーションをもっとうまくやったりと改善の余地はあった。インフラパートの後の懇親会で、何人かのインターン生がインフラに興味を持てたと言ってくれたり、そのあと OJT で来てくれて成果を出していったりしてくれていたのを見て、少しは貢献できたのではないかと思う。イントロで使った資料は これ。
他には、R&D の機械学習プロダクトを運用に乗せるためのインフラ設計や実装をしたり、SRE チームでの雑談会を開催したりした。一方で去年取り組んでいたカオスエンジニアリングの先については、進捗が芳しくなかった。自分のなかで優先度を変えたことが大きいが、来年も引き続きシステムの可用性を向上させる取り組みは継続したい。
趣味
Wake Up, Girls! が3月に解散した。ガチな追い方はしていなかったものの、2015 年からライブやイベントに参加していたので、虚無感はそれなりにあった。解散後2週間ぐらいは WUG の曲が流れても向き合えていなかったように思う。一方で Re:ステージ! への真剣さが増した。プロジェクト自体はまあまあ初期の頃から知っていて、楽曲に魅入られていたのでファーストライブから参加はしていた。ライブ以外にもイベントを多く打っていることは知っていて、WUG の抜けた穴を埋めたかったのかは定かではないが、今年の5月に初めてライブではないイベントに参加した。リステは本当に接近が多くて、ライブがなくても接近で会えることは喜ばしいことだ。単純なオタクなので接近に何回か通ったところで推しもできたので推しの現場によく出向くようになった。プレゼントを贈ったり手紙を出すのも数年ぶりにやった。会社の同僚にリステいいですよと軽く振ったらどっぷりハマっていて、気軽にリステの話ができる人ができたのも良かった。今年の頭に弊社の技術カンファレンスに登壇したあとの懇親会で、たまたま共通の友人を持っていてかつリステが好きな人とも知り合いになれて良かった。そんなリステがついにアニメ化して、久々にアニメに真剣になれた。毎週アニメが見れる幸せを感じた。リリイベもあったし勢いがついてきたなかでの 3rd ライブがつい先月あった。感想は ここ に書いた通りとにかく最高で、次回のワンマンライブも発表され胸をなで下ろした。
リステ以外にも深夜アニメは見ている。劇的に見る本数が減った去年と比べると、社会に慣れたのか少し本数が増えた。基本的に海外のアニメ配信サイトにいって English sub/dub で見ている。英会話はやめたので多少でもなんでも英語に触れる機会があったほうがいいだろうとの思いがあった。
オタク以外の趣味がほしい。
その他
趣味プログラミングはあまりしていない。Nature Remo とご家庭 Prometheus を導入して家の環境のモニタリングをできるようにしたりした。仕事ではフロントエンドに React JS を使うことが多かったので、そこで得た知識を生かして https://rst-lyrics.itkq.jp を作ったりした。思い出せるのはそのぐらい。Rust をかじったりもしたがまともなモノはまだ作れてない。SRE の同僚にはツールを Rust で書いてくる人が何人かいるので、ある程度読み書きできるレベルにはしたいと思っている。