Function Computeは、CPUインスタンスとGPU高速化インスタンスを提供します。 両方のタイプのインスタンスは、オンデマンドモードとプロビジョニングモードで使用できます。 オンデマンドインスタンスは、実際の実行期間に基づいて課金されます。 オンデマンドインスタンスをインスタンス同時実行機能とともに使用して、リソース使用率を向上させることができます。 プロビジョニングされたインスタンスの課金は、Function Computeがプロビジョニングされたインスタンスを開始すると開始され、インスタンスをリリースすると終了します。 プロビジョニングされたインスタンスは、コールドスタートを効果的に軽減できます。 このトピックでは、function Computeの関数インスタンスのタイプ、使用モード、課金方法、および仕様について説明します。
インスタンスタイプ
CPUインスタンス: Function Computeの基本インスタンスタイプ。 CPUインスタンスは、トラフィックスパイクや計算負荷の高いワークロードがあるシナリオに適しています。
GPUアクセラレーションインスタンス: GPUアクセラレーションにTuringアーキテクチャを使用するインスタンス。 GPU高速化インスタンスは、主にオーディオおよびビデオファイル、AIワークロード、画像の処理に使用されます。 このタイプのインスタンスは、負荷をGPUハードウェアにオフロードすることでビジネスを加速します。
さまざまなシナリオでのGPU高速化インスタンスのベストプラクティスの詳細については、以下のトピックを参照してください。
画像処理のベストプラクティス
重要GPU高速化インスタンスは、コンテナイメージを使用してのみデプロイできます。
GPUアクセラレーションインスタンスを使用する場合、DingTalkグループ (グループID: 64970014484) に参加し、テクニカルサポートのために次の情報を提供できます。
会社名などの組織名。
Alibaba CloudアカウントのID。
GPUアクセラレーションインスタンスを使用するリージョン。 例: 中国 (深セン) 。
携帯電話番号、メールアドレス、DingTalkアカウントなどの連絡先情報。
インスタンスモード
CPUインスタンスとGPUアクセラレーションインスタンスは、オンデマンドモードとプロビジョニングモードをサポートしています。 このセクションでは、2つのモードについて説明します。
オンデマンドモード
概要
オンデマンドインスタンスは、Function Computeによって割り当てられ、リリースされます。 Function Computeは、受け取った関数の呼び出し量に応じて、インスタンスの数を自動的に調整します。 呼び出しが増加するとインスタンスが作成され、呼び出しが減少すると余分なインスタンスが削除されます。 つまり、オンデマンドインスタンスの作成はリクエストによってトリガーされます。 一定期間 (通常3〜5分) 処理のためにリクエストが送信されない場合、オンデマンドインスタンスは破棄されます。 初めてオンデマンドインスタンスを呼び出すときは、インスタンスのコールドスタートが完了するまで待つ必要があります。
デフォルトでは、各Alibaba Cloudアカウントはリージョン内で最大100個のインスタンスを実行できます。 クォータセンターコンソールの一般クォータページに表示される実際のクォータが優先されます。 クォータセンターコンソールでクォータ調整を申請することもできます。
課金方法
オンデマンドインスタンスの課金期間は、リクエストが受信されたときに開始され、リクエストが完全に処理されるまで続きます。 各オンデマンドインスタンスは、一度に1つ以上の要求を処理することができる。 詳細については、「インスタンス同時実行の設定」をご参照ください。
処理のためにリクエストが送信されない場合、インスタンスは割り当てられないため、料金は発生しません。 関数が呼び出された場合にのみ課金されます。 料金と課金の詳細については、「課金の概要」をご参照ください。
ビジネス要件に基づいてインスタンス同時実行機能を使用して、リソース使用率を向上させることができます。 このソリューションを使用すると、複数のタスクが1つのインスタンスで同時に実行されるときに、CPUとメモリがプリエンプティブに共有されます。 このようにして、リソース利用が改善される。
インスタンスの同時実行数 = 1
オンデマンドモードでは、リクエストがインスタンスに到着したときに課金期間が開始され、リクエストが完全に処理されたときに終了します。
インスタンスの同時実行数 > 1
この場合、オンデマンドインスタンスの実行期間の測定は、最初の要求が受信されたときに開始され、最後の要求が完全に処理されたときに終了します。 インスタンス同時実行機能はリソースを再利用し、コストを節約します。
プロビジョニング済みモード
概要
プロビジョニングモードでは、関数インスタンスの割り当てとリリースを担当します。 プロビジョニングされたインスタンスは、リリースしない限り保持されます。 呼び出し要求は、プロビジョニングされたインスタンスに優先的に配信されます。 プロビジョニングされたインスタンスがすべてのリクエストを処理するのに十分でない場合、Function Computeは過剰なインスタンスを処理するためにオンデマンドインスタンスを割り当てます。 プロビジョニングされたインスタンスを削除する方法の詳細については、「自動スケーリングルールの設定」をご参照ください。
プロビジョニングされたインスタンスは、コールドスタートの軽減に役立ちます。 ビジネス予算に基づいて、プロビジョニングされたインスタンスの固定数を指定できます。 さらに、サービスのトラフィックパターンに基づいてスケジュールされた自動スケーリングポリシーを構成したり、サービスが個別のトラフィックパターンを示さない場合はしきい値ベースのスケーリングを選択したりできます。 プロビジョニングされたインスタンスを使用すると、コールドスタートの平均レイテンシが大幅に削減されます。
アイドルモード
CPU インスタンス
CPUインスタンスの状態は、vCPUリソースがインスタンスに割り当てられているかどうかに基づいて、アクティブ状態とアイドル状態に分類されます。 デフォルトでは、アイドルモード機能が有効になっています。
アクティブなインスタンス
インスタンスがリクエストを処理している場合、またはアイドルモード機能が無効になっている場合、インスタンスはアクティブと見なされます。 アイドルモード機能を無効にすると、インスタンスがリクエストを処理しているかどうかに関係なく、vCPUがプロビジョニングされたインスタンスに割り当てられます。 このように、インスタンスは常にアクティブであると見なされるため、バックグラウンドタスクの処理を継続できます。
アイドルインスタンス
アイドルモード機能が有効になっているプロビジョニング済みインスタンスは、リクエストを処理していないときにアイドル状態になります。 Function Computeは、リクエストを処理していないインスタンスのvCPUをフリーズします。 アイドル状態のインスタンスには料金が発生せず、コストが節約されます。 インスタンスにPreFreezeフックが設定されている場合、PreFreezeフックが実行された後、インスタンスはアイドル状態になります。 それ以外の場合、インスタンスはリクエストの処理を完了するとすぐにアイドル状態になります。 インスタンスの状態の詳細については、「Functionインスタンスのライフサイクル」をご参照ください。
ビジネス要件に基づいて、アイドルモード機能を有効にするかどうかを選択できます。
コスト
プロビジョニングされたインスタンスを使用してコールドスタートを軽減し、コストを節約したい場合は、アイドルモード機能を有効にすることを推奨します。 この機能はコールドスタートを最小限に抑えるだけでなく、プロビジョニングされたインスタンスがアイドル状態になったときに消費されたメモリとディスクリソースに対してのみ料金を支払うこともできます。
バックグラウンドタスク
関数がバックグラウンドタスクを実行する必要がある場合は、アイドルモード機能を有効にしないことをお勧めします。 次の項目は、シナリオの例を示します。
一部のアプリケーションフレームワークは、組み込みのスケジューラまたはバックグラウンド機能に依存しています。 一部の依存ミドルウェアは、定期的にハートビートを報告する必要があります。
一部の非同期操作は、GoのGoroutine軽量スレッド、Node.jsの非同期関数、またはJavaの非同期スレッドを使用して実行されます。
GPU アクセラレーションインスタンス
GPUアクセラレーションインスタンスの状態は、GPUリソースがインスタンスに割り当てられているかどうかに基づいて、アクティブ状態とアイドル状態に分類されます。 デフォルトでは、アイドルモード機能が有効になっています。
アクティブなインスタンス
インスタンスがリクエストを処理している場合、またはアイドルモード機能が無効になっている場合、インスタンスはアクティブと見なされます。 アイドルモード機能を有効にすると、リクエストを処理していないインスタンスのGPUがフリーズされます。
アイドルインスタンス
アイドルモード機能が有効になっているプロビジョニング済みインスタンスは、リクエストを処理していないときにアイドル状態になります。
課金方法
アクティブなインスタンス
プロビジョニングされたインスタンスの課金は、作成されたときに開始され、リリースされたときに終了します。 プロビジョニングされたインスタンスがリクエストされ、リリースされます。 したがって、あなたがそれらを解放するまで、彼らは料金を負担し続けます。 さらに、アイドルモード機能が有効になっていない場合、料金は常にアクティブなインスタンスの単価に基づいています。
アイドルインスタンス
アイドルモード機能が有効になっている場合、プロビジョニングされたインスタンスは、リクエストを処理していないときにアイドル状態になります。 アイドル状態のインスタンスの価格は、アクティブなインスタンスの価格よりもはるかに低くなります。 詳細については、「コンバージョン率」をご参照ください。
インスタンス仕様
CPU インスタンス
次の表に、CPUインスタンスの仕様を示します。 必要に応じてインスタンスを設定します。
vCPU
メモリサイズ (MB)
最大コードパッケージサイズ (GB)
最大関数実行時間 (秒)
最大ディスクサイズ (GB)
最大帯域幅 (Gbit/s)
16に0.05
注:値は 0.05 の倍数とする必要があります。
32768に128
注:値は 64 の倍数とする必要があります。
10
86400
10
有効な値:
512 4,000 MB です。 デフォルト値です。
10 GBです。
5
説明vCPUとメモリ容量 (GB) の比率は、1:1から1:4でなければなりません。
GPU アクセラレーションインスタンス
次の表に、GPUアクセラレーションインスタンスの仕様を示します。 必要に応じてインスタンスを設定します。
説明fc.gpu.tesla.1 GPU高速化インスタンスは、NVIDIA T4 gpuを使用するインスタンスと同様のパフォーマンスを提供します。
インスタンスタイプ
フル GPU サイズ (GB)
フルGPUのコンピューティング能力 (TFLOPS)
利用可能な仕様
オンデマンドモードがサポートされているかどうか
通常のプロビジョニングモードがサポートされているかどうか
アイドルプロビジョニングモードがサポートされているかどうか
FP16
FP32
vGPU メモリ (MB)
vGPUコンピューティングパワー (GPU)
vCPU
メモリサイズ (MB)
fc.gpu.tesla.1
16
65
8
有効な値:1024 ~ 16384 (1 GB ~ 16 GB)
注: 値は1024の倍数でなければなりません。
この値は、次の式に基づいて計算されます。vGPU計算能力=vGPUメモリ (GB)/16 × フルGPU計算能力。 たとえば、vGPUメモリを5 GBに設定した場合、使用可能な最大vGPU計算能力は5/16 × フルGPU計算能力です。
注: 計算能力はFunction Computeによって自動的に割り当てられます。
有効な値: [vGPU memory (GB単位)/2] の値に0.05されます。
注:値は 0.05 の倍数とする必要があります。 詳細については、「GPU の仕様」をご参照ください。
有効な値: [vGPUメモリ (GB単位) x 2048] の値に128されます。
注:値は 64 の倍数とする必要があります。 詳細については、「GPU の仕様」をご参照ください。
対応
対応
対応
fc.gpu.ada.1
48
119
60
49152 (48 GB)
注: 48 GB vGPUメモリ仕様のみがサポートされています。
デフォルトでは、フルGPUの計算能力が割り当てられます。
注: 計算能力はFunction Computeによって自動的に割り当てられます。
8
注: 8-vCPU仕様のみがサポートされています。
65536 (64 GB)
注: 64 GBメモリ仕様のみがサポートされています。
非対応
対応
対応
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
86400
10
5
説明インスタンスタイプをg1に設定すると、インスタンスタイプをfc.gpu.tesla.1に設定するのと同じ効果が得られます。
TeslaシリーズGPUのGPU高速化インスタンスは、中国 (杭州) 、中国 (上海) 、中国 (北京) 、中国 (張家口) 、中国 (深セン) 、日本 (東京) 、米国 (バージニア) 、シンガポールの各リージョンでサポートされています。
AdaシリーズGPUのGPU高速化インスタンスは、中国 (北京) 、中国 (杭州) 、中国 (上海) 、中国 (深セン) の各リージョンでサポートされています。
GPU仕様
関連ドキュメント
自動スケーリングルールを設定するときに、アイドルモード機能を有効にできます。 詳細については、「自動スケーリングルールの設定」をご参照ください。
Function Computeの課金方法と課金可能項目の詳細については、「課金の概要」をご参照ください。
APIを呼び出して関数を作成する場合、
instanceType
パラメーターを使用してインスタンスタイプを指定できます。 詳細については、「CreateFunction」をご参照ください。Function Computeコンソールでインスタンスのタイプと仕様を指定する方法の詳細については、「関数の管理」をご参照ください。