Q82 — AWS SOA-C02 第1章

第 82/100 問 | ← 第1章

ある会社が、AWS::EC2::InstanceリソースとカスタムCloudFormationリソースから構成されるAWS CloudFormationテンプレートを作成しました。このカスタムCloudFormationリソースは、Amazon EC2インスタンス上で自動化処理を実行しようとするAWS Lambda関数です。テスト中に、Lambda関数がEC2インスタンスが起動する前に実行を試みるため、失敗します。 この問題を解決するには、どのソリューションを採用すべきですか?

正解: A. カスタムリソースにDependsOn属性を追加し、DependsOn属性でEC2インスタンスを指定する。

解説

AWS CloudFormationテンプレート内のリソースはデフォルトで並列に作成されますが、特定の順序を保証するには依存関係を利用する必要があります。AWS公式ドキュメントによると、`DependsOn`属性はリソース間の明示的な依存関係を指定するために使用され、依存先リソースが作成完了後にのみ対象リソースが作成されます。本問では、カスタムリソース(Lambda)がEC2インスタンスの起動後に実行される必要があるため、カスタムリソースに`DependsOn`属性を追加し、EC2インスタンスを指定することで時系列の問題を解決できます。選択肢Bのサービストークン設定はリソース起動順序とは無関係です。選択肢Cの`cfn-response`モジュールはカスタムリソースのレスポンス処理に使用され、依存順序には影響しません。選択肢Dの`Fn::If`は条件判断に使用され、リソース作成順序を保証できません。選択肢AはAWS推奨の依存関係管理手法に直接合致します。