VPoTの岩本 (iwamot) と申します。このブログを含め、AWSについてのアウトプットが好きで続けていたら、先日 AWS Community Builder (Cloud Operation) に選んでいただけました。これを励みに、さらにアウトプットしていきます。
ところで、SRE Magazineという、株式会社MIXIの井上さんが発刊準備を進められているWeb雑誌があり、ぼくも寄稿できないかネタを考えていたところ「非常時の可用性をフィーチャーフラグで保つアイディア」が思いつきました。
アイディアの詳細は発刊をお待ちいただくとして(追記:発刊されました!)、AWSでフィーチャーフラグといえばAppConfigなので、ENECHANGEでもAppConfigが活用できそうか、試してみることにしました。ぼくもENECHANGEも、AppConfigは未経験だったのです。
ECSで簡単に使える!
まず気になったのは、ENECHANGEでよく使っているECSで、AppConfigの設定データが簡単に参照できるかどうかでした。
この点は、AppConfigエージェントコンテナをサイドカーとしてタスクに含めることで、他のコンテナからHTTPで参照できることがドキュメントですぐに分かりました。
また、実際にECSタスクを作り、下記の動作を確認しました。
- Webコンテナから設定データが参照できること
- AppConfig側で新たな設定データをデプロイし、しばらくすると(エージェントのポーリング間隔を待つと)Webコンテナから新たな設定データが参照できること
アプリケーションの再デプロイをすることなく、短い時間で設定データを変えられるので、非常時をはじめとして、使いどころが色々ありそうに感じます。
ローカルでの開発も簡単!
次に気になったのはローカルでの開発です。App Configの設定データによって処理を分岐するのが一般的な使い方でしょうから、ローカルでの開発時にも設定データを切り替えてテストしたくなるはずです。
この点も考えられていて、エージェントのイメージで LOCAL_DEVELOPMENT_DIRECTORY
環境変数を指定し、そのディレクトリの所定のパスに設定データを置くことで、ECS環境と同じような感覚で参照したり切り替えたりできるようになっています。
サンプルをGitHubに置いたので、ご興味のある方はお試しください。
結論、ばっちり活用できそう
ということで、ECSで運用するアプリケーションにおいては、ばっちり活用できそうな印象でした。
ENECHANGEでは、社内製のTerraformモジュールでECS環境を管理しているため、そのモジュールに手を入れる形で、AppConfigを簡単に使えるようにしていきたいと思っています。
こんな楽しい仕事ができるポジション、募集中です
さて、ぼくがマネージャーを務めているCTO室は、日々こんな感じで、便利そうな機能やサービスを試しては、事業部に導入を提案しています。楽しくて仕方ありません。
こんな楽しい仕事ができるポジションに、まだ空きがあります。下記エンジニア採用サイトの「事業部を問わない求人 > SRE」です。ご興味のある方、ぜひご覧ください🙏