コンピューティングイメージとランタイムイメージの構成
CodeCatalyst ワークフローでは、CodeCatalyst でワークフローアクションの実行に使用するコンピューティングとランタイム環境イメージを指定できます。
コンピューティングとは、CodeCatalyst がワークフローアクションを実行するために管理および保守するコンピューティングエンジン (CPU、メモリ、およびオペレーティングシステム) を指します。
注記
コンピューティングがワークフローのプロパティとして定義されている場合、そのワークフロー内のアクションのプロパティとしてコンピューティングを定義することはできません。同様に、コンピューティングがアクションのプロパティとして定義されている場合、ワークフロー内でコンピューティングを定義することはできません。
ランタイム環境イメージは、CodeCatalyst がワークフローアクションを実行する Docker コンテナです。Docker コンテナは選択したコンピューティングプラットフォーム上で実行され、オペレーティングシステムと、ワークフローアクションに必要な AWS CLI、Node.js、.tar などの追加のツールが含まれています。
トピック
コンピューティングタイプ
CodeCatalyst には次のコンピューティングタイプが用意されています。
-
Amazon EC2
-
AWS Lambda
Amazon EC2 はアクションの実行中に最適化された柔軟性を提供し、Lambda はアクションの起動速度を最適化します。Lambda では、起動レイテンシーが低いため、ワークフローアクションの実行速度が速くなります。Lambda では、一般的なランタイムでサーバーレスアプリケーションを構築、テスト、デプロイできる基本的なワークフローを実行できます。これらのランタイムには、Node.js、Python、Java、.NET、Go が含まれます。ただし、Lambda でサポートされていないユースケースもいくつかあります。それによって影響がある場合は Amazon EC2 コンピューティングタイプを使用してください。
-
Lambda では、指定されたレジストリからのランタイム環境イメージをサポートしていません。
-
Lambda では、root 権限を必要とするツールをサポートしていません。
yum
やrpm
などのツールには、Amazon EC2 コンピューティングタイプや root 権限を必要としないその他のツールを使用してください。 -
Lambda では Docker のビルドや実行をサポートしていません。Docker イメージを使用する次のアクションはサポートされていません: AWS CloudFormation スタックのデプロイ、Amazon ECS へのデプロイ、Amazon S3 の公開、AWS CDK のブートストラップ、AWS CDK のデプロイ、AWS Lambda の呼び出し、GitHub Actions。CodeCatalyst GitHub Actions アクション内で実行されている Docker ベースの GitHub Actions も、Lambda コンピューティングではサポートされていません。Podman など、root 権限を必要としない代替手段を使用できます。
-
Lambda では、
/tmp
外部のファイルへの書き込みがサポートされていません。ワークフローアクションを構成するときは、ツールを再構成して/tmp
にインストールまたは書き込みできます。npm
をインストールするビルドアクションがある場合は、必ず/tmp
にインストールするように構成してください。 -
Lambda では 15 分を超えるランタイムをサポートしていません。
コンピューティングフリート
CodeCatalyst では、次のコンピューティングフリートが用意されています。
-
オンデマンドフリート
-
プロビジョニングされたフリート
オンデマンドフリートでは、ワークフローアクションが開始されると、ワークフローが必要なリソースをプロビジョニングします。マシンはアクションが終了すると破棄されます。アクションを実行している間のみ、分単位で料金が発生します。オンデマンドフリートはフルマネージド型で、需要の急増にも対応できる自動スケーリング機能を備えています。
CodeCatalyst には、CodeCatalyst によって維持される Amazon EC2 を搭載したマシンを含むプロビジョニングされたフリートも用意されています。プロビジョニングされたフリートでは、ワークフローアクションを実行するように専用マシンのセットを構成します。これらのマシンはアイドル状態のままで、アクションをすぐに処理できます。プロビジョニングされたフリートでは、マシンは常に稼働しており、プロビジョニングされている間はコストが発生します。
フリートを作成、更新、または削除するには、スペース管理者ロールまたはプロジェクト管理者ロールが必要です。
オンデマンドフリートのプロパティ
CodeCatalyst には以下のオンデマンドフリートがあります。
名前 | オペレーティングシステム | アーキテクチャ | vCPUs | メモリ (GiB) | ディスク容量 | サポートされているコンピューティングタイプ |
---|---|---|---|---|---|---|
Linux.Arm64.Large |
Amazon Linux 2 | Arm64 | 2 | 4 |
64 GB |
Amazon EC2 |
10 GB |
Lambda |
|||||
Linux.Arm64.XLarge |
Amazon Linux 2 | Arm64 | 4 | 8 |
128 GB |
Amazon EC2 |
10 GB |
Lambda |
|||||
Linux.Arm64.2XLarge |
Amazon Linux 2 | Arm64 | 8 | 16 | 128 GB | Amazon EC2 |
Linux.x86-64.Large |
Amazon Linux 2 | x86-64 | 2 | 4 |
64 GB |
Amazon EC2 |
10 GB |
Lambda |
|||||
Linux.x86-64.XLarge |
Amazon Linux 2 | x86-64 | 4 | 8 |
128 GB |
Amazon EC2 |
10 GB |
Lambda |
|||||
Linux.x86-64.2XLarge |
Amazon Linux 2 | x86-64 | 8 | 16 | 128 GB | Amazon EC2 |
注記
オンデマンドフリートの仕様は請求階層によって異なります。詳細については、「料金
フリートが選択されていない場合、CodeCatalyst では Linux.x86-64.Large
を使用します。
プロビジョニングされたフリートのプロパティ
プロビジョニングされたフリートには次のプロパティがあります。
- オペレーティングシステム
-
オペレーティングシステム。使用できるオペレーションシステムは次のとおりです。
-
Amazon Linux 2
-
Windows Server 2022
注記
Windows フリートはビルドアクションでのみサポートされています。その他のアクションでは現在 Windows をサポートしていません。
-
- アーキテクチャ
-
プロセッサアーキテクチャ。以下のアーキテクチャが利用可能です。
-
x86_64
-
Arm64
-
- マシンタイプ
-
各インスタンスのマシンタイプ。次のマシンタイプを使用できます。
vCPUs メモリ (GiB) ディスク容量 オペレーティングシステム 2 4 64 GB
Amazon Linux 2 4 8 128 GB
Amazon Linux 2 Windows Server 2022 8 16 128 GB
Amazon Linux 2 Windows Server 2022 - 容量
-
フリートに割り当てられるマシンの初期数。これにより、並列で実行できるアクションの数が定義されます。
- スケーリングモード
-
アクション数がフリート容量を超えたときの動作を定義します。
- オンデマンドで追加の容量をプロビジョニングする
-
オンデマンドで追加のマシンを設定すると、新しいアクションの実行に応じて自動的にスケールアップし、アクションが完了するとベース容量までスケールダウンします。実行中のマシンごとに分単位でのお支払いとなるため、追加のコストが発生する可能性があります。
- 追加のフリート容量が利用可能になるまで待機する
-
アクションの実行は、マシンが使用可能になるまでキューに入れられます。これにより、さらにマシンが割り当てられないため、追加のコストが抑えられます。