無限ノック › DVA 練習問題一覧 › 問題
DVAデプロイ

開発チームがAWS CloudFormationを使用してインフラをプロビジョニングしています。スタック作成・更新・削除のライフサイクルに応じて、DynamoDBテーブルへの初期データ投入やサードパーティAPIへの登録など、CloudFormationがネイティブにサポートしていないカスタム処理を自動実行する必要があります。最も適切な実装方法はどれですか?

A
CloudFormationテンプレートのMetadataセクションにAWS::CloudFormation::Initを定義し、EC2インスタンス起動時にcfn-initコマンドでカスタムスクリプトを実行する
AWS::CloudFormation::Initはcfn-initと組み合わせてEC2インスタンスへのソフトウェアインストールや設定ファイル配置に使うメタデータであり、EC2インスタンスが存在しないカスタム処理やDynamoDB初期化などの汎用処理には対応していない。
B
AWS::CloudFormation::CustomResourceリソースをテンプレートに追加し、Lambdaをバックエンドとして設定することでスタックのライフサイクルイベントに連動してカスタム処理を自動実行する
✓ 正解
CloudFormationカスタムリソースはCreate・Update・Delete時にLambdaを自動呼び出しする機能で、CloudFormationがサポートしていない任意の処理をスタックのライフサイクルに統合できる。LambdaからSUCCESS/FAILEDを応答することで処理の完了をスタックに通知できる。
C
CloudFormationのWaitConditionリソースを使用して処理を一時停止し、外部処理の完了後にWaitConditionHandleへシグナルを送信してスタックの進行を再開する
WaitConditionはスタックの進行を外部シグナル待ちで一時停止する機能だが、カスタム処理自体を実行する仕組みではなく、シグナルを送る外部の仕組みを別途構築する必要がある。またスタック削除時には機能しないため要件を完全には満たせない。
D
AWS Systems Manager Automationドキュメントを作成し、EventBridgeでCloudFormationスタックイベントを検知してAutomationドキュメントを自動実行する
SSM AutomationとEventBridgeの組み合わせでCloudFormationスタックイベントに反応することは可能だが、スタックとの双方向の成否連携がなく、スタック削除時のカスタム処理など確実なライフサイクル連動が難しいため推奨されない。

解説

CloudFormationカスタムリソース(AWS::CloudFormation::CustomResourceまたはCustom::MyResource)を使用すると、CloudFormationがネイティブにサポートしていない処理をスタックのライフサイクルに組み込めます。Lambda関数をバックエンドとして設定すると、スタックのCreate・Update・Delete時にLambdaが自動呼び出しされカスタムロジックを実行できます。LambdaはCloudFormationへの応答(SUCCESS/FAILED)をプリサインドURLへ送信する必要があり、処理の成否がスタックの進行に反映されます。 選択肢AのAWS::CloudFormation::Initは、EC2インスタンス上でcfn-initを使ったソフトウェアインストール・設定に特化したメタデータであり、EC2インスタンスが存在しないカスタム処理やDynamoDB操作などの汎用処理には使えない。 選択肢CのWaitConditionは外部シグナルを待つ同期処理に使いますが、カスタムロジック自体を実行する機能ではなく、外部でシグナルを送る仕組みを別途構築する必要があり、スタック削除時には機能しない。 選択肢DのSystems Manager Automationは有効なサービスですが、EventBridgeとの組み合わせではCloudFormationのライフサイクルと緊密に統合されておらず、スタック削除時の確実な連動が難しい。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る