AWS AppConfig のアイコン

AWS AppConfig

アプリケーションの設定を安全にデプロイ・管理するサービス

何ができるか

AWS AppConfig は、アプリケーションの設定値やフィーチャーフラグを安全にデプロイ・管理するサービスです。設定変更をアプリケーションの再デプロイなしにリアルタイムで反映でき、段階的なロールアウトやロールバック機能を備えています。設定のバリデーション (検証) 機能により、誤った設定がデプロイされるリスクを低減します。AWS Systems Manager の一機能として提供されています。

どのような場面で使うか

フィーチャーフラグによる新機能の段階的リリース、アプリケーションの動作パラメータ (タイムアウト値、リトライ回数など) の動的変更、環境ごとの設定管理 (開発・ステージング・本番)、メンテナンスモードの切り替えなどに活用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

テレビのリモコンに例えるとわかりやすいでしょう。テレビ本体 (アプリケーション) を分解して部品を交換しなくても、リモコン (AppConfig) で音量や明るさ (設定値) を自由に変更できます。さらに、設定を少しずつ変えて様子を見る (段階的ロールアウト) ことも、元に戻す (ロールバック) ことも簡単にできます。

AppConfig とは

AWS AppConfig は、アプリケーションの設定を安全に管理・デプロイするサービスです。アプリケーションの動作を変更したいとき、通常はコードを修正して再デプロイする必要があります。AppConfig を使えば、設定値の変更だけでアプリケーションの動作を変更でき、再デプロイは不要です。設定変更に伴うリスクを最小化する仕組みが組み込まれています。

フィーチャーフラグ

AppConfig のフィーチャーフラグ機能を使うと、新機能の有効・無効をコードの変更なしに切り替えられます。たとえば、新しい検索機能を全ユーザーの 10% にだけ公開し、問題がなければ徐々に 100% に拡大するといった段階的リリースが可能です。問題が発生した場合は、フラグを無効にするだけで即座に機能をオフにできます。

安全なデプロイ

AppConfig は設定変更を安全にデプロイするための仕組みを備えています。デプロイ戦略として、一定時間をかけて段階的に設定を反映する方式を選択できます。デプロイ中に CloudWatch アラームが発生した場合は自動的にロールバックされます。また、設定値のバリデーション (JSON スキーマや Lambda 関数による検証) を設定でき、誤った値がデプロイされるのを防ぎます。

はじめかた

Systems Manager コンソールの AppConfig メニューからアプリケーションを作成し、環境 (開発、本番など) を定義します。設定プロファイルを作成して設定値を登録し、デプロイ戦略を選択してデプロイします。アプリケーション側では AppConfig エージェントまたは API を使って設定値を取得します。Lambda 関数の場合は Lambda Extension として簡単に統合できます。

注意点

  • AppConfig の料金は設定の取得回数に基づく従量課金で、フリーティアとして月 100 万回の設定取得が無料
  • 設定値の取得にはポーリング間隔の設定が必要で、間隔が短すぎるとコストが増加し、長すぎると設定反映が遅れる
  • SSM Parameter Store との使い分けとして、段階的デプロイやバリデーションが必要な場合は AppConfig、単純なキーバリューの保存には Parameter Store が適している

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。