コンピューティングイメージとランタイムイメージの構成 - Amazon CodeCatalyst

コンピューティングイメージとランタイムイメージの構成

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 権限を必要とするツールをサポートしていません。yumrpm などのツールには、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
容量

フリートに割り当てられるマシンの初期数。これにより、並列で実行できるアクションの数が定義されます。

スケーリングモード

アクション数がフリート容量を超えたときの動作を定義します。

オンデマンドで追加の容量をプロビジョニングする

オンデマンドで追加のマシンを設定すると、新しいアクションの実行に応じて自動的にスケールアップし、アクションが完了するとベース容量までスケールダウンします。実行中のマシンごとに分単位でのお支払いとなるため、追加のコストが発生する可能性があります。

追加のフリート容量が利用可能になるまで待機する

アクションの実行は、マシンが使用可能になるまでキューに入れられます。これにより、さらにマシンが割り当てられないため、追加のコストが抑えられます。