AWS Elastic Beanstalk
開発者ガイド

EB CLI での AWS CodeBuild の使用

AWS CodeBuild はソースコードをコンパイルし、ユニットテストを実行して、すぐにデプロイできるアーティファクトを生成します。CodeBuild を EB CLI をともに使用して、ソースコードからのアプリケーションの構築を自動化できます。環境の作成とその後のデプロイはビルドステップで始まり、続いて生成されるアプリケーションがデプロイされます。

注記

一部リージョンでは、CodeBuild を使用できない場合があります。これらのリージョンでは、Elastic Beanstalk と CodeBuild の統合を行うことはできません。

各リージョンで提供されている AWS サービスの詳細については、「リージョンテーブル」を参照してください。

アプリケーションを作成する

CodeBuild を使用する Elastic Beanstalk アプリケーションを作成するには

  1. アプリケーションフォルダに、CodeBuild ビルド仕様ファイル buildspec.yml を含めます。

  2. Elastic Beanstalk に固有のオプションを持つ eb_codebuild_settings エントリをファイルに追加します。

  3. フォルダで eb init を実行します。

Elastic Beanstalk は、CodeBuild ビルド仕様ファイル形式を拡張して、次の追加設定を含めます。

eb_codebuild_settings: CodeBuildServiceRole: role-name ComputeType: size Image: image Timeout: minutes
CodeBuildServiceRole

ユーザーに代わって、依存する AWS サービスを操作するために CodeBuild が使用できる AWS Identity and Access Management (IAM) サービスロールの ARN または名前。この値は必須です。これを省略すると、それ以降の eb create または eb deploy コマンドは失敗します。

CodeBuild のサービスロールの作成の詳細については、AWS CodeBuild ユーザーガイドの「CodeBuild サービスロールの作成」を参照してください。

注記

CodeBuild 自体でアクションを実行するためのアクセス権限も必要です。Elastic Beanstalk AWSElasticBeanstalkFullAccess 管理ユーザーポリシーには、必要なすべての CodeBuild アクションのアクセス権限が含まれています。管理ポリシーを使用していない場合は、ユーザーポリシーで必ず以下のアクセス権限を許可してください。

"codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:BatchGetBuilds", "codebuild:StartBuild"

詳細については、「Elastic Beanstalk へのアクセスの制御」を参照してください。

ComputeType

CodeBuild ビルド環境で Docker コンテナによって使用されるリソースの量。有効な値は、BUILD_GENERAL1_SMALL、BUILD_GENERAL1_MEDIUM、BUILD_GENERAL1_LARGE です。

Image

CodeBuild がビルド環境に使用する Docker Hub または Amazon ECR イメージの名前。この Docker イメージには、コードを作成するために必要なすべてのツールとランタイムライブラリが含まれている必要があり、アプリケーションのターゲットプラットフォームに一致する必要があります。CodeBuild は、特に Elastic Beanstalk で使用するよう意図された一連のイメージを管理および保守します。それらのイメージのいずれかを使用することをお勧めします。詳細については、AWS CodeBuild ユーザーガイドの「CodeBuild に用意されている Docker イメージ」を参照してください。

Image 値はオプションです。これを省略すると、eb init コマンドはターゲットプラットフォームに最適なイメージの選択を試みます。さらに、インタラクティブモードで eb init で実行し、イメージの選択に失敗した場合、イメージの選択が求められます。初期化が正常に終了すると、eb init は選択されたイメージを buildspec.yml ファイルに書き込みます。

Timeout

CodeBuild ビルドがタイムアウトするまでの実行時間 (分数)。この値はオプションです。有効な値とデフォルト値の詳細については、「CodeBuild でのビルドプロジェクトの作成」を参照してください。

注記

このタイムアウトにより、CodeBuild の最大実行時間が制御されます。また、EB CLI はアプリケーションバージョンを作成するための最初のステップの一部としてこれを順守します。これは、eb create または eb deploy コマンドの --timeout オプションで指定する値とは異なります。後者の値は、EB CLI が環境の作成または更新を待機する最大時間を制御します。

アプリケーションコードのビルドとデプロイ

アプリケーションコードをデプロイする必要があるたびに、EB CLI は CodeBuild を使用してビルドを実行し、次に生成されたビルドアーティファクトを環境にデプロイします。これが発生するのは、eb create コマンドを使用してアプリケーションの Elastic Beanstalk 環境を作成し、毎回後で eb deploy コマンドを使用してコードの変更を環境にデプロイする場合です。

CodeBuild ステップが失敗した場合、環境の作成またはデプロイは開始されません。