模擬問題集DOP-C02練習問題 4

DOP-C02 練習問題 4

AWS DevOps Engineer – Professional・構成管理と Infrastructure as Code (IaC)・無料公開(全 200 問中 15 問を無料公開中)

問題
ある企業が、AWS CodePipelineのパイプラインを使用して、AWS CloudFormationテンプレートをAmazon S3バケットにアップロードしています。パイプラインは、これらのテンプレートを使用して、テンプレートの名前と一致する名前のCloudFormationスタックをデプロイします。 企業は、テンプレートを以前のバージョンに戻そうとしたときに問題を経験しました。これらの問題を防ぐため、企業は変更が本番環境にデプロイされる前にテンプレートの変更をレビューできる能力を持つ必要があります。 この要件を最も少ない運用オーバーヘッドで満たすソリューションはどれですか?

選択肢と解説

  • AWS CodeConnectionsでGitリポジトリへの接続を設定する。テンプレートをGitリポジトリに保存する。テンプレートの変更をレビューするためのプルリクエストワークフローを設定する。スタックに対してAWS CloudFormation Git syncを設定する。
  • 2
    スタックのデプロイ前にテンプレートコードの変更をレビューするための手動レビューアクションをパイプラインに追加する。
  • 3
    スタックのデプロイ前にテンプレートの変更をチェックするAWS Lambda関数を呼び出すようにパイプラインを更新する。
  • 4
    AWS CodeConnectionsでGitリポジトリへの接続を設定する。テンプレートをGitリポジトリに保存する。接続を使用するソースアクションを含むようにパイプラインを設定する。スタックのデプロイ前にテンプレートの変更をレビューするための手動レビューアクションをパイプラインに追加する。

解説

【正解】A

【0からの解説】
本問の課題は2つあります。(1)「テンプレートを以前のバージョンに戻そうとすると問題が起きる」=バージョン管理がS3だけで不十分、(2)「本番デプロイ前に変更をレビューしたい」。これらを最小の運用オーバーヘッドで両立する仕組みが求められています。

CloudFormation Git sync(テンプレートのGit同期)は、CloudFormationスタックをGitリポジトリと直接同期させる機能です。テンプレートをGitに置き、AWS CodeConnections経由で接続すると、Gitへのコミット/マージを検知してCloudFormationが自動的にスタックをデプロイ・更新します。Gitを使うことでバージョン履歴とロールバック(以前のコミットに戻す)が自然に扱え、プルリクエスト(PR)ワークフローでマージ前のコードレビューが標準的に行えます。これにより、CodePipelineの複雑な配線や手動承認アクションを自前で組まなくても、「レビュー後にデプロイ」が成立します。Gitネイティブでパイプライン運用を簡素化できるため、運用オーバーヘッドが最小で、要件に最も適合します。

【誤りの選択肢】
B:既存のS3ベースのパイプラインに手動レビューアクションを足すだけでは、レビューはできても根本の「バージョン管理/ロールバックの脆弱さ(S3にテンプレートを置く構成)」が解決しない。
C:Lambdaで変更チェックを自前実装するのは、コードの開発・保守が必要で運用オーバーヘッドが増える。レビューの自動化要件にも厳密には合致しない。
D:GitリポジトリとCodeConnectionsを使い、ソースアクション+手動レビューを足す構成は要件を満たすが、パイプラインのステージ/アクション構成を自前で組む分、CloudFormation Git sync(A)よりも運用オーバーヘッドが大きい。「最も少ない運用オーバーヘッド」という基準ではAが上回る。
A:Git sync+PRワークフローで、バージョン管理・ロールバック・マージ前レビューをGitネイティブに実現し、運用負荷を最小化できる。

【参考】
Manage CloudFormation stacks with Git sync
What is AWS CodeConnections?
← 練習問題 3練習問題 5
DOP-C02 の模擬問題集は全 200

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

DOP-C02 の模試を受ける料金プランを見る

DOP-C02 の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15