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リソースに対して課金されないため、コストを節約できます。 インスタンスにPreFreezeフックが設定されている場合、PreFreezeフックが実行された後、インスタンスはアイドル状態になります。 それ以外の場合、インスタンスはリクエストの処理を完了するとすぐにアイドル状態になります。 インスタンスの状態の詳細については、「Functionインスタンスのライフサイクル」をご参照ください。
ビジネス要件に基づいて、アイドルモード機能を有効にするかどうかを選択できます。
コスト
プロビジョニングされたインスタンスを使用してコールドスタートを軽減し、コストを節約したい場合は、アイドルモード機能を有効にすることを推奨します。 この機能により、プロビジョニングされたインスタンスがアイドル状態の場合、プロビジョニングされたインスタンスのメモリおよびディスクリソースに対してのみ料金を支払うことができ、コールドスタートなしでリクエストに応答できます。
バックグラウンドタスク
関数がバックグラウンドタスクを実行する必要がある場合は、アイドルモードを有効にしないことをお勧めします。 次の項目は、シナリオの例を示します。
一部のアプリケーションフレームワークは、組み込みのスケジューラまたはバックグラウンド機能に依存しています。 一部の依存ミドルウェアは、定期的にハートビートを報告する必要があります。
一部の非同期操作は、Goを使用するGoroutine軽量スレッド、Node.jsを使用する非同期関数、またはJavaを使用する非同期スレッドを使用して実行されます。
GPU アクセラレーションインスタンス
GPU高速化インスタンスは、インスタンスにGPUが割り当てられているかどうかに基づいて、アクティブインスタンスとアイドルインスタンスに分類されます。 デフォルトでは、GPUアクセラレーションインスタンスのアイドルモードが有効になっています。
アクティブなインスタンス
インスタンスがリクエストを処理している場合、またはアイドルモード機能が無効になっている場合、インスタンスはアクティブと見なされます。 アイドルモードが有効になった後、Function ComputeはプロビジョニングされたインスタンスのGPUをフリーズし、リクエストが送信されない場合、インスタンスはアイドル状態になります。
アイドルインスタンス
アイドルモードが有効になっているプロビジョニング済みインスタンスは、リクエストを処理していないときにアイドル状態になります。
課金方法
アクティブなインスタンス
プロビジョニングされたインスタンスの課金は、プロビジョニングされたインスタンスが作成されたときに開始され、プロビジョニングされたインスタンスがリリースされたときに終了します。 プロビジョニングされたインスタンスは、自分でリクエストおよびリリースされます。 したがって、インスタンスがリリースされておらず、アイドルモードが有効になっていない場合、プロビジョニングされたインスタンスは、リクエストを処理していない場合でも、アクティブモードの料金に基づいて課金されます。
アイドルインスタンス
アイドルモードを有効にすると、プロビジョニングされたインスタンスは、リクエストを処理していないときにアイドル状態になります。 アイドル状態のインスタンスの価格は、アクティブなインスタンスの価格よりもはるかに低くなります。 詳細については、「コンバージョン率」をご参照ください。
インスタンス仕様
エラスティックインスタンス
次の表に、エラスティックインスタンスの仕様を示します。 ビジネス要件に基づいてインスタンス仕様を設定できます。
vCPU
メモリサイズ (MB)
最大コードパッケージサイズ (GB)
最大関数実行時間 (秒)
最大ディスクサイズ (GB)
最大帯域幅 (Gbit/s)
0.05から16。
注: 値は0.05の倍数でなければなりません。
32,768に128。
注: 値は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
有効な値: 1,024〜16,384 (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 2,048] の値に128されます。
注: 値は64の倍数でなければなりません。 詳細については、「GPU仕様」をご参照ください。
Y
Y
Y
fc.gpu.ampere.1
24
125
30
有効な値: 1,024〜24,576 (1 GB〜24 GB)
注: 値は1,024の倍数でなければなりません。
値は次の式に基づいて計算されます: vGPUメモリ (GB)/24。 たとえば、vGPUメモリを5 GBに設定した場合、最大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
49,152 (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コンソールでインスタンスのタイプと仕様を指定する方法の詳細については、「関数の管理」をご参照ください。