AWS AppConfig のアイコン

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・オンプレミスとの比較

Azure の対応サービス Azure App Configuration
オンプレミスでの対応手段 HashiCorp Consul、Spring Cloud Config、LaunchDarkly (フィーチャーフラグ)

AWS の優位点

  • デプロイ戦略と CloudWatch アラーム連動の自動ロールバック機能により、設定変更に起因する障害を自動的に検知・復旧できる
  • JSON スキーマや Lambda 関数による設定値のバリデーションが組み込まれており、誤った設定のデプロイを事前に防止できる
  • Lambda Extension として提供されるため、Lambda 関数への統合がコード数行で完了し、設定値のキャッシュも自動的に行われる

注意点

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

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