AWS認定資格 WEB問題集&徹底解説
クラウドプラクティショナー
AWS CodeBuild の概要と試験出題ポイントは?
AWSサービスの一つであるAWS CodeBuildはどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
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. アーキテクチャおよび技術要素
- CodePipelineのBuildステージまたは直接呼び出しでビルドジョブが開始。
- Dockerコンテナがプロビジョニングされbuildspecのinstallからビルドを実行。
- ビルド成果物をS3に保存(アーティファクト)。
- ビルドログは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. 設定・デプロイ手順(ハンズオン例)
- CodeBuildコンソール→「ビルドプロジェクトを作成」→ソース(CodeCommit/GitHub等)・ビルド環境(イメージ・コンピューティングタイプ)を設定。
- リポジトリのルートにbuildspec.ymlを作成(install/build/post_buildフェーズを定義)。
- アーティファクトのS3出力先を設定。
- 「今すぐビルド」でテスト実行→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キャッシュ等を再利用。
広告