暴走した関数呼び出しによる過剰なコストを防ぐため、各 Alibaba Cloud アカウントは、リージョンごとに最大 100 の同時インスタンスに制限されています。Function Compute は、関数レベルのインスタンス制限も提供します。これらの制限により、単一の関数が過剰なインスタンスを消費するのを防ぎ、バックエンドリソースを保護し、予期しないコストを回避するのに役立ちます。
シナリオ
関数の正常な同時実行を保護する。
たとえば、関数 a と関数 b がアカウントレベルのインスタンス制限を共有しているとします。関数 a は保護が必要な重大なビジネス関数です。関数 b が過剰に呼び出される可能性があり、関数 a のリクエストの正常な処理に影響を与える可能性があります。このシナリオでは、関数 b のインスタンス制限を設定できます。この制限により、関数 b が過剰なインスタンスを消費するのを防ぎ、関数 a が十分な数のインスタンスを確保できるようになります。また、関数 a に予約済みの同時実行数を設定して、特定の数のインスタンスが割り当てられることを保証することもできます。
ダウンストリームサービスを保護する。
たとえば、関数が処理能力に制限のある RDS データベースに頻繁にアクセスする必要があるとします。RDS データベースが過負荷になるのを防ぐために、関数のインスタンス制限を設定できます。
異常な関数呼び出しをブロックする。
たとえば、関数の異常な呼び出しを検出した場合、その最大インスタンス数を 0 に設定して、後続のすべての呼び出しをブロックできます。
過剰な関数呼び出しを防ぐ。
たとえば、ブラウザやクライアントでのユーザーの操作は予測不可能です。関数レベルのインスタンス制限を設定して、制御不能な呼び出しを防ぎ、予期しないコストを回避できます。
制限
デフォルトでは、単一の Alibaba Cloud アカウントは、リージョンごとに 100 の同時インスタンスに制限されています。実際の値は Quota Center に表示されます。この制限を引き上げるには、Quota Center でリクエストを送信できます。
単一の関数に設定できるインスタンスの最大数は、リージョンレベルの制限の 90% を超えることはできません。リージョン内のすべての関数のインスタンス制限の合計も、リージョンレベルの制限の 90% を超えることはできません。
たとえば、リージョンレベルの制限が 300 インスタンスの場合、単一の関数に設定できるインスタンスの最大数は 270 です。1 つの関数のインスタンス制限を 100 に設定した場合、他のすべての関数のインスタンス制限の合計は 170 を超えることはできません。
関数のエラスティックインスタンスの最大数を設定する
単一の関数を管理する
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のメニューバーで、リージョンを選択します。[関数リスト] ページで、対象の関数をクリックします。
[Auto Scaling] タブを選択します。[関数クォータ] セクションで、[編集] をクリックします。
[クォータの編集] パネルで、[エラスティックインスタンスクォータ] の値を入力し、[OK] をクリックします。
複数の関数を管理する
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[関数クォータ] ページで、[クォータの作成] をクリックします。[クォータの作成] パネルで、対象の関数を選択し、[エラスティックインスタンスクォータ] の値を入力して、[OK] をクリックします。
GPU 関数のリソースクォータのロック
関数のエラスティックインスタンスの最大数を設定すると、システムはその関数の合計リソースクォータの一部をロックします。これらのロックされたリソースは、その関数でのみ使用できます。たとえば、GPU 関数の GPU カードリソースを考えてみましょう。[エラスティックインスタンスクォータ] を 2 に設定した場合、次の表に、さまざまなシナリオで関数に対してロックされる GPU カードリソースクォータを示します:
GPU カードのシリーズごとの合計クォータの詳細については、「制限」をご参照ください。
シナリオ例 | クォータロックロジック | 実際の設定 | ロックされた関数クォータ |
単一バージョン、単一カードタイプ | エラスティックインスタンスクォータ × インスタンスあたりのカード数 | 単一の Tesla シリーズカード | 2 つの Tesla カードがロック済み |
複数バージョン、同一カードタイプ | 各バージョンについて、 | バージョン 1: 単一の Tesla シリーズカード バージョン 2: 8 枚の Tesla シリーズカード | 16 枚の Tesla カードがロック済み |
複数バージョン、異なるカードタイプ | カードタイプごとに、 | バージョン 1: 単一の Tesla カード バージョン 2: 単一の Ada.1 シリーズカード バージョン 3: 8 枚の Ada.1 シリーズカード | 2 枚の Tesla カード + 16 枚の Ada.1 カードがロック済み |