DVA-C02デプロイMEDIUM複数選択

あるチームがAWS CodePipelineで構築したCI/CDパイプラインを改善しようとしている。ビルドフェーズでDockerイメージをビルドしてAmazon ECRにプッシュする処理を実装するために必要な設定を2つ選択してください。

  1. A. ECRリポジトリのライフサイクルポリシーでイメージの保持数を設定する
  2. B. buildspec.ymlのpre_buildフェーズでaws ecr get-login-passwordコマンドを実行してDockerにログインする
  3. C. CodeBuildプロジェクトの環境でprivilegedモードを有効にしてDockerデーモンを起動可能にする
  4. D. CodeBuildのサービスロールにAmazonEC2ContainerRegistryPowerUserポリシーをアタッチする
  5. E. CodePipelineのソースアクションにECRソースタイプを追加する
解答と解説を見る

正解: B, D

DockerイメージをCodeBuildでビルドしてECRにプッシュするためには、まずCodeBuildのサービスロールにECRへの書き込み権限(AmazonEC2ContainerRegistryPowerUserまたは同等のカスタムポリシー)が必要である。次に、buildspec.ymlのpre_buildフェーズでaws ecr get-login-passwordを実行し、その出力をdocker loginコマンドにパイプすることでDockerクライアントをECRに認証させる必要がある。BはDockerのECR認証に必須のステップである。Aのライフサイクルポリシーはイメージの自動削除設定であり、プッシュの実装とは無関係である。CのprivilegedモードはDockerデーモン起動(Docker-in-Docker)に必要だが、標準的なDockerビルドではCodeBuildのホスト環境のDockerを使うためprivilegedモードは不要な場合が多い。EのECRソースは既存イメージの変更をトリガーにするためのものであり、プッシュ処理の設定ではない。

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