[アップデート] しばらく見ないうちに AWS CodeBuild のリザーブドキャパシティフリートの設定方法が柔軟になっていました
いわさです。
AWS CodeBuild は通常はビルドリクエストが発生したタイミングでビルド環境を構築し、ビルドが終わったら破棄されます。
これをオンデマンドフリートと呼びます。
一方で、事前にビルド環境をアイドル状態で用意しておき、ビルドのリクエストがあったタイミングですぐに開始させることも出来ます。これをリザーブドキャパシティフリートと呼びます。
迅速にビルドを開始できるのがメリットなのですが、一方で常時アイドル状態で環境を用意しておく必要があるので料金が発生し続けるという点もあります。
オンデマンドフリートは特に準備が不要で、リザーブドキャパシティフリートは事前にコンピューティングフリートを作成したうえで次のように CodeBuild プロジェクトで指定します。
先日リザーブドキャパシティフリートに小さなアップデートがあったので確認してみたところ、いつの間にかこのインスタンススペックを指定する方法が全然違うものになっていることに気が付きましたので、アップデート紹介を兼ねて最新のリザーブドキャパシティフリートの作成方法を紹介します。
従来
このリザーブドキャパシティフリートは 2024 年 1 月ごろに登場した新しい機能で、その当時は次のようにフリート作成時に次のような形でビルド環境のスペックを指定していました。
AWS API でいうとcomputeType
にBUILD_GENERAL1_SMALL
など、事前定義されたタイプを指定しています。
% cat hoge.json
{
"name": "hoge0427fleet3",
"baseCapacity": 1,
"environmentType": "LINUX_CONTAINER",
"computeType": "BUILD_GENERAL1_SMALL",
"overflowBehavior": "QUEUE"
}
% aws codebuild create-fleet --cli-input-json file://hoge.json --profile hoge
{
"fleet": {
"arn": "arn:aws:codebuild:ap-northeast-1:123456789012:fleet/hoge0427fleet3:8e524f22-7ead-42a2-8e8d-71965514800a",
"name": "hoge0427fleet3",
"id": "8e524f22-7ead-42a2-8e8d-71965514800a",
"created": "2025-04-27T06:33:08.381000+09:00",
"lastModified": "2025-04-27T06:33:08.381000+09:00",
"status": {
"statusCode": "CREATING"
},
"baseCapacity": 1,
"environmentType": "LINUX_CONTAINER",
"computeType": "BUILD_GENERAL1_SMALL",
"overflowBehavior": "QUEUE"
}
}
現在(2025 年 4 月 27 日時点)
現在はマネジメントコンソールからは次のようにコンピューティング選択モードを選択できるようになっています。
それぞれについて解説します。
ガイド付き選択(属性ベース)
まずガイド付き選択ですが、従来のように事前定義されたセットから選択する形ではなく、vCPU / メモリ / ディスクを指定してフリートを構築することができるようになっています。
こちらはどうやら 2024 年 11 月の次のアップデートで実装された機能のようです。
18 の新しいコンピューティングタイプが追加され、さらに vCPU、メモリサイズ、ディスク容量の属性を指定することで、新しいコンピューティングタイプにアクセスできるようになりました。
試しに vCPU を変更してみると、reserved.x86-64.16cpu.32gib
に変更されました。
vCPU の変更にあわせてメモリとディスクも自動で変更されています。あくまでも事前に用意されているいくつかのオプションの中から選択する形なので、そこからはずれる組み合わせを選択することは出来ません。
裏側では従来と同じCreateFleet
が実行されているのですが、computeType
にATTRIBUTE_BASED_COMPUTE
を指定する形になっています。
{
"eventVersion": "1.11",
"eventSource": "codebuild.amazonaws.com",
"eventName": "CreateFleet",
"awsRegion": "ap-northeast-1",
"requestParameters": {
"computeType": "ATTRIBUTE_BASED_COMPUTE",
"overflowBehavior": "QUEUE",
"environmentType": "LINUX_CONTAINER",
"proxyConfiguration": {},
"scalingConfiguration": {},
"name": "hoge0427fleet",
"baseCapacity": 1,
"vpcConfig": {},
"acceptXcodeEndUserLicenseAgreement": false,
"tags": "HIDDEN_DUE_TO_SECURITY_REASONS",
"acceptMacOSEndUserLicenseAgreement": false
},
:
CloudTrail のログ上だと確認できなかったのですが、computeConfiguration
で指定された vCPU / メモリ / ディスクを満たす最も安価なインスタンスが選択されます。
カスタムインスタンス
カスタムインスタンスは先日のアップデートで追加された新しい選択モードです。
このアップデートでは AWS 利用者には慣れているインスタンスタイプでの指定となっています。
さらにオプションで追加の EBS ボリュームを指定することもできるようになりました。
オペレーティングシステム/アーキテクチャに対応するインスタンスタイプがリストされるので選択します。
「GPU 強化コンピューティングを使用」などをチェックするとリストを絞り込むことが出来ます。
また、カスタムインスタンスを選択した時、インスタンスタイプによって vPCU とメモリが決定されるのですが、ディスクは 64 GB がデフォルトとなっています。
追加の EBS ボリュームを設定することでディスクサイズの拡張が可能です。以下は 32 GB を追加指定したことで、96 GB のストレージを確保することができるようになりました。
さいごに
本日は、しばらく見ないうちに AWS CodeBuild のリザーブドキャパシティフリートの設定方法が柔軟になっていたので最新の設定方法を確認してみました。
なお、カスタムインスタンスの追加ストレージは追加料金は、東京リージョンであれば追加分 $0.000000037/分/GB の単価となっています。
CodeBuild の料金ページも更新されていたので、こちらも併せてご確認ください。