無限ノック › SOA 練習問題一覧 › 問題
SOAデプロイ、プロビジョニング、および自動化

あるチームは CloudFormation テンプレートで EC2 インスタンスを作成しています。UserData でアプリケーションのインストールと初期化を行い、完了まで約8分かかります。しかし現状ではアプリ初期化が終わる前にスタックが CREATE_COMPLETE となり、同一スタック内の後続リソースがまだ起動していないアプリに接続して失敗します。アプリの初期化完了を待ってからスタックを完了させたいです。最も適切な方法はどれですか。

A
EC2 リソースに CreationPolicy を設定し、UserData の最後で cfn-signal により成功シグナルを送信させ、指定数のシグナル受信までリソース作成完了を保留する
✓ 正解
CreationPolicy と cfn-signal を組み合わせると、UserData がアプリ初期化を終えてシグナルを送るまでリソース作成が保留され、後続リソース作成も始まらない。初期化完了とスタック完了を同期でき、接続失敗を確実に防げる。
B
EC2 リソースに DependsOn 属性を設定し、後続リソースより先に作成順序を制御することでアプリ初期化の完了を保証する
DependsOn はリソース間の作成順序のみを制御し、EC2 の作成完了はインスタンス起動時点で判定される。UserData によるアプリ初期化の完了までは待機しないため、後続リソースの接続失敗を防げない。
C
WaitConditionHandle を関連付けない WaitCondition を定義し、タイムアウト経過後に自動的に完了とみなして後続へ進む
WaitCondition は本来 WaitConditionHandle と cfn-signal による明示的な成功シグナルを前提とする。Handle を関連付けずタイムアウト依存にする構成では実際の初期化完了を検知できず、要件を満たせない。
D
EC2 リソースに UpdatePolicy で AutoScalingRollingUpdate を設定し、シグナル受信を待ってから完了させる
UpdatePolicy の AutoScalingRollingUpdate はスタック更新時に Auto Scaling グループをローリング更新する際の挙動を制御する設定であり、リソースの初回作成完了の同期には関与しないため不適切。

解説

CreationPolicy はリソースの作成を「アプリケーション側からの成功シグナル受信」と同期させる仕組みです。EC2 に CreationPolicy を付与し、UserData の最後で cfn-signal を実行すると、CloudFormation は指定した数のシグナル(または Timeout)を受信するまでそのリソースを CREATE_IN_PROGRESS のまま保留します。これにより初期化完了まで後続リソースの作成が始まらず、接続失敗を防げます。 選択肢のDependsOn は作成順序を制御するだけで、リソースの「作成完了」はEC2の起動時点で判定されるため、アプリ初期化の完了までは待たない。 選択肢のWaitConditionは本来 Handle と cfn-signal の送信が前提であり、Handle を関連付けずタイムアウト待ちにする構成では初期化完了を保証できない。 選択肢のUpdatePolicy の AutoScalingRollingUpdate はスタック更新時のローリング更新を制御する設定であり、初回作成時の完了同期には作用しない。

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

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

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