CodeBuild では、CodeBuild がビルドの実行に使用するコンピューティングとランタイム環境イメージを指定できます。コンピューティングとは、CodeBuild によって管理および保守されるコンピューティングエンジン (CPU、メモリ、およびオペレーティングシステム) を指します。ランタイム環境イメージは、選択したコンピュートプラットフォーム上で実行されるコンテナイメージで、ビルドで必要になる可能性があるその他のツール (AWS CLI など) が含まれています。
コンピューティングモードについて
CodeBuild には以下のコンピューティングモードがあります。
-
EC2
-
AWS Lambda
EC2 はビルド中の柔軟性が最適化され、AWS Lambda により起動速度も最適化されます。起動時のレイテンシーが低いため、AWS Lambda はより高速なビルドをサポートします。また、AWS Lambda は自動的にスケールするため、ビルドはキュー内で実行を待つ必要がありません。詳細については、「AWS Lambda コンピューティングでビルドを実行」を参照してください。
環境タイプについて
AWS CodeBuild は、ビルド環境に、以下の使用可能な EC2 コンピューティング用メモリ、vCPU、およびディスクスペースを提供します。
コンピューティングタイプ | 環境 computeType 値 | 環境タイプ値 | メモリ | vCPU | ディスク容量 |
---|---|---|---|---|---|
ARM Small ¹ | BUILD_GENERAL1_SMALL |
ARM_CONTAINER |
4 GB | 2 | 64 GB |
ARM Medium ¹ | BUILD_GENERAL1_MEDIUM |
ARM_CONTAINER |
8 GB | 4 | 128 GB |
ARM Large ¹ | BUILD_GENERAL1_LARGE |
ARM_CONTAINER |
16 GB | 8 | 128 GB |
ARM XLarge ¹ | BUILD_GENERAL1_XLARGE |
ARM_CONTAINER |
64 GB | 32 | 256 GB |
ARM 2XLarge ¹ | BUILD_GENERAL1_2XLARGE |
ARM_CONTAINER |
96 GB | 48 | 824 GB |
Linux Small ¹ | BUILD_GENERAL1_SMALL |
LINUX_CONTAINER |
3 GB | 2 | 64 GB |
Linux Medium ¹ | BUILD_GENERAL1_MEDIUM |
LINUX_CONTAINER |
7 GB | 4 | 128 GB |
Linux Large ¹ | BUILD_GENERAL1_LARGE |
LINUX_CONTAINER |
15 GB | 8 | 128 GB |
Linux XLarge ¹ | BUILD_GENERAL1_XLARGE |
LINUX_CONTAINER |
70 GB | 36 | 256 GB |
Linux 2xlarge | BUILD_GENERAL1_2XLARGE |
LINUX_CONTAINER |
145 GB | 72 | 824 GB (SSD) |
Linux GPU Small | BUILD_GENERAL1_SMALL |
LINUX_GPU_CONTAINER |
16 GB | 4 | 220 GB |
Linux GPU large | BUILD_GENERAL1_LARGE |
LINUX_GPU_CONTAINER |
255 GB | 32 | 50 GB |
macOS Medium | BUILD_GENERAL1_MEDIUM |
MAC_ARM |
24 GB | 8 | 128 GB |
macOS Large | BUILD_GENERAL1_LARGE |
MAC_ARM |
32 GB | 12 | 256 GB |
Windows Medium ¹ | BUILD_GENERAL1_MEDIUM |
WINDOWS_SERVER_2019_CONTAINER |
7 GB | 4 | 128 GB |
Windows Large ¹ | BUILD_GENERAL1_LARGE |
WINDOWS_SERVER_2019_CONTAINER |
15 GB | 8 | 128 GB |
¹ 各イメージの最新バージョンがキャッシュされます。具体的なバージョンを指定すると、キャッシュされたバージョンではなく、そのバージョンのプロビジョニングが CodeBuild によって行われます。これにより、ビルド時間が長くなることがあります。たとえば、キャッシュのメリットを得るには、aws/codebuild/amazonlinux2-x86_64-standard:5.0
のような詳細バージョンではなく aws/codebuild/amazonlinux2-x86_64-standard:5.0-1.0.0
を指定します。
AWS CodeBuild は、ビルド環境に、以下の使用可能な AWS Lambda コンピューティング用メモリおよびディスクスペースを提供します。
コンピューティングタイプ | 環境 computeType 値 | 環境タイプ値 | 「メモリ」 | ディスク容量 |
---|---|---|---|---|
ARM Lambda 1GB | BUILD_LAMBDA_1GB |
ARM_LAMBDA_CONTAINER |
1 GB | 10 GB |
ARM Lambda 2GB | BUILD_LAMBDA_2GB |
ARM_LAMBDA_CONTAINER |
2 GB | 10 GB |
ARM Lambda 4GB | BUILD_LAMBDA_4GB |
ARM_LAMBDA_CONTAINER |
4 GB | 10 GB |
ARM Lambda 8GB | BUILD_LAMBDA_8GB |
ARM_LAMBDA_CONTAINER |
8 GB | 10 GB |
ARM Lambda 10GB | BUILD_LAMBDA_10GB |
ARM_LAMBDA_CONTAINER |
10 GB | 10 GB |
Linux Lambda 1GB | BUILD_LAMBDA_1GB |
LINUX_LAMBDA_CONTAINER |
1 GB | 10 GB |
Linux Lambda 2GB | BUILD_LAMBDA_2GB |
LINUX_LAMBDA_CONTAINER |
2 GB | 10 GB |
Linux Lambda 4GB | BUILD_LAMBDA_4GB |
LINUX_LAMBDA_CONTAINER |
4 GB | 10 GB |
Linux Lambda 8GB | BUILD_LAMBDA_8GB |
LINUX_LAMBDA_CONTAINER |
8 GB | 10 GB |
Linux Lambda 10GB | BUILD_LAMBDA_10GB |
LINUX_LAMBDA_CONTAINER |
10 GB | 10 GB |
他の環境タイプを使用する場合は、キャッシュされたイメージを使用してビルド時間を短縮することをお勧めします。
各ビルド環境にリストされているディスク容量は、CODEBUILD_SRC_DIR
環境変数で指定されたディレクトリでのみ使用できます。
コンピューティングタイプを選択するには:
-
CodeBuild コンソールで、[Create build project] (ビルドプロジェクトの作成) ウィザードまたは [Edit Build Project] (ビルドプロジェクトの編集) ページの [Environment] (環境変数) で、[Additional configuration] (追加設定) を展開し、[Compute type] (コンピューティングタイプ) からいずれかのオプションを選択します。詳細については、「ビルドプロジェクトの作成 (コンソール)」または「ビルドプロジェクトの設定の変更 (コンソール)」を参照してください。
-
AWS CLI の場合は、
create-project
またはupdate-project
コマンドを実行し、computeType
オブジェクトのenvironment
の値を指定します。詳細については、「ビルドプロジェクトの作成 (AWS CLI)」または「ビルドプロジェクトの設定の変更 (AWS CLI)」を参照してください。 -
AWS SDK の場合は、ターゲットのプログラミング言語に
CreateProject
またはUpdateProject
に相当するオペレーションを呼び出し、computeType
オブジェクトのenvironment
に相当する値を指定します。詳細については、「AWS SDK とツールのリファレンス」を参照してください。
一部の環境タイプとリージョン可用性には制限があります。
-
コンピューティングタイプ Linux GPU Small (
LINUX_GPU_CONTAINER
) は、次のリージョンのみで利用可能です。-
米国東部 (バージニア北部)
-
米国西部 (オレゴン)
-
アジアパシフィック (東京)
-
カナダ (中部)
-
欧州 (フランクフルト)
-
欧州 (アイルランド)
-
欧州 (ロンドン)
-
-
コンピューティングタイプ Linux GPU Large (
LINUX_GPU_CONTAINER
) は、次のリージョンのみで利用可能です。-
米国東部(オハイオ)
-
米国東部 (バージニア北部)
-
米国西部 (オレゴン)
-
アジアパシフィック (ソウル)
-
アジアパシフィック (シンガポール)
-
アジアパシフィック (シドニー)
-
アジアパシフィック (東京)
-
カナダ (中部)
-
中国 (北京)
-
中国 (寧夏)
-
欧州 (フランクフルト)
-
欧州 (アイルランド)
-
欧州 (ロンドン)
-
-
環境タイプ「
ARM_CONTAINER
」は、次のリージョンのみで利用可能です。-
米国東部 (オハイオ)
-
米国東部 (バージニア北部)
-
米国西部 (北カリフォルニア)
-
米国西部 (オレゴン)
-
アジアパシフィック (香港)
-
アジアパシフィック (ジャカルタ)
-
アジアパシフィック (ハイデラバード)
-
アジアパシフィック (ムンバイ)
-
アジアパシフィック (大阪)
-
アジアパシフィック (ソウル)
-
アジアパシフィック (シンガポール)
-
アジアパシフィック (シドニー)
-
アジアパシフィック (東京)
-
カナダ (中部)
-
中国 (北京)
-
中国 (寧夏)
-
欧州 (フランクフルト)
-
欧州 (アイルランド)
-
欧州 (ロンドン)
-
欧州 (ミラノ)
-
欧州 (パリ)
-
欧州 (スペイン)
-
欧州 (ストックホルム)
-
イスラエル (テルアビブ)
-
中東 (バーレーン)
-
中東 (アラブ首長国連邦)
-
南米 (サンパウロ)
-
-
コンピューティングタイプ「
BUILD_GENERAL1_2XLARGE
」は、次のリージョンのみで利用可能です。-
米国東部 (オハイオ)
-
米国東部 (バージニア北部)
-
米国西部 (北カリフォルニア)
-
米国西部 (オレゴン)
-
アジアパシフィック (ハイデラバード)
-
アジアパシフィック (香港)
-
アジアパシフィック (ジャカルタ)
-
アジアパシフィック (メルボルン)
-
アジアパシフィック (ムンバイ)
-
アジアパシフィック (ソウル)
-
アジアパシフィック (シンガポール)
-
アジアパシフィック (シドニー)
-
アジアパシフィック (東京)
-
カナダ (中部)
-
中国 (北京)
-
中国 (寧夏)
-
欧州 (フランクフルト)
-
欧州 (アイルランド)
-
欧州 (ロンドン)
-
欧州 (パリ)
-
欧州 (スペイン)
-
欧州 (ストックホルム)
-
欧州 (チューリッヒ)
-
イスラエル (テルアビブ)
-
中東 (バーレーン)
-
中東 (アラブ首長国連邦)
-
南米 (サンパウロ)
-
-
コンピューティングモード AWS Lambda (
ARM_LAMBDA_CONTAINER
およびLINUX_LAMBDA_CONTAINER
) は、次のリージョンのみで利用可能です。-
米国東部 (バージニア北部)
-
米国東部 (オハイオ)
-
米国西部 (オレゴン)
-
アジアパシフィック (ムンバイ)
-
アジアパシフィック (シンガポール)
-
アジアパシフィック (シドニー)
-
アジアパシフィック (東京)
-
欧州 (フランクフルト)
-
欧州 (アイルランド)
-
南米 (サンパウロ)
-
-
コンピューティングモード
MAC_ARM
は、次のリージョンのみで利用可能です。-
米国東部 (バージニア北部)
-
米国東部 (オハイオ)
-
米国西部 (オレゴン)
-
アジアパシフィック (シドニー)
-
欧州 (フランクフルト)
-
コンピューティングタイプ BUILD_GENERAL1_2XLARGE
では、最大 100 GB までの圧縮されていない Docker イメージがサポートされています。
注記
カスタムビルド環境イメージとして、CodeBuild は、コンピューティングタイプを問わず、Linux および Windows で最大 50 GB の未圧縮の Docker イメージをサポートします。ビルドイメージのサイズを確認するには、Docker を使用して docker images
コマンドを実行します。REPOSITORY
:TAG
Amazon EFS を使用してビルドコンテナのより多くの領域にアクセスできます。詳細については、「AWS CodeBuild の Amazon Elastic File System サンプル」を参照してください。コンテナのディスク領域をビルド中に操作する場合は、ビルドを特権モードで実行している必要があります。
注記
デフォルトでは、Docker デーモンは非 VPC ビルドで有効になっています。VPC ビルドに Docker コンテナを使用する場合は、Docker Docs ウェブサイトの「Runtime Privilege and Linux Capabilities