DVA-C02デプロイMEDIUM単一選択

あるチームがAWS CodeBuildのbuildspec.ymlを設計している。ビルドフェーズの流れとして、依存関係のインストール・ビルド前の認証処理・コンパイル・成果物のアップロードという4ステップが必要である。buildspec.ymlのフェーズ定義として最も適切な構成はどれか。

  1. A. pre_build フェーズで依存関係のインストールと認証処理を実行し、build フェーズでコンパイルと成果物アップロードを実行する
  2. B. すべての処理を build フェーズに記述し、コマンドを順番に並べる
  3. C. install フェーズでビルド環境の設定のみ行い、残りの処理はすべて build フェーズに記述する
  4. D. install フェーズで依存関係のインストール、pre_build フェーズで認証処理、build フェーズでコンパイル、post_build フェーズで成果物のアップロードを実行する
解答と解説を見る

正解: D

CodeBuildのbuildspec.ymlは install/pre_build/build/post_build の4フェーズで構成される。installは依存関係のインストールやビルドツールのセットアップに使い、pre_buildはビルド前の認証処理(ECRログインやCodeArtifactトークン取得など)に適している。buildはコンパイルや単体テストなど中心的な処理を行い、post_buildは成果物のS3へのアップロードやイメージプッシュなどビルド後の処理に使う。このフェーズ分離は保守性と可読性を高めるベストプラクティスである。Bはすべての処理を1フェーズに詰め込むため、どのステップで失敗したかの診断が困難になる。CはCodeBuildの推奨構成に合わない。Aの構成はフェーズの責務が混在しており、install/pre_buildの役割分担の意図が失われる。フェーズ分けの設計は問題の特定と再実行を容易にする重要な考慮事項である。

▸ この試験を本気で演習する(全150問・無料)