AWS CodeBuild で EB CLI を使用する - AWS Elastic Beanstalk

AWS CodeBuild で EB CLI を使用する

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 の管理ユーザーポリシー、AdministratorAccess-AWSElasticBeanstalk には、 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 のステップが失敗した場合、環境の作成またはデプロイは開始されません。