Code Engine の料金
IBM Cloud® Code Engine は従来型のクラウド・コンピューティング・テクノロジーとは異なり、使用したリソースに対してのみ課金されます。 ワークロードで消費されたメモリーおよび vCPU が、着信 HTTP 呼び出しと共に請求対象となります。 アプリがゼロにスケーリングされた場合や、ジョブまたはビルドが実行されていない場合は、リソースが消費されないため、課金されません。
Code Engine を契約前に試用できるように、Code Engine には無料枠が用意されています。
以下のエンティティーが請求対象となります。
プロジェクトなどのエンティティーは、請求対象ではなく、エンティティーのためのフォルダーとして使用されます。 シークレット、バインディング、サブスクリプションなどのエンティティーは、請求対象ではありませんが、プロジェクトの使用を全体的に制限する要素になります。 詳しくは、Code Engine の制限と割り当て量を参照してください。
このトピックで示されるコストは目安であり、実際のコストを表しているわけではありません。 類似した構成の環境で発生するコストを見積もる際の、開始点となります。 実際のコストは、地域によって異なる場合があります。 最新の価格については、 Code Engine の価格設定を参照してください。
アプリケーションの価格設定
アプリケーションをデプロイすると、アプリケーションのインスタンスの実行によって消費される CPU リソースおよびメモリー・リソースと、HTTP 要求に対して課金されます。 着信 HTTP 呼び出しは、アプリケーションで受信する HTTP 呼び出し数に応じて課金されます。 例えば、アプリが 100 の呼び出しを処理した場合は、100 の HTTP 呼び出しに対して課金されます。 ワークロード間で発生するプロジェクト内での内部 HTTP トラフィックは、請求対象の HTTP 呼び出しの合計に含められません。
以下に例を示します。
- メモリーを
2GB (ギガバイト)、仮想 CPU を1、インスタンスの最大スケールおよび最小スケールを1に設定して Code Engine アプリを作成した場合は、1 時間後、1vCPU 時間および2GB 時間に対して課金されます。 - 次に、インスタンスの最大スケールを
2に設定し、2 にスケール・アップするのに十分な要求をアプリケーションが受信する場合は、1 時間当たり (number of instances) x (number of virtual CPUs) =2vCPU および4GB に対して課金されます。
CPU とメモリーの有効な組み合わせについては、サポートされるメモリーと CPU の組み合わせを参照してください。
イメージをプルしたり、ソース・コードからイメージをビルドしたりするためにかかる時間が、請求対象の時間に含まれることに注意してください。
ジョブの価格設定
ジョブを実行するときには、ジョブが実行されているときに消費する CPU リソースおよびメモリー・リソースに対して課金されます。 ジョブの構成に対しては課金されません。
以下に例を示します。
- 1 つのジョブ・インスタンスで IBM Cloud Object Storage からの情報を処理するジョブを作成し、そのジョブで
4GB のメモリーを使用し、1 時間実行する場合は、1CPU 時間および4GB 時間に対して課金されます。 - 同じジョブを
4インスタンスにスケールし、15分で完了した場合、4vCPU、16GB、.25時間分が課金されます。
CPU とメモリーの有効な組み合わせについては、サポートされるメモリーと CPU の組み合わせを参照してください。
イメージをプルしたり、ソース・コードからイメージをビルドしたりするためにかかる時間が、請求対象の時間に含まれることに注意してください。
機能の価格設定
ファンクションをデプロイすると、 HTTP リクエスト、およびファンクションのインスタンスを実行することで消費される CPU とメモリリソースに対して課金されます。 着信 HTTP 通話は、お客様の機能で受信された HTTP 通話数で課金されます。 以下に例を示します。
- あなたのファンクションが100コールを提供した場合、100 HTTP コールの料金が請求されます。 ワークロード間の Code Engine プロジェクト内の内部 HTTP トラフィックは、請求可能な HTTP 通話の合計から除外されます。
- 2 GB のメモリーと 0.5 の仮想 CPU を使用して Code Engine 関数を作成した場合、600 回の呼び出しの後 (それぞれが結果を完了するために 6 秒かかると想定した場合)、 0.5 vCPU 時間と 2 GB 時間が課金されます。
CPU とメモリーの有効な組み合わせについては、サポートされるメモリーと CPU の組み合わせを参照してください。
コードバンドルやソースコードからのビルドにかかる時間は、請求可能な時間に含まれます。
フリート価格
フリートが実行されると、フリートが実行されている間に消費されるCPU、メモリリソース、および潜在的にGPUリソースに対してのみ料金が適用されます。
実行するフリートごとに、フリートリソース要件を満たすワーカーノードのデプロイを Code Engine に許可するか、指定した特定のワーカーノードプロファイルをデプロイするかを選択できます。 以下、両オプションのコストについて検討する。
CEにワーカーノードを自動的にプロビジョニングさせる場合
フリート実行時には、タスクを完了するためにコードのインスタンスを実行するのに必要なリソースの量と、同時に実行するインスタンスの最大数を指定する。 Code Engine は、これらのリソース要件を最も効率的に満たすために、潜在的に様々なプロファイルのワーカーノードを配置します。 このシナリオでは、コストはデプロイされたワーカーノードに基づいていますが、指定したインスタンスリソース要件、タスク数、平均インスタンスランタイムを使用して概算できます。 これらの値に基づいて、フリートのコストを概算する式は次のようになる:
[ (total cost of vCPU seconds) + (total cost of GB seconds) ] x (# of tasks) x (average runtime of each task in seconds)
例えば、あなたのコードのインスタンスが2 vCPU と4GBを必要とし、100のタスクを実行し、各タスクの平均実行時間が 0.5 秒である場合、総コストを概算する式は次のようになる:
[ 2 x (cost of 1 vCPU second) + 4 x (cost of 1 GB second) ] x (100) x (0.5)
フリート実行にかかる総コストは、フリート実行中に利用された各ワーカーノードのコストの累積である。 さらに、失敗したインスタンスは、再試行によってランタイムが増加し、フリートコストが増加する可能性がある。 フリート作成時にリトライ設定を行うことができます。
Code Engine はフリート用にGPUを自動的に配備しない。 フリート用にGPUをデプロイするには、特定のワーカープロファイルまたはGPUファミリをデプロイするよう選択する必要があります。
特定の労働者プロファイルを選択した場合
フリートに対して特定のワーカーノードプロファイルまたはファミリーをデプロイすることを選択した場合、そのタイプのワーカーノードのみがフリートに対してデプロイされます。 フリート稼働の総コストは、配備された各ワーカーノードを稼働させるための累積コストである。 GPUを搭載したワーカープロファイルを選択することもできます。
このオプションは現在CLIでのみ利用可能である。
これは、あなたのフリートを運営する最も効率的な方法ではない可能性があり、配置された労働者のリソースが必要なリソースを上回った場合、より高いコストになる可能性があることに留意してください。
非GPUワーカーのプロファイル
GPUを使用しない場合、ワーカーの実行コストは以下の式で概算できます:
[ (total cost of worker VPU seconds) + (total cost of worker GB seconds) ] x (average worker runtime in seconds)
例えば、ワーカープロファイルを16 vCPU と64GBに選択し、フリートが10秒間稼働する場合、総コストを概算する計算式は次のようになる:
[ 16 x (cost of 1 vCPU second) + 64 x (cost of 1 GB second) ] x (10)
フリート運営にかかる総コストは、デプロイされる各ワーカーノードの運営にかかる累積コストである。 例えば、 2 ワーカーノードがデプロイされている場合、上記の式を 2 で掛け算して、総コストを概算します。 ワーカーノードの数は、必要なインスタンスリソースと最大同時インスタンス数に依存することに留意してください。
GPUワーカーのプロフィール
GPUワーカーごとにGPU秒単位の追加料金が発生します。 GPUワーカーを稼働させるコストは、以下の式で概算できます:
[ (total cost of GPU-seconds) + (Total cost of vCPU seconds) + (total cost of 1 GB second) ] x (average worker runtime in seconds)
例えば、ワーカーノードプロファイル gx3-24x120x2l40s を考えてみましょう。 ワーカーノードプロファイルの値を使って、ワーカーの使用コストを概算することができます。 プロフィールは以下のパーツで構成されている:
- 最初の値
gx3はワーカーノードカテゴリです。 - 番目の値、
24は vCPU - 3番目の値
120はメモリのGBである - 4番目の値
2 L40sは、 L40s GPUコアの数を表す。
このプロファイルでワーカーノードを使用する場合の1秒あたりのおおよそのコストは以下の通りです:
[ 24 x (cost of 1 vCPU second) + 120 x (cost of 1 GB second) + 2 x (cost of 1 L40 GPU-second) ] x (average worker runtime in seconds)
フリート運営にかかる総コストは、デプロイされる各ワーカーノードの運営にかかる累積コストである。 例えば、 2 GPUワーカーが配置されている場合、上記の式を 2 で掛け算し、総コストを概算します。 ワーカーノードの数は、必要なインスタンスリソースと最大同時インスタンス数に依存することに留意してください。
ビルドの価格設定
アプリとしてデプロイするため、またはジョブとして実行するためにソース・コードからイメージをビルドした場合、そのビルドが消費するメモリーおよび vCPU の使用時間に対して課金されます。 ただし、その料金は、結果として得られたイメージをアプリケーションまたはジョブ実行で使用するときに発生した料金とは、別個に課金されます。 ビルドの構成に対しては課金されません。
ビルドは、 small、 medium、 large、 xlarge、 xxlarge のサイズに分類される。 ビルドのサイズに応じて、ビルドの実行時に CPU コア、メモリー、およびディスク・スペースがどのようにビルドに割り当てられるかが決まります。 小さいビルドほど費用は少なくなりますが、CPU コアの数が少ないために処理も遅くなることが一般的です。
また、選択するサイズが小さすぎると、ビルドのメモリーとディスクの要求が原因でビルドが失敗する可能性があります。 ビルドのサイズについて詳しくは、ビルドのサイズの決定を参照してください。
ソース・コードをプルし、ビルドされたイメージをプッシュするためにかかる時間が、請求対象の時間に含まれることに注意してください。