Function Computeは、エラスティックインスタンスとGPUアクセラレーションインスタンスを提供します。 両方のタイプのインスタンスは、オンデマンドモードとプロビジョニングモードで使用できます。 オンデマンドインスタンスは、実際の実行期間に基づいて課金されます。 オンデマンドインスタンスをインスタンス同時実行機能とともに使用して、リソース使用率を向上させることができます。 プロビジョニング済みインスタンスの課金は、Function Computeがプロビジョニング済みインスタンスを開始すると開始され、インスタンスをリリースすると終了します。 プロビジョニングされたインスタンスは、コールドスタートを効果的に軽減できます。 このトピックでは、function Computeの関数インスタンスのタイプ、使用モード、課金方法、および仕様について説明します。
インスタンスタイプ
Elasticインスタンス: Function Computeの基本的なインスタンスタイプ。 Elasticインスタンスは、トラフィックが集中しているシナリオや、計算負荷の高いワークロードに適しています。
GPU高速化インスタンス: GPU高速化にAmpereアーキテクチャとTuringアーキテクチャを使用するインスタンス。 GPU高速化インスタンスは、主にオーディオおよびビデオ処理、人工知能 (AI) 、および画像処理シナリオで使用されます。 このタイプのインスタンスは、ワークロードをGPUハードウェアにオフロードすることでビジネスを加速します。
次のトピックでは、さまざまなシナリオでのGPU高速化インスタンスのベストプラクティスについて説明します。
重要GPU高速化インスタンスは、コンテナイメージを使用してのみデプロイできます。
GPU高速化インスタンスを使用する場合は、DingTalkユーザーグループ64970014484に参加し、次の情報を提供して、テクニカルサポートをタイムリーに提供できるようにします。
会社名などの組織名。
Alibaba CloudアカウントのID。
GPUアクセラレーションインスタンスを使用するリージョン。 例: 中国 (深セン) 。
携帯電話番号、メールアドレス、DingTalkアカウントなどの連絡先情報。
使用モード
GPU高速化インスタンスとエラスティックインスタンスは、オンデマンドモードとプロビジョニングモードをサポートしています。 このセクションでは、2つの使用モードについて説明します。
オンデマンドモード
概要
オンデマンドインスタンスは、Function Computeによって割り当てられ、リリースされます。 Function Computeは、関数の呼び出し数に基づいてインスタンスを自動的にスケーリングします。 Function Computeは、関数の呼び出し数が増えるとインスタンスを作成し、関数の呼び出し数が減ると余分なインスタンスを破棄します。 オンデマンドインスタンスは、リクエストに応じて自動的に作成されます。 一定期間 (通常3〜5分) リクエストが送信されない場合、オンデマンドインスタンスは破棄されます。 初めてオンデマンドインスタンスを呼び出すと、コールドスタートが発生します。
デフォルトでは、各リージョンのAlibaba Cloudアカウントに対して、オンデマンドモードで最大300個のインスタンスを作成できます。 この制限を増やす必要がある場合は、DingTalkグループ64970014484に参加してテクニカルサポートを行います。
課金方法
オンデマンドインスタンスの課金は、リクエストが処理のためにインスタンスに送信されると開始され、リクエストが処理されると終了します。 各オンデマンドインスタンスは、一度に1つ以上の要求を処理することができる。 詳細については、「インスタンス同時実行の設定」をご参照ください。
処理のためにリクエストが送信されない場合、インスタンスは割り当てられないため、料金は発生しません。 オンデマンドモードでは、関数が呼び出されたときにのみ課金されます。 料金と課金の詳細については、「課金の概要」をご参照ください。
ビジネス要件に基づいてインスタンス同時実行機能を使用して、リソース使用率を向上させることができます。 この場合、複数のタスクがインスタンス上のCPUリソースとメモリリソースをプリエンプティブに共有し、リソース使用率を向上させます。
インスタンスの同時実行数 = 1
実行時間の測定は、リクエストがインスタンスに到着したときに開始され、リクエストが完全に実行されたときに終了します。
インスタンスの同時実行数 > 1
オンデマンドインスタンスの実行期間の測定は、最初のリクエストが受信されたときに開始され、最後のリクエストが完全に実行されたときに終了します。 リソースを再利用して、複数のリクエストを同時に処理できます。 このようにして、資源コストを削減することができる。
プロビジョニング済みモード
概要
プロビジョニングモードでは、関数インスタンスの割り当てとリリースを管理できます。 プロビジョニングされたインスタンスは、リリースしない限り保持されます。 呼び出し要求は、プロビジョニングされたインスタンスに優先的に配信されます。 プロビジョニングされたインスタンスがリクエストを処理するのに十分でない場合、Function Computeは過剰なリクエストを処理するためにオンデマンドインスタンスを割り当てます。 プロビジョニング済みインスタンスを削除する方法の詳細については、「プロビジョニング済みインスタンスポリシーの変更または削除」をご参照ください。
コールドスタートが問題になる場合は、プロビジョニング済みインスタンスを使用することを推奨します。 固定数のプロビジョニング済みインスタンスを指定したり、リソース予算、ビジネスのトラフィック変動、リソース使用量のしきい値などの要因に基づいて、スケジュールされた自動スケーリングポリシーまたは水位ベースの自動スケーリングポリシーを設定したりできます。 プロビジョニングされたインスタンスを使用すると、インスタンスの平均コールドスタート待ち時間が大幅に短縮されます。
アイドルモード
エラスティックインスタンス
エラスティックインスタンスの状態は、vCPUリソースが割り当てられているかどうかに基づいて、アクティブ状態とアイドル状態に分類されます。 デフォルトでは、アイドルモードが有効になっています。
アクティブ状態
インスタンスがリクエストを処理している場合、またはアイドルモード機能が無効になっている場合、インスタンスはアクティブと見なされます。 アイドルモードを無効にすると、インスタンスがリクエストを処理しているかどうかに関係なく、vCPUは常にプロビジョニングされたインスタンスに割り当てられます。 バックグラウンドタスクの実行は影響を受けません。
アイドル状態
アイドルモードを有効にした場合、Function Computeは、インスタンスがリクエストを処理しておらず、プロビジョニングされたインスタンスがアイドル状態になったときに、プロビジョニングされたインスタンスのvCPUをフリーズします。 インスタンスがアイドル状態の場合、vCPUリソースに対して課金されないため、コストを節約できます。 インスタンス状態の詳細については、「インスタンスライフサイクルの設定」をご参照ください。
ビジネス要件に基づいて、アイドルモード機能を有効にするかどうかを選択できます。
コスト
プロビジョニングされたインスタンスを使用してコールドスタートを軽減し、コストを節約したい場合は、アイドルモード機能を有効にすることを推奨します。 この機能により、プロビジョニングされたインスタンスがアイドル状態の場合、プロビジョニングされたインスタンスのメモリおよびディスクリソースに対してのみ料金を支払うことができ、コールドスタートなしでリクエストに応答できます。
バックグラウンドタスク
関数がバックグラウンドタスクを実行する必要がある場合は、アイドルモード機能を有効にしないことをお勧めします。 次の項目は、シナリオの例を示します。
一部のアプリケーションフレームワークは、組み込みのスケジューラまたはバックグラウンド機能に依存しています。 一部の依存ミドルウェアは、定期的にハートビートを報告する必要があります。
一部の非同期操作は、Goを使用するGoroutine軽量スレッド、Node.jsを使用するasync関数、またはJavaを使用する非同期スレッドを使用して実行されます。
GPU を備えたインスタンス
GPU高速化インスタンスは、GPUリソースが割り当てられているかどうかに基づいて、アクティブ状態とアイドル状態に分類できます。 デフォルトでは、GPU高速化インスタンスのアイドルモードがオンになっています。
アクティブ状態
インスタンスがリクエストを処理している場合、またはアイドルモードが無効になっている場合、インスタンスはアクティブと見なされます。 アイドルモードを有効にすると、Function ComputeはプロビジョニングされたインスタンスのGPUカードをフリーズし、インスタンスはアイドル状態になります。
アイドル状態
アイドルモードが有効になっているプロビジョニング済みインスタンスは、リクエストを処理していない場合はアイドルインスタンスです。
課金方法
アクティブ状態
プロビジョニングされたインスタンスの課金は、プロビジョニングされたインスタンスが作成されたときに開始され、プロビジョニングされたインスタンスがリリースされたときに終了します。 プロビジョニングされたインスタンスは、自分でリクエストおよびリリースされます。 したがって、インスタンスがリリースされておらず、アイドルモードが有効になっていない場合、プロビジョニングされたインスタンスは、リクエストを処理していない場合でも、アクティブモードの料金に基づいて課金されます。
アイドル状態
アイドルモードを有効にすると、プロビジョニングされたインスタンスは、リクエストを処理していないときにアイドル状態になります。 アイドル状態のインスタンスの価格は、アクティブなインスタンスの価格よりもはるかに低くなります。 詳細については、「コンバージョン率」をご参照ください。
インスタンス仕様
エラスティックインスタンス
次の表に、エラスティックインスタンスの仕様を示します。 ビジネス要件に基づいてインスタンス仕様を設定できます。
vCPU
メモリサイズ (MB)
最大コードパッケージサイズ (GB)
最大関数実行時間 (秒)
最大ディスクサイズ (GB)
最大帯域幅 (Gbit/s)
0.05-16
注: 値は0.05の倍数でなければなりません。
128-32768
注: 値は64の倍数でなければなりません。
10
86,400
10
有効な値:
512 4,000 MB です。 デフォルト値です。
10 GBです。
5
説明vCPUとメモリ容量 (GB) の比率は1: Nです。Nは、1から4の範囲の値でなければならない。
GPU を備えたインスタンス
次の表に、GPUアクセラレーションインスタンスの仕様を示します。 ビジネス要件に基づいてインスタンス仕様を設定できます。
説明fc.gpu.tesla.1 GPUインスタンスは、物理NVIDIA T4カードと基本的に同じGPUパフォーマンスを提供します。
fc.gpu.ampere.1 GPUインスタンスは、物理NVIDIA A10カードと基本的に同じGPUパフォーマンスを提供します。
インスタンス仕様
フルGPUサイズ (GB)
フルGPUカード (TFLOPS) の計算能力
利用可能な仕様
オンデマンドモード
通常のプロビジョニングモード
アイドル準備モード
FP16
FP32
vGPUメモリ (MB)
vGPUコンピューティングパワー (カード)
vCPU
メモリサイズ (MB)
fc.gpu.tesla.1
16
65
8
有効な値: 1024〜16384 (1 GB〜16 GB) 。
注: 値は1,024の倍数でなければなりません。
値は、次の式に基づいて計算されます。vGPU計算能力=vGPUメモリ (GB)/16。 たとえば、vGPUメモリを5 GBに設定した場合、vGPUの最大計算能力は5/16メモリカードです。
計算能力はFunction Computeによって自動的に割り当てられ、手動で割り当てる必要はありません。
有効な値: [vGPU memory (GB)/2] の値に0.05されます。
注: 値は0.05の倍数でなければなりません。 詳細については、「GPU仕様」をご参照ください。
有効な値: [vGPU memory (GB) x 2048] の値に128されます。
注: 値は64の倍数でなければなりません。 詳細については、「GPU仕様」をご参照ください。
Y
Y
Y
fc.gpu.ampere.1
24
125
30
有効な値: 1024〜24576 (1 GB〜24 GB) 。
注: 値は1,024の倍数でなければなりません。
この値は、次の式に基づいて計算されます。vGPU computing power = vGPU memory (GB)/24。 たとえば、vGPUメモリを5 GBに設定した場合、vGPUの最大計算能力は5/24メモリカードです。
計算能力はFunction Computeによって自動的に割り当てられ、手動で割り当てる必要はありません。
有効な値: [vGPU memory (GB)/3] の値に0.05されます。
注: 値は0.05の倍数でなければなりません。 詳細については、「GPU仕様」をご参照ください。
有効値: [(vGPU memory (GB) x 4096)/3] の値に128されます。
注: 値は64の倍数でなければなりません。 詳細については、「GPU仕様」をご参照ください。
Y
Y
Y
fc.gpu.ada.1
48
119
60
49152 (48 GB)
注: 48 GB GPUメモリのみがサポートされています。
デフォルトでは、フルGPUカードのコンピュータパワーが割り当てられます。
計算能力はFunction Computeによって自動的に割り当てられ、手動で割り当てる必要はありません。
有効値: 8。
値の説明: 8 vCPUのみがサポートされています。
有効値: 65536
値の説明: 64 GBメモリのみがサポートされています。
N
Y
Y
Function ComputeのGPU高速化インスタンスは、次のリソース仕様もサポートしています。
画像サイズ (GB)
最大関数実行時間 (秒)
最大ディスクサイズ (GB)
最大帯域幅 (Gbit/s)
Container Registry Enterprise Edition (Standard Edition): 15
Container Registry Enterprise Edition (Advanced Edition): 15
Container Registry Enterprise Edition (Basic Edition): 15
Container Registry Personal Edition (無料): 15
86,400
10
5
説明インスタンスタイプをg1として指定すると、fc.gpu.tesla.1インスタンス仕様を選択するのと同じ効果が得られます。
TeslaシリーズGPUカードのGPU高速化インスタンスは、中国 (杭州) 、中国 (上海) 、中国 (北京) 、中国 (張家口) 、中国 (深セン) 、日本 (東京) 、米国 (バージニア) 、シンガポールの各リージョンでサポートされています。
AmpereシリーズGPUカードのGPU高速化インスタンスは、中国 (杭州) 、中国 (上海) 、日本 (東京) 、シンガポールの各リージョンでサポートされています。
AdaシリーズGPUカードのGPU高速化インスタンスは、中国 (北京) 、中国 (杭州) 、中国 (上海) 、中国 (深セン) の各リージョンでサポートされています。
GPU仕様
追加情報
自動スケーリングルールを設定するときに、アイドルモードを有効にできます。 詳細は、「プロビジョニング済みインスタンスの設定」をご参照ください。
Function Computeの課金方法と課金可能項目の詳細については、「課金の概要」をご参照ください。
APIを呼び出して関数を作成する場合、
instanceType
パラメーターを使用してインスタンスタイプを指定できます。 詳細については、「CreateFunction」をご参照ください。Function Computeコンソールでインスタンスタイプとインスタンス仕様を指定する方法の詳細については、「web関数の作成」をご参照ください。