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サービスへのアクセス
- AWSマネジメントコンソールにログイン
- 上部の検索欄に「CodeBuild」と入力
- CodeBuildサービスを選択
- **「ビルドプロジェクトを作成」**ボタンをクリック
Step 2: プロジェクトの基本情報設定
プロジェクト名の設定
プロジェクト名: my-web-app-build
説明: React Webアプリケーションのビルドプロジェクト(オプション)
命名のベストプラクティス:
- アプリケーション名とビルドの目的を含める
- 英数字とハイフンのみ使用
- 組織や環境を識別しやすい名称にする
タグの設定(推奨)
キー: Environment 値: Development
キー: Project 値: WebApplication
キー: Owner 値: DevTeam
ソースプロバイダーの詳細設定
GitHub接続の設定
設定手順
ソースプロバイダーで「GitHub」を選択
認証方法を選択:
- OAuth: 推奨方法、シンプルな認証
- GitHub App: より細かい権限制御が可能
- Personal Access Token: 組織的な管理に適している
リポジトリURLを入力または選択
ソースバージョンでブランチを指定(デフォルト: main)
GitHub Webhook の設定
- Webhookイベント: プッシュ、プルリクエストでの自動ビルド
- フィルターパターン: 特定のブランチやファイルパスでの制御
ブランチフィルター: ^refs/heads/(main|develop)$
ファイルパス: src/**, package.json
CodeCommit接続の設定
CodeCommitを使用する場合の設定方法:
ソースプロバイダーで「AWS CodeCommit」を選択
リポジトリ名をプルダウンから選択
リファレンスタイプを選択:
- ブランチ: 特定のブランチを指定
- Git タグ: 特定のタグを指定
- コミット ID: 特定のコミットを指定
リファレンスに具体的な値を入力
ビルド環境の詳細設定
環境イメージの選択
マネージドイメージの設定
オペレーティングシステム: Amazon Linux 2
ランタイム: Standard
イメージ: aws/codebuild/amazonlinux2-x86_64-standard:5.0
イメージバージョン: 最新を常に使用する
各イメージの特徴:
イメージ | 用途 | プリインストール |
---|---|---|
Amazon Linux 2 | 汎用的なビルド | Docker, Git, AWS CLI |
Ubuntu | より豊富なパッケージ | 同上 + APTパッケージ |
Windows Server | .NET Framework | Visual Studio Build Tools |
コンピュートタイプの選択
推奨設定:
- 小規模プロジェクト: BUILD_GENERAL1_SMALL (2 vCPU, 3GB)
- 中規模プロジェクト: BUILD_GENERAL1_MEDIUM (4 vCPU, 7GB)
- 大規模プロジェクト: BUILD_GENERAL1_LARGE (8 vCPU, 15GB)
サービスロールの設定
新しいサービスロールの作成
- サービスロールで「新しいサービスロール」を選択
- ロール名が自動生成される(例:codebuild-my-web-app-build-service-role)
- 必要に応じて追加ポリシーをアタッチ
よく使用される追加ポリシー
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の配置方法
- プロジェクトルートに配置:
buildspec.yml
として保存 - CodeBuildコンソールで指定: 「buildspec」セクションで内容を直接入力
- 異なるパスに配置: 「buildspecファイル」で相対パスを指定
トラブルシューティング
よくあるエラーと解決方法
1. 権限エラー
エラー: Access Denied when calling AssumeRole
解決方法: サービスロールにCodeBuildの信頼関係を設定
2. ソース取得エラー
エラー: Repository not found or access denied
解決方法: GitHub/CodeCommitの認証情報を確認
3. ビルド実行エラー
エラー: buildspec.yml not found
解決方法: ファイルパスとファイル名を確認
ログの確認方法
- CloudWatch Logsで詳細ログを確認
- ビルド履歴から各フェーズの実行状況を確認
- フェーズの詳細で具体的なエラー内容を確認
デバッグのためのTips
yaml
# buildspec.ymlでのデバッグ出力例
phases:
install:
commands:
- echo "Current directory:" && pwd
- echo "Files in directory:" && ls -la
- echo "Environment variables:" && env
プロジェクト作成後の確認事項
作成完了の確認
- プロジェクト一覧で新しいプロジェクトが表示される
- プロジェクト詳細で設定内容を確認
- **「ビルドの開始」**で初回ビルドを実行
初回ビルドの実行
初回ビルドを実行して、すべての設定が正しく動作することを確認:
- **「ビルドの開始」**ボタンをクリック
- ソースバージョンを確認(通常は最新)
- ビルドの実行を開始
- ログ出力をリアルタイムで確認
設定の調整
初回ビルド結果を基に、必要に応じて以下を調整:
- コンピュートタイプの変更(パフォーマンス調整)
- 環境変数の追加や修正
- buildspec.ymlの改善
- タイムアウト設定の調整
次のステップ
CodeBuildプロジェクトの作成が完了したら、以下の記事でより詳細な機能を学習しましょう:
推奨学習順序
- buildspec詳細編: 高度なビルド設定とフェーズ管理
- 環境・ランタイム編: カスタムDockerイメージと特殊環境
- セキュリティ・権限編: IAM統合とVPCネットワーク設定
- パフォーマンス最適化編: キャッシュとコスト効率化
これらの基本設定を理解することで、CodeBuildを実際のプロジェクトで効果的に活用できるようになります。