DOP構成管理と Infrastructure as Code (IaC)
ある企業は AWS Lambda ベースのサーバーレスアプリケーションで複数のフィーチャーフラグ(機能の有効・無効を制御する設定値)を管理しています。以下の要件をすべて満たすソリューションが必要です。
①フィーチャーフラグの値は JSON スキーマに準拠していることをデプロイ前に自動検証する
②設定変更は段階的に展開し、最初は全体の 10% に適用して問題がなければ全体に展開する
③設定変更後にエラー率が上昇した場合は自動的に以前の設定値にロールバックする
④Lambda コードの再デプロイなしに設定変更を即時反映する。これらすべてをネイティブにサポートする AWS ソリューションはどれですか?
AAWS Systems Manager Parameter Store(Advanced Tier)に JSON 形式でフィーチャーフラグを保存し、Lambda 関数の起動時に毎回 GetParameter を呼び出して読み込む。バリデーションは CodePipeline の Lint ステージで実施する
Parameter Storeは設定値の保存・読み取りに対応していますが、段階的ロールアウトや自動ロールバック機能がネイティブサポートされていません。デプロイ戦略やロールバック検知をすべてカスタム実装する必要があり、運用負担が大きくなります。
BAWS AppConfig を使用してフィーチャーフラグの設定プロファイルを管理し、JSON スキーマバリデーター・Linear または Exponential デプロイ戦略・CloudWatch Alarm による自動ロールバックを設定する。Lambda は AppConfig Agent(Lambda 拡張機能)でキャッシュ付き設定取得を行う
✓ 正解
AppConfigはJSON スキーマバリデーション、Linear/Exponentialデプロイ戦略による段階展開、CloudWatch Alarmによる自動ロールバック、Lambda拡張機能によるキャッシュ付き設定取得をネイティブに備えており、すべての要件を満たします。
CAmazon DynamoDB テーブルにフィーチャーフラグを保存し、Lambda から直接読み取る。段階的ロールアウトは Lambda エイリアスのトラフィック重み付けで 90%/10% に分割して実現する
DynamoDB+ Lambda エイリアスの重み付けはコードバージョン自体のトラフィック分割であり、設定値の段階的ロールアウトとは異なります。バリデーション機能や自動ロールバック機能もありません。
DAWS Secrets Manager にフィーチャーフラグを保存し、自動ローテーション機能を活用して設定を更新する。バリデーションはシークレット作成時の Lambda ローテーション関数内で実施する
Secrets ManagerはAPIキーなどのシークレット管理に特化しており、フィーチャーフラグのデプロイ戦略や段階的ロールアウト機能を備えていません。自動ローテーションも設定値の段階展開とは別目的です。
解説
AWS AppConfig はアプリケーション設定をコードデプロイと独立して管理するサービスで、4つの要件をネイティブにすべて満たします。
①JSON スキーマバリデーター(または Lambda バリデーター)でデプロイ前に設定値を検証、
②デプロイ戦略(Linear:一定割合ずつ展開、Exponential:指数関数的に展開)で段階的ロールアウト、
③CloudWatch Alarm と自動ロールバック機能、
④Lambda 拡張機能(AppConfig Agent)でコード変更なしに最新設定をキャッシュ付きで取得できます。
A の Parameter Store は設定の保存と読み取りには使えますが、段階的ロールアウトや自動ロールバックはネイティブサポートなく、すべてカスタム実装が必要です。
C の DynamoDB + Lambda エイリアス重み付けは、コードバージョン(Lambda 関数)のトラフィック分割であり、設定値の段階的ロールアウトとは異なります。バリデーションと自動ロールバック機能もありません。
D の Secrets Manager はシークレット(DB パスワード、API キー等)の管理に特化しており、フィーチャーフラグのデプロイ戦略や段階的ロールアウト機能はありません。「自動ローテーション」は認証情報の定期更新機能であり、設定変更の段階展開とは目的が異なります。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →