メニュー
AWS Lambda
開発者ガイド

スケーリング動作について

同時実行数とは、ある時点に関数コードが実行されている件数を指します。同時実行数を見積もることはできますが、Lambda 関数がストリームベースのイベントソースからのイベントを処理しているかによって、同時実行数は異なります。

  • Kinesis または DynamoDB ストリームを処理する Lambda 関数のストリームベースのイベントソース。この場合、各シャードが同時実行の単位です。ストリームに 100 個の実行中シャードがある場合は、最大で 100 個の Lambda 関数呼び出しが同時に実行されています。これは、Lambda が各シャードのイベントを順番に処理するためです。

  • ストリームベースでないイベントソース - ストリームベースでないイベントソースからのイベントを処理する Lambda 関数を作成する場合 (たとえば、Lambda が Amazon S3 や API Gateway などの他のソースからのすべてのイベントを処理できる場合)、発行される各イベントが同時実行の単位です (アカウントの上限まで)。したがって、イベントソースが発行するイベント (またはリクエスト) の数が、同時実行数に影響します。以下の数式を使用して、Lambda 関数の同時呼び出し数を見積もることができます。

    events (or requests) per second * function duration

    たとえば、Amazon S3 イベントを処理する Lambda 関数について考えてみます。Lambda 関数が平均 3 秒、Amazon S3 が 1 秒あたり 10 個のイベントを発行するとします。したがって、Lambda 関数の同時実行数は 30 です。

リクエスト料金

リクエスト率とは、Lambda 関数が呼び出される率のことです。ストリームベースのサービスを除くすべてのサービスの場合は、リクエスト率はイベントソースがイベントを生成する率です。ストリームベースのサービスの場合は、AWS Lambda は次のようにリクエスト率を計算します。

request rate = number of concurrent executions / function duration

たとえば、5 つのアクティブなシャードがストリームにあり (つまり、5 つの Lambda 関数が同時に実行されていて)、Lambda 関数に 2 秒かかる場合、リクエスト率は 2.5 リクエスト/秒です。

スケーリング

AWS Lambda は、アカウントの「アカウントレベルの同時実行数の制限」に従って、トラフィックの増加に応じて容量を動的にスケールします。任意のトラフィックのバーストを処理するために、Lambda はそれが実行されるリージョンに応じてあらかじめ決められた量で同時実行関数を即時に増やします。

次の表に示すように、デフォルト値の [Immediate Concurrency Increase] がトラフィックの急増に対応するために十分ではない場合、Lambda は関数の同時実行数を 1 分あたり 500 ずつ、アカウントの安全制限に到達するか、関数の同時実行数が増加した負荷を正常に処理するのに十分な数になるまで増やし続けます。

注記

Lambda は Amazon EC2 に依存して VPC 対応の Lambda 関数の Elastic Network Interface を提供するため、これらの関数にもスケーリングの際に Amazon EC2 のレート制限が適用されます。Amazon EC2 のレート制限により、VPC 対応の関数では 1 分間に 500 件を超える同時呼び出しを追加できないため、前のセクションの「同時実行数の制限の引き上げをリクエストするには」の手順に従って制限の引き上げをリクエストしてください。

このレートを超える場合 (同時実行数の引き上げ枠をすぐに使い切るアプリケーションの場合) は、アプリケーションでクライアント側の再試行およびバックオフを通じて Amazon EC2 スロットリング (502 EC2ThrottledException) を処理します。詳細については、「AWS でのエラーの再試行とエクスポネンシャルバックオフ」を参照してください。

以下の表には、リージョンごとの即時同時実行増加の概要が記載されています。

リージョン 即時同時実行増加 (関数実行)
アジアパシフィック (東京) 1,000
アジアパシフィック (ソウル) 500
アジアパシフィック (ムンバイ) 500
アジアパシフィック (シンガポール) 500
アジアパシフィック (シドニー) 500
中国 (北京) 500
カナダ (中部) 500
欧州 (フランクフルト) 1,000
欧州 (ロンドン) 500
欧州 (アイルランド) 3000
EU (パリ) 500
AWS GovCloud (US) 500
米国東部 (オハイオ) 500
米国西部 (北カリフォルニア) 500
米国西部 (オレゴン) 3000
米国東部(バージニア北部) 3000
南米 (サンパウロ) 500
AWS GovCloud (US) 500

関数の同時実行を表示および管理する方法については、「同時実行数の管理」を参照してください。