ある企業が AWS 上でマルチリージョンのアプリケーションを運用しており、各リージョンのアプリケーションが独自の設定(フィーチャーフラグ、設定値)を持つ必要があります。設定変更は各リージョンに即座に反映される必要があり、設定ストアへの書き込みはグローバルに一元化したいと考えています。また、設定変更の監査ログも必要です。最も適切なアーキテクチャはどれですか?
- A. Amazon DynamoDB Global Tables に設定を保存し、各リージョンのアプリケーションが直接読み取る
- B. AWS AppConfig を使用して設定プロファイルを一元管理し、マルチリージョンへの設定デプロイを AppConfig のデプロイ戦略(段階的なロールアウト)で制御する。AppConfig の変更は CloudTrail で監査ログが記録され、Lambda エクステンション経由でアプリケーションが設定の変更を自動検知できる
- C. 各リージョンに独立した Systems Manager Parameter Store を作成し、デプロイパイプラインで設定変更を各リージョンに手動配布する
- D. GitHub リポジトリで設定ファイルを管理し、CodePipeline でマルチリージョンに自動デプロイする
解答と解説を見る
正解: B
AWS AppConfig はアプリケーション設定の管理・デプロイに特化したサービスです。設定プロファイルを一元管理し、段階的なロールアウト(全体の 10% → 50% → 100% など)で安全にデプロイできます。AppConfig Lambda エクステンションにより、アプリケーションが設定変更を自動的にポーリングして取得できます。CloudTrail との統合で変更監査ログが自動的に記録されます。 C: Parameter Store への手動配布は設定変更の即時反映が保証できず、リージョン間の設定不整合が生じるリスクがあります。 A: DynamoDB Global Tables は有効ですが、設定管理のための段階的ロールアウト、バリデーション、ロールバック機能がありません。AppConfig の方が設定管理の専用機能が充実しています。 D: Git + CodePipeline はコード管理には有効ですが、フィーチャーフラグのような動的な設定変更(デプロイなしの変更)には AppConfig の方が適しています。
📚 関連サービスの解説: AWS CloudTrail ・ AWS Lambda