無限ノック › DVA 練習問題一覧 › 問題
DVAデプロイ

開発者がAWS CodeBuildを使用してDockerイメージをビルドし、Amazon ECRへプッシュするbuildspec.ymlを以下のように作成しました。 phases: pre_build: commands: - aws ecr get-login-password | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com build: commands: - docker build -t myapp:latest . post_build: commands: - docker push 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/myapp:latest このbuildspec.ymlを実行すると、post_buildフェーズのdocker pushが失敗します。原因として最も考えられるのはどれですか?

A
pre_buildフェーズはbuildフェーズより後に実行されるため、ECR認証が完了する前にdocker buildが走っている
buildspec.ymlのフェーズ実行順は install → pre_build → build → post_build の固定順序です。pre_buildは常にbuildより前に実行されるため認証タイミングの問題はありません。
B
buildフェーズでビルドしたイメージ(myapp:latest)に、ECRリポジトリのフルURIでのdocker tagが実行されていないため、プッシュ先が解決できない
✓ 正解
buildフェーズでビルドしたイメージは `myapp:latest` というローカルタグのみを持ちます。ECRへプッシュするには `docker tag myapp:latest 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/myapp:latest` でECRリポジトリURIのタグを付与してからpushする必要があります。post_buildで push する前に `docker tag` コマンドを追加することで解決します。
C
CodeBuildの実行ロールにAmazonECRFullAccessポリシーだけでなく、AmazonS3FullAccessも付与する必要がある
ECRへのプッシュにS3の権限は不要です。必要なのは ecr:GetAuthorizationToken、ecr:BatchCheckLayerAvailability、ecr:PutImage 等のECR権限のみです。
D
post_buildフェーズはbuildフェーズの成否に関わらず実行されるため、docker pushは別のLambda関数で実行する必要がある
post_buildフェーズがbuildの結果に関わらず実行されることはdocker pushをLambdaで行う理由にはなりません。post_buildはbuild後処理(push、通知など)に使う標準的なフェーズです。

解説

buildフェーズでビルドしたイメージは `myapp:latest` というローカルタグのみを持ちます。ECRへプッシュするには `docker tag myapp:latest 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/myapp:latest` でECRリポジトリURIのタグを付与してからpushする必要があります。post_buildで push する前に `docker tag` コマンドを追加することで解決します。 選択肢Aの buildspec.ymlのフェーズ実行順は install → pre_build → build → post_build の固定順序です。pre_buildは常にbuildより前に実行されるため認証タイミングの問題はありません。 選択肢Cの ECRへのプッシュにS3の権限は不要です。必要なのは ecr:GetAuthorizationToken、ecr:BatchCheckLayerAvailability、ecr:PutImage 等のECR権限のみです。 選択肢Dの post_buildフェーズがbuildの結果に関わらず実行されることはdocker pushをLambdaで行う理由にはなりません。post_buildはbuild後処理(push、通知など)に使う標準的なフェーズです。

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

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

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