AWS CodeBuild セットアップ・設定編 - 実践的なプロジェクト作成手順

AWS CodeBuildを実際に使い始めるために、プロジェクト作成から基本設定までを段階的に解説します。AWSコンソールを使った視覚的な手順で、初めてCodeBuildを使う方でも迷わずにセットアップできます。

プロジェクト作成の準備

事前に準備するもの

CodeBuildプロジェクトを作成する前に、以下を準備しておきましょう。

ソースコードの準備

  • GitHubリポジトリ: パブリックまたはプライベートリポジトリ
  • CodeCommitリポジトリ: AWS内のGitリポジトリ
  • S3バケット: ZIPファイルとしてソースを保存
  • Bitbucket: アトラシアンのGitリポジトリサービス

AWSリソースの準備

  • S3バケット: ビルド成果物の保存用(オプション)
  • IAMユーザー: 適切なCodeBuild権限を持つユーザー
  • VPCの設定: プライベートネットワーク経由でビルドする場合(オプション)

必要な権限の確認

CodeBuildプロジェクトを作成するには、以下のIAM権限が必要です:

json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codebuild:CreateProject",
        "codebuild:BatchGetProjects",
        "iam:PassRole"
      ],
      "Resource": "*"
    }
  ]
}

AWSコンソールでのプロジェクト作成

Step 1: CodeBuildサービスへのアクセス

  1. AWSマネジメントコンソールにログイン
  2. 上部の検索欄に「CodeBuild」と入力
  3. CodeBuildサービスを選択
  4. **「ビルドプロジェクトを作成」**ボタンをクリック

Step 2: プロジェクトの基本情報設定

プロジェクト名の設定

プロジェクト名: my-web-app-build
説明: React Webアプリケーションのビルドプロジェクト(オプション)

命名のベストプラクティス

  • アプリケーション名とビルドの目的を含める
  • 英数字とハイフンのみ使用
  • 組織や環境を識別しやすい名称にする

タグの設定(推奨)

キー: Environment  値: Development
キー: Project      値: WebApplication
キー: Owner        値: DevTeam

ソースプロバイダーの詳細設定

GitHub接続の設定

設定手順

  1. ソースプロバイダーで「GitHub」を選択

  2. 認証方法を選択:

    • OAuth: 推奨方法、シンプルな認証
    • GitHub App: より細かい権限制御が可能
    • Personal Access Token: 組織的な管理に適している
  3. リポジトリURLを入力または選択

  4. ソースバージョンでブランチを指定(デフォルト: main)

GitHub Webhook の設定

  • Webhookイベント: プッシュ、プルリクエストでの自動ビルド
  • フィルターパターン: 特定のブランチやファイルパスでの制御
ブランチフィルター: ^refs/heads/(main|develop)$
ファイルパス: src/**, package.json

CodeCommit接続の設定

CodeCommitを使用する場合の設定方法:

  1. ソースプロバイダーで「AWS CodeCommit」を選択

  2. リポジトリ名をプルダウンから選択

  3. リファレンスタイプを選択:

    • ブランチ: 特定のブランチを指定
    • Git タグ: 特定のタグを指定
    • コミット ID: 特定のコミットを指定
  4. リファレンスに具体的な値を入力

ビルド環境の詳細設定

環境イメージの選択

マネージドイメージの設定

オペレーティングシステム: Amazon Linux 2
ランタイム: Standard
イメージ: aws/codebuild/amazonlinux2-x86_64-standard:5.0
イメージバージョン: 最新を常に使用する

各イメージの特徴

イメージ用途プリインストール
Amazon Linux 2汎用的なビルドDocker, Git, AWS CLI
Ubuntuより豊富なパッケージ同上 + APTパッケージ
Windows Server.NET FrameworkVisual Studio Build Tools

コンピュートタイプの選択

推奨設定:
- 小規模プロジェクト: BUILD_GENERAL1_SMALL (2 vCPU, 3GB)
- 中規模プロジェクト: BUILD_GENERAL1_MEDIUM (4 vCPU, 7GB)  
- 大規模プロジェクト: BUILD_GENERAL1_LARGE (8 vCPU, 15GB)

サービスロールの設定

新しいサービスロールの作成

  1. サービスロールで「新しいサービスロール」を選択
  2. ロール名が自動生成される(例:codebuild-my-web-app-build-service-role)
  3. 必要に応じて追加ポリシーをアタッチ

よく使用される追加ポリシー

json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::my-build-artifacts/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetAuthorizationToken",
        "ecr:BatchCheckLayerAvailability",
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage"
      ],
      "Resource": "*"
    }
  ]
}

環境変数の設定

基本的な環境変数の例

名前: NODE_ENV          値: production       タイプ: Plaintext
名前: API_ENDPOINT      値: https://api...   タイプ: Plaintext
名前: DB_PASSWORD       値: mypassword       タイプ: Parameter Store
名前: SECRET_KEY        値: /myapp/secret    タイプ: Secrets Manager

セキュアな環境変数の管理

  • Parameter Store: システム設定やAPI キー
  • Secrets Manager: データベースパスワードや API シークレット
  • Plaintext: 機密性のない設定値

buildspec.yml の基本設定

最小限のbuildspec.yml

yaml
version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 18
    commands:
      - echo "Installing dependencies"
      - npm ci

  build:
    commands:
      - echo "Building the project"
      - npm run build

artifacts:
  files:
    - '**/*'
  base-directory: dist

buildspec.ymlの配置方法

  1. プロジェクトルートに配置: buildspec.ymlとして保存
  2. CodeBuildコンソールで指定: 「buildspec」セクションで内容を直接入力
  3. 異なるパスに配置: 「buildspecファイル」で相対パスを指定

トラブルシューティング

よくあるエラーと解決方法

1. 権限エラー

エラー: Access Denied when calling AssumeRole
解決方法: サービスロールにCodeBuildの信頼関係を設定

2. ソース取得エラー

エラー: Repository not found or access denied
解決方法: GitHub/CodeCommitの認証情報を確認

3. ビルド実行エラー

エラー: buildspec.yml not found
解決方法: ファイルパスとファイル名を確認

ログの確認方法

  1. CloudWatch Logsで詳細ログを確認
  2. ビルド履歴から各フェーズの実行状況を確認
  3. フェーズの詳細で具体的なエラー内容を確認

デバッグのためのTips

yaml
# buildspec.ymlでのデバッグ出力例
phases:
  install:
    commands:
      - echo "Current directory:" && pwd
      - echo "Files in directory:" && ls -la
      - echo "Environment variables:" && env

プロジェクト作成後の確認事項

作成完了の確認

  1. プロジェクト一覧で新しいプロジェクトが表示される
  2. プロジェクト詳細で設定内容を確認
  3. **「ビルドの開始」**で初回ビルドを実行

初回ビルドの実行

初回ビルドを実行して、すべての設定が正しく動作することを確認:

  1. **「ビルドの開始」**ボタンをクリック
  2. ソースバージョンを確認(通常は最新)
  3. ビルドの実行を開始
  4. ログ出力をリアルタイムで確認

設定の調整

初回ビルド結果を基に、必要に応じて以下を調整:

  • コンピュートタイプの変更(パフォーマンス調整)
  • 環境変数の追加や修正
  • buildspec.ymlの改善
  • タイムアウト設定の調整

次のステップ

CodeBuildプロジェクトの作成が完了したら、以下の記事でより詳細な機能を学習しましょう:

推奨学習順序

  1. buildspec詳細編: 高度なビルド設定とフェーズ管理
  2. 環境・ランタイム編: カスタムDockerイメージと特殊環境
  3. セキュリティ・権限編: IAM統合とVPCネットワーク設定
  4. パフォーマンス最適化編: キャッシュとコスト効率化

これらの基本設定を理解することで、CodeBuildを実際のプロジェクトで効果的に活用できるようになります。