AWS認定資格 WEB問題集&徹底解説

クラウドプラクティショナー

AWS CodeBuild の概要と試験出題ポイントは?

AWSサービスの一つであるAWS CodeBuildはどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS CodeBuild 徹底解説 | AWS認定試験の頻出ポイントまとめ

1. サービス概要

AWS CodeBuildは、ソースコードのコンパイル・テスト実行・デプロイパッケージ作成を行うフルマネージドのビルドサービスです。ビルドサーバーのプロビジョニング・管理・スケーリングが不要で、ビルドの量に応じて自動スケールします。

CodePipelineのBuildステージとして使用するほか、単独でも利用できます。ビルド処理はDockerコンテナ環境で実行されます。

2. 主な特徴と機能

2.1 buildspec.yml

ビルドの手順を定義するYAMLファイル。リポジトリのルートに配置(またはCodeBuildプロジェクトに直接定義)。

  • phases: install(依存パッケージのインストール)・pre_build(準備コマンド)・build(ビルド・テスト)・post_build(後処理)の4フェーズ。
  • artifacts: S3に保存するビルド成果物のパスを定義。
  • cache: 再利用するキャッシュディレクトリを定義してビルドを高速化。
  • env: 環境変数・SSMパラメータ・Secrets Managerシークレットを参照。

2.2 ビルド環境

  • マネージドイメージ: AWSが提供する標準イメージ(Amazon Linux 2・Ubuntu・Java/Python/Node/Go/Ruby/PHP等のランタイム)。
  • カスタムDockerイメージ: ECRまたはDocker HubのカスタムDockerイメージを指定してビルド環境を完全制御。

2.3 ビルドキャッシュ

  • S3キャッシュ: キャッシュをS3に保存して複数ビルドで共有。ビルド間の依存パッケージ再インストールを省略。
  • ローカルキャッシュ: ビルドホスト上でキャッシュ(同一ホストでの連続ビルドに有効)。

2.4 VPC統合

CodeBuildをVPC内で実行することで、VPC内のRDS・ElastiCache・内部APIエンドポイント等にビルド中にアクセス可能。

2.5 環境変数とシークレット管理

  • buildspec.ymlのenv.variables: プレーンテキストの環境変数。
  • env.parameter-store: AWS Systems Manager Parameter Storeから安全に値を取得。
  • env.secrets-manager: AWS Secrets Managerからシークレット値を取得。

2.6 テストレポートとカバレッジ

JUnit/NUnit/TestNG/Clover/Coberturaフォーマットのテスト結果をCodeBuildに取り込み、テスト合否・カバレッジをコンソールで可視化。

3. アーキテクチャおよび技術要素

  1. CodePipelineのBuildステージまたは直接呼び出しでビルドジョブが開始。
  2. Dockerコンテナがプロビジョニングされbuildspecのinstallからビルドを実行。
  3. ビルド成果物をS3に保存(アーティファクト)。
  4. ビルドログはCloudWatch Logsに自動転送。

4. セキュリティと認証・認可

  • IAMサービスロール: CodeBuildのビルド環境に割り当てるIAMロール。S3・ECR・Secrets Manager等へのアクセス権限を付与。
  • VPC内実行: ビルド環境をVPC内に配置してプライベートリソースにアクセス。
  • シークレット非露出: パスワード等の機密値はParameter Store/Secrets Managerから動的取得(buildspec.ymlにハードコードしない)。

5. 料金形態

  • ビルド実行時間(分)× コンピューティングタイプで課金。アイドル時は課金なし。
  • 無料枠: 毎月100ビルド分(general1.small相当)が無料。

6. よくあるアーキテクチャ・設計パターン

  • CodePipeline組み込みBI: CodePipeline → CodeBuild(ビルド・ユニットテスト・コンテナイメージビルド・ECRプッシュ)→ CodeDeploy/ECS。
  • Dockerイメージのビルド&プッシュ: buildspecでDockerイメージをビルド→ECRにプッシュ→ECS/EKSへデプロイ。
  • テスト自動化: PRのたびにCodeBuildを自動トリガーしてユニットテスト・SAST・カバレッジを計測。

7. 設定・デプロイ手順(ハンズオン例)

  1. CodeBuildコンソール→「ビルドプロジェクトを作成」→ソース(CodeCommit/GitHub等)・ビルド環境(イメージ・コンピューティングタイプ)を設定。
  2. リポジトリのルートにbuildspec.ymlを作成(install/build/post_buildフェーズを定義)。
  3. アーティファクトのS3出力先を設定。
  4. 「今すぐビルド」でテスト実行→CloudWatch LogsでビルドログをConfirm。

8. 試験で問われやすいポイント

8.1 buildspec.yml

  • Q: CodeBuildのビルド手順を定義するファイルは?
    A: buildspec.yml(リポジトリルートに配置)。install/pre_build/build/post_buildの4フェーズ・artifacts・cache・envを定義。

8.2 環境変数とシークレット

  • Q: CodeBuildでDBパスワード等の機密値を安全に利用するには?
    A: buildspec.ymlのenv.secrets-manager(Secrets Manager)またはenv.parameter-store(Parameter Store)で動的取得。buildspecにハードコードしない。

8.3 VPC統合

  • Q: CodeBuildのビルド中にVPC内のRDSにアクセスするには?
    A: CodeBuildプロジェクトにVPC設定を追加(VPC・サブネット・セキュリティグループを指定)してVPC内でビルドを実行。

8.4 ビルドキャッシュ

  • Q: CodeBuildのビルド時間を短縮するキャッシュ方法は?
    A: S3キャッシュ(ビルド間で共有・スケールに対応)またはローカルキャッシュ(同一ホストの連続ビルドで有効)でnode_modules・Mavenキャッシュ等を再利用。