AWS AppConfig
アプリケーションの設定を安全にデプロイ・管理するサービス
何ができるか
AWS AppConfig は、アプリケーションの設定値やフィーチャーフラグを安全にデプロイ・管理するサービスです。設定変更をアプリケーションの再デプロイなしにリアルタイムで反映でき、段階的なロールアウトやロールバック機能を備えています。設定のバリデーション (検証) 機能により、誤った設定がデプロイされるリスクを低減します。AWS Systems Manager の一機能として提供されています。
どのような場面で使うか
フィーチャーフラグによる新機能の段階的リリース、アプリケーションの動作パラメータ (タイムアウト値、リトライ回数など) の動的変更、環境ごとの設定管理 (開発・ステージング・本番)、メンテナンスモードの切り替えなどに活用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
テレビのリモコンに例えるとわかりやすいでしょう。テレビ本体 (アプリケーション) を分解して部品を交換しなくても、リモコン (AppConfig) で音量や明るさ (設定値) を自由に変更できます。さらに、設定を少しずつ変えて様子を見る (段階的ロールアウト) ことも、元に戻す (ロールバック) ことも簡単にできます。
AppConfig とは
この記事は約 2 分で読めます。 AWS AppConfig は、アプリケーションの設定を安全に管理・デプロイするサービスです。アプリケーションの動作を変更したいとき、通常はコードを修正して再デプロイする必要があります。AppConfig を使えば、設定値の変更だけでアプリケーションの動作を変更でき、再デプロイは不要です。設定変更に伴うリスクを最小化する仕組みが組み込まれています。
フィーチャーフラグ
AppConfig のフィーチャーフラグ機能を使うと、新機能の有効・無効をコードの変更なしに切り替えられます。たとえば、新しい検索機能を全ユーザーの 10% にだけ公開し、問題がなければ徐々に 100% に拡大するといった段階的リリースが可能です。問題が発生した場合は、フラグを無効にするだけで即座に機能をオフにできます。
安全なデプロイ
AppConfig は設定変更を安全にデプロイするための仕組みを備えています。デプロイ戦略として、一定時間をかけて段階的に設定を反映する方式を選択できます。デプロイ中に CloudWatch アラームが発生した場合は自動的にロールバックされます。また、設定値のバリデーション (JSON スキーマや Lambda 関数による検証) を設定でき、誤った値がデプロイされるのを防ぎます。
はじめかた
Systems Manager コンソールの AppConfig メニューからアプリケーションを作成し、環境 (開発、本番など) を定義します。設定プロファイルを作成して設定値を登録し、デプロイ戦略を選択してデプロイします。アプリケーション側では AppConfig エージェントまたは API を使って設定値を取得します。Lambda 関数の場合は Lambda Extension として簡単に統合できます。
Azure・オンプレミスとの比較
AWS の優位点
- デプロイ戦略と CloudWatch アラーム連動の自動ロールバック機能により、設定変更に起因する障害を自動的に検知・復旧できる
- JSON スキーマや Lambda 関数による設定値のバリデーションが組み込まれており、誤った設定のデプロイを事前に防止できる
- Lambda Extension として提供されるため、Lambda 関数への統合がコード数行で完了し、設定値のキャッシュも自動的に行われる
注意点
- AppConfig の料金は設定の取得回数に基づく従量課金で、フリーティアとして月 100 万回の設定取得が無料
- 設定値の取得にはポーリング間隔の設定が必要で、間隔が短すぎるとコストが増加し、長すぎると設定反映が遅れる
- SSM Parameter Store との使い分けとして、段階的デプロイやバリデーションが必要な場合は AppConfig、単純なキーバリューの保存には Parameter Store が適している
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。