DOP構成管理と Infrastructure as Code (IaC)
DevOps エンジニアは、CloudFormation スタックのデプロイ時に、ネイティブの CloudFormation リソースタイプが存在しないサードパーティ監視ツールへ自動登録する仕組みを構築する必要があります。この監視ツールは REST API を公開しています。スタックの作成・更新・削除のライフサイクルに合わせてこの登録を自動化する最も適切な実装方法はどれですか?
ACloudFormation マクロ(Transform)を作成し、テンプレート変換時にサードパーティ API を呼び出す処理を組み込む
マクロはテンプレートの静的変換にのみ使用するものであり、実行時の外部 API 呼び出しには不適切です。
BAWS::CloudFormation::CustomResource と Lambda 関数を組み合わせ、CREATE/UPDATE/DELETE イベントでサードパーティ API を呼び出す
✓ 正解
CloudFormation カスタムリソース(AWS::CloudFormation::CustomResource または Custom::MyType)は、Lambda 関数や SNS トピックをバックエンドとして、CloudFormation がネイティブサポートしていないリソースをスタックのライフサイクルに組み込む機能です。Lambda 関数は RequestType(Create/Update/Delete)と PhysicalResourceId を含むイベントを受信し、外部 API を操作した後、cfnresponse モジュールで SUCCESS または FAILED を CloudFormation に返します。
CCloudFormation StackSets を使用して、サードパーティ API 呼び出し処理を複数のアカウントに横断して実行する
StackSetsを使う方法は複数のアカウントに横断してスタックを展開するものであり、スタックのライフサイクルと同期した外部API呼び出しには適していません。
DAWS Step Functions のステートマシンを定義し、CloudFormation スタックのデプロイ完了後に EventBridge ルールでトリガーしてサードパーティ API を呼び出す
Step Functionsを使う方法はスタックのライフサイクルと同期できないため、削除時の登録解除などを保証できません。
解説
CloudFormation カスタムリソース(AWS::CloudFormation::CustomResource または Custom::MyType)は、Lambda 関数や SNS トピックをバックエンドとして、CloudFormation がネイティブサポートしていないリソースをスタックのライフサイクルに組み込む機能です。Lambda 関数は RequestType(Create/Update/Delete)と PhysicalResourceId を含むイベントを受信し、外部 API を操作した後、cfnresponse モジュールで SUCCESS または FAILED を CloudFormation に返します。
選択肢A のマクロはテンプレートの静的変換にのみ使用するものであり、実行時の外部 API 呼び出しには不適切です。
選択肢B の CloudFormation カスタムリソースと Lambda の組み合わせは、CREATE/UPDATE/DELETE の各ライフサイクルイベントを確実にハンドリングでき、サードパーティ API との統合に最も適した方法です。
選択肢C の StackSets を使う方法は複数のアカウントに横断してスタックを展開するものであり、スタックのライフサイクルと同期した外部 API 呼び出しには適していません。
選択肢D の Step Functions を使う方法はスタックのライフサイクルと同期できないため、削除時の登録解除などを保証できません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →