MENU

AWSでFeature Flag を使う

アフィリエイト広告を利用しています

読みたい場所へジャンプ

はじめに

2025年も残り半分を切りました。年々、時が経つのが早いなと感じています。
最近のニュースでは、北海道の気温が日本で一番高い日になったとか・・・。避暑地はどこにあるんでしょうか。。
私もこの夏、北海道に旅行するのですが果たして・・・。
さて、今回はFeature Flagについて書いていきます。

Feature Flag とは

Feature Flagは、特定の機能を有効/無効にする制御フラグを用意して、アプリケーションの動作をフラグによって切り替える開発技術です。コードは先に本番環境に入れて、制御フラグの切替を別のタイミングで実施したり、開発担当だけに機能を有効にしてテストを実施したりと、開発やリリースに柔軟性を持たせることができます。

https://martinfowler.com/articles/feature-toggles.html

AWS環境では、簡単に使われているのがパラメータストアです。設定データや機密データを管理でき、Secure Stringパラメータによって登録値の暗号化も可能です。パラメータストアに登録したFeature Flagと他の設定データを、ECSの環境変数で取得したりして機能の有効化/無効化をしていたりします。
しかし、ECSの環境変数取得はデプロイ時にしかできず、稼働中のECSには反映されません。そのため、パラメータストアではFeature Flagとしての機能を活かしきれません。
そこでとっておきの機能がAppConfigです。

AppConfig とは

AppConfigは、2022年に提供が開始されたAWSの機能フラグ管理サービスです。
Systems Managerの配下にあり、以下のような画面になります。Feature Flagの管理はここで作成・管理できるのですが、パラメータストアに登録したフラグも流用することができます。

作成方法は、公式ドキュメントにある通りで、IAMやアプリケーションの作成を行います。
https://docs.aws.amazon.com/ja_jp/appconfig/latest/userguide/creating-feature-flags-and-configuration-data.html

これに加えて、AppConfigエージェントというAppConfigの値をアプリケーションの代わりに自動で行ってくれるサービスがあり、Public ECR Gallery にもイメージがあります。
https://gallery.ecr.aws/aws-appconfig/aws-appconfig-agent
これを、フラグを利用するアプリケーションのサイドカーコンテナに追加することで実装が可能です。
https://qiita.com/t_tsuchida/items/64ec5d8af2ce326b962e

タスク定義のJSONだと、environmentでAppConfigのアプリケーションや環境を指定しています。

“environment”: [
{
“name”: “AWS_APPCONFIG_APPLICATION”,
“value”: “test-application”
},
{
“name”: “AWS_APPCONFIG_CONFIGURATION”,
“value”: “test-flag”
},
{
“name”: “AWS_APPCONFIG_POLL_INTERVAL”,
“value”: “60s”
},
{
“name”: “AWS_APPCONFIG_ENVIRONMENT”,
“value”: “dev_beta”
}

アプリケーションからの呼出しだと、API呼出しにつき課金されてしまいますが、エージェントを使用した方が課金額が抑えられるのでおススメです。

20代の転職なら、あなたにぴったりの転職エージェントを複数紹介!【キャリコン】
20代の初めての転職はポテンシャル採用の【Every Answer】
若手ハイクラス転職はMyVision

さいごに

今回は、インフラというより開発関連のお話になりましたが、業務上、開発を支援するための知識技術も重要になってきます。Feature Flagはよく使われる手法なので、インフラエンジニアとしても是非理解したいところです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

社会人10年目、IT業界6年目のインフラエンジニア
大学では数学系を専攻し、新卒で鉄道会社の電気技術職に従事
もっと自身が活躍できるところへと思い転職、現在に至る
Ansible、AWS CDK、TerraformとIaC案件の経験が多め

コメント

コメントする

読みたい場所へジャンプ