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