こんにちは、ヤプリの阿部寛こと羽渕(@modokkin)です。
2019/05/22 に株式会社アカツキ様のオフィスで開催した Yappli Meetup 〜Site Reliability Engineering〜@アカツキ についてレポートしたいと思います。
今回は、サービスを運営する中で安定的に継続的に運用する上での経験から得たノウハウについて語りました。
AWSマルチアカウント管理術
加藤 諒さん(クラスメソッド株式会社)
気になったポイント
- 複数のロールやアカウントを使う場合は、Chromeのプロファイル切り替えがおすすめ。
→これは割と定番のテクニックなのですが、いちいちログインしなおすの面倒なのでおすすめです。 - CLIでもMFA 使う。
MFAに対応してないツールを使うときはassume-roleというツールを使う。 github.com
さらにdirenvを組み合わせれば、ディレクトリを移動するだけで自動的に認証してくれるのでめっちゃ楽。
→MFAを強制するポリシーのネックになる部分を簡単に解消できそうなので、早速試したいと思いました。
開発環境インフラ大刷新 ~幸せなインフラ運用を目指して~
守屋 邦昭さん(株式会社アカツキ)
気になったポイント
旧環境
- 今までは複数の環境を手動で管理していた。
- 構築手順、環境設定が属人化。
- chefで構成管理しているもののcredentialや.envはサーバに直置き。
- 仕組みを崩すと、現場に大きな負担がかかるので既存の運用は変えたくなかった。
→同じような悩みを抱えている方は多そうなので、ついウンウンと頷いてしまいました。slackからhubot経由で誰でもデプロイできる仕組みは良さそうですね。
新環境
- dockerに刷新し、ECSに移行した。
- インフラの構築はネットワークから作り直してCloudformation化。
- slackとhubotの組み合わせは引き継ぎ、その裏のデプロイの仕組みを刷新した。
- テンプレートは共通化し、環境差分はSSM Parameter Storeから環境変数を取得管理
→前述のような問題が複雑に絡み合っているため、割り切ってネットワーク単位で作り直すという選択を取り、結果スムーズに移行できたというのが印象的でした。
開発効率を最大化する デプロイメントパイプライン
佐藤 源紀(株式会社ヤプリ)
気になったポイント
- 運用期間が6年ぐらいで開発効率が低下していたので、1年ほど前から全体のリプレイスを進めている。
- 同じ轍を踏まないようにシステムリプレイスにあわせてゼロベースで構築。
- Protocol buffersを採用しインターフェイスを定義した。PRも見やすくなった。
- Lintチェック、フォーマッタを組み合わせてレビュー効率向上。
- 検証を含めてデプロイを自動化した。結果、安心安全が確保できた(当社比)。
- デプロイはブランチ運用。 →ブランチ名に対応する環境にPushすると自動的にデプロイ。
- 初期構築はTerraformに寄せ、変更が多い部分はソースコードに寄せている。 →一部Cloudformationも使っているのですが、今はTerraformに寄せています。
## 最後に 普段はどうしても自社の環境のことばかり考えてしまうのですが、他社様の事例について話を聞けて色々と気付きがありました。 懇親会では pulumi が話題に上がったりしたのですが、私も試して見ようかと思いました。以下は登壇いただいたクラスメソッド 加藤さんの記事。
ちなみに会場提供頂いたアカツキさんのオフィスですが、靴を脱いで家と同じようにリラックスできる空間を意識されているようで、すごく居心地がよかったです。
こんなオフィスだったら帰りたくなくなっちゃうなあ。
弊社も近日移転予定なので、ますます楽しみになりました。
そんなヤプリでは、そんな新しいオフィスで一緒に戦って働くメンバーを募集しています。
直接、採用担当に連絡しづらい人は @modokkin にDMいただけたらラフにお相手しますー