AWS Lambda
開発者ガイド

AWS Lambda の制限

Lambda 関数」に説明されているように、カスタムコードを依存関係ごとパッケージ化し、AWS Lambda にアップロードすると、Lambda 関数を作成したことになります。ただし、たとえばデプロイパッケージのサイズや呼び出しごとに Lambda 関数に割り当てられるメモリの量など、AWS Lambda によって適用される制限があります。加えて:

  • IAM の制限によって Lambda 関数が影響を受ける可能性があります。詳細については、「IAM エンティティおよびオブジェクトの制限」を参照してください。

  • Lambda@Edge を使用している場合は、追加の制限が適用されます。詳細については、Amazon CloudFront 開発者ガイドの「Lambda@Edge の制限」を参照してください。

このセクションでは、このような AWS Lambda の制限について説明します。

AWS Lambda の制限

呼び出しごとの AWS Lambda リソース制限

リソース 制限
メモリの動的な範囲 最小 = 128 MB/ 最大 = 3008 MB (64 MB 単位). 最大メモリ使用量を超えた場合は、関数の呼び出しが終了します。
一時ディスク容量 ("/tmp" スペース) 512 MB
ファイル記述子の数 1,024
プロセスとスレッドの数 (両者の合計) 1,024
リクエストあたりの最大実行時間 300 秒 (5 分)
Invoke リクエストボディのペイロードサイズ (RequestResponse/同期呼び出し) 注: レスポンスボディのペイロードも、この制限に準拠する必要があります。 6 MB
Invoke」リクエストボディのペイロードサイズ (イベント/非同期呼び出し) 128 KB

リージョンごとの AWS Lambda アカウントの制限

リソース デフォルトの制限
同時実行数 (「同時実行数の管理」を参照) 1,000

AWS Lambda は、前に書き留めた同時実行数の制限に従い、トラフィックの増加に応じて容量を動的にスケールします。以下に示すように、任意のトラフィックのバーストを処理するために、AWS Lambda はそれが実行されるリージョンに応じてあらかじめ決められた量で同時実行関数を即時に増やします。

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

注記

デフォルトの即時同時実行増加値がトラフィックの急増に対応するために十分ではない場合、AWS Lambda は関数の同時実行数を 1 分あたり 500 ずつ、アカウントの安全制限に到達するか、関数の同時実行数が増加した負荷を正常に処理するのに十分な数になるまで増やし続けます。詳細については、「スケーリング動作について」を参照してください。

同時実行数の制限の引き上げをリクエストするには:

  1. AWS Support Center ページを開き、必要に応じてサインインし、[Create case] をクリックします。

  2. [Regarding] で [Service Limit Increase] を選択します。

  3. [Limit Type] で [Lambda] を選択し、フォームにある必須フィールドを入力して、希望する連絡方法のページの下部にあるボタンをクリックします。

注記

AWS は、Amazon S3 バケットから関数をトリガーする場合のように、関数が受信イベントレートに一致できるように、ユーザーに代わって同時実行数の制限を自動的に引き上げます。

次の表は、Lambda 関数のデプロイに関するサービス制限を示しています。

AWS Lambda デプロイメントの制限

項目 デフォルトの制限
Lambda 関数デプロイパッケージのサイズ (圧縮 .zip/.jar ファイル) 50 MB
リージョンあたりの、アップロードできるすべてのデプロイパッケージの合計サイズ 75 GB

デプロイパッケージ (非圧縮 .zip/.jar サイズ) に圧縮できるコード/依存関係のサイズ

注記

Lambda 関数ごとに、追加で 500 MB の非永続ディスクスペースがそれぞれの /tmp ディレクトリに用意されます。/tmp ディレクトリは、依存関係ライブラリや関数の初期化中のデータセットなど、その他のリソースのロードに使用できます。

250 MB
環境変数セットの合計サイズ 4 KB

注記

Lambda 関数の圧縮したデプロイパッケージのサイズが 3MB を超える場合は、Lambda コンソールでインラインコードを編集する機能を使用することはできません。ただし、コンソールを使用して Lambda 関数を呼び出すことができます。

AWS Lambda 制限のエラー

前述の制限のテーブルに示されているいずれかの制限を超えた関数は、exceeded limits の例外でエラーとなります。これらの制限は固定されており、現在変更することはできません。たとえば、例外 CodeStorageExceededException、または "Code storage limit exceeded" のようなエラーメッセージを AWS Lambda から受け取った場合は、コードストレージのサイズを減らす必要があります。

コードストレージのサイズを減らすには

  1. 使用しなくなった関数を削除します。

  2. 削除しない関数のコードサイズを減らします。AWS Lambda コンソール、AWS Command Line Interface、または AWS SDK を使用して、Lambda 関数のコードサイズを確認できます。