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

ある開発チームはAWS CDKをTypeScriptで使用してインフラを定義し、GitHubのmainブランチへのマージをトリガーにAWSリソースを自動デプロイするCI/CDパイプラインを構築しようとしています。パイプラインにステージを追加するなどのコード変更をコミットした際に、パイプライン自体が自動的に更新(セルフミューテーション)されるようにしたいと考えています。最も適切なアプローチはどれですか?

A
CDKアプリでインフラを定義し、CodeBuildプロジェクトでcdk deployコマンドを手動トリガーするよう構成する
CodeBuildでcdk deployを手動またはイベントトリガーで実行する構成ですが、パイプライン定義の変更を自動反映するセルフミューテーション機能がなく変更のたびに手動対応が必要です。
B
AWS CDK Pipelinesライブラリを使用し、CDKアプリ内でCodePipelineベースのパイプラインを定義してセルフミューテーションステップを含める
✓ 正解
AWS CDK Pipelinesライブラリを使用し、CDKアプリ内でCodePipelineベースのパイプラインを定義してセルフミューテーションステップを含める。 AWS CDK PipelinesはCDKアプリ内でCI/CDパイプラインを定義する高レベルコンストラクトです。セルフミューテーション機能により、パイプラインのコード変更がリポジトリにプッシュされると、パイプライン自体が更新ステップを実行して自動的に最新状態に同期されます。インフラとパイプラインを同一コードベースで管理でき、運用負荷が最小です。
C
cdk synthでCloudFormationテンプレートを生成してS3にアップロードし、既存のCodePipelineでCloudFormationデプロイアクションを実行する
cdk synthで生成したCloudFormationテンプレートを既存のCodePipelineで適用する方法ですが、パイプライン構成変更の自動反映ができません。
D
GitHub ActionsワークフローをOIDC(OpenID Connect)認証でAWSに接続し、cdk deployコマンドを実行するように構成する
GitHub ActionsをOIDC認証でAWSに接続してcdk deployを実行できますが、CDK Pipelinesのセルフミューテーション機能を持たず、パイプライン変更時にワークフローファイルを手動で更新する必要があります。

解説

AWS CDK PipelinesはCDKアプリ内でCI/CDパイプラインを定義する高レベルコンストラクトです。セルフミューテーション機能により、パイプラインのコード変更がリポジトリにプッシュされると、パイプライン自体が更新ステップを実行して自動的に最新状態に同期されます。インフラとパイプラインを同一コードベースで管理でき、運用負荷が最小です。 選択肢Aは、CodeBuildでcdk deployを手動またはイベントトリガーで実行する構成ですが、パイプライン定義の変更を自動反映するセルフミューテーション機能がなく変更のたびに手動対応が必要です。 選択肢Cは、cdk synthで生成したCloudFormationテンプレートを既存のCodePipelineで適用する方法ですが、パイプライン構成変更の自動反映ができません。 選択肢Dは、GitHub ActionsをOIDC(OpenID Connect)認証でAWSに接続してcdk deployを実行できますが、CDK Pipelinesのセルフミューテーション機能を持たず、パイプライン変更時にワークフローファイルを手動で更新する必要があります。

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

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

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