DOP構成管理と Infrastructure as Code (IaC)
あるDevOpsエンジニアはCloudFormationデプロイパイプラインに以下の2つの機能を追加しようとしています。
①CloudFormationがリソースを作成・更新・削除する際に外部のCMDB(構成管理データベース: Configuration Management Database)にリソース情報を同期する。
②CloudFormationテンプレート内の${ENV}や${TIMESTAMP}のようなカスタムプレースホルダーを、デプロイ前のテンプレート処理フェーズで動的に展開する。
①と
②それぞれに最も適したCloudFormationの拡張機能の組み合わせはどれですか?
A①②の両方にCloudFormationカスタムリソース(AWS::CloudFormation::CustomResource)を使用する。①はCreate/Update/DeleteイベントのLambda処理でCMDB登録を行い、②は文字列変換をLambdaが実行しFn::GetAttで変換後の値を参照する
マクロが担うべきテンプレート変換をカスタムリソースで代替しようとしており設計が不適切です。
B①にはCloudFormationカスタムリソース(Type: Custom::CMDBSync)をLambdaバックエンドで実装しDependsOnで対象リソース完了後に実行させる。②にはCloudFormationマクロ(AWS::CloudFormation::Macro)をLambdaで実装してTransformセクションで呼び出しデプロイ前のテンプレート変換を実現する
✓ 正解
カスタムリソースはスタックのCREATE/UPDATE/DELETE時にLambdaを同期呼び出しするため、リソース作成後の外部システム連携(①CMDB登録)に最適です。CloudFormationマクロはデプロイ前のテンプレート変換フェーズでLambdaを実行するため、カスタムプレースホルダーの展開(②)に適しています。
C①にはEventBridgeルールでCloudFormation APIイベント(CloudTrail経由)を検知しLambdaでCMDBに非同期登録する。②にはDynamic References({{resolve:ssm:...}}構文)を使用してSystems Manager Parameter Storeから値を動的解決する
非同期EventBridgeはリソース作成との同期保証がなくCMDB整合性を損ないます。
D①②の両方にCloudFormation Hooks(AWS::CloudFormation::Hook)を使用する。PRE_CREATE/PRE_UPDATEフックでCMDB登録とテンプレートプレースホルダー変換を処理し、完了後にSUCCESSを返してデプロイを続行させる
CloudFormation Hooksは、PRE操作の検証・ブロック用途であり、テンプレート変換機能は持ちません。
解説
カスタムリソースはスタックのCREATE/UPDATE/DELETE時にLambdaを同期呼び出しするため、リソース作成後の外部システム連携(①CMDB登録)に最適です。CloudFormationマクロはデプロイ前のテンプレート変換フェーズでLambdaを実行するため、カスタムプレースホルダーの展開(②)に適しています。
選択肢Aはマクロが担うべきテンプレート変換をカスタムリソースで代替しようとしており設計が不適切です。
選択肢Cの非同期EventBridgeはリソース作成との同期保証がなくCMDB整合性を損ないます。
選択肢DのCloudFormation Hooksは、PRE操作の検証・ブロック用途であり、テンプレート変換機能は持ちません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →