AWS Lambda 関数の同時実行数の制限を引き上げて、関数がスロットルされないようにする必要があります。
簡単な説明
Lambda 関数の同時実行数の制限を増やすには、Service Quotas ダッシュボードでクォータ増加のケースを開く必要があります。
詳細については、「Lambda 関数のスケーリング」および「関数の予約同時実行を設定する」を参照してください。
重要: 同時実行数の上限を増加させると、AWS アカウントのコストが増加します。詳細については、「AWS Lambda の料金」を参照してください。同時実行数の制限は、特定の AWS リージョンにあるアカウントのすべての関数で共有されます。
解決策
関数がスロットルされている理由を確認して、ユースケースで同時実行数の制限の引き上げが必要であることを確認する
「Lambda 関数 でスロットリングが発生し、Rate exceeded および 429 TooManyRequestsException エラーになる場合のトラブルシューティング方法を教えてください」の手順に従ってください。
現在の同時実行の使用状況を確認するには、Service Quotas ダッシュボードの同時実行数メトリクスをレビューします。
必要な同時実行数の制限を計算する
**重要:**ユースケースに見合った同時実行数の制限をリクエストしてください。AWS は、有効なユースケースがなく、同時実行数制限が多いリクエストを拒否します。
関数の平均ランタイム時間 (秒) に、関数が 1 秒あたりに受信する平均リクエスト (呼び出し) 数を乗じます。計算結果は、必要な同時実行数の制限となります。
重要: 予約されていない同時実行を使用する場合は、制限が AWS リージョンの同時実行数制限を超えないようにしてください。
必要な同時実行数の制限を計算する際には、次の点に注意してください。
同時実行数制限の計算例
平均関数実行時間 60 秒 x 1 秒あたりの平均リクエスト数 20 個 = 必要な同時実行数の上限 1,200 件
同時実行制限の増加に関連する、すべての Lambda 関数情報を記載する
同時実行数制限の増加リクエストには、次の詳細情報が必要です。
- リクエストする新しい同時実行数の上限
- 関数が 1 秒あたりに受信すると想定する平均リクエスト数
- 関数が 1 秒あたりに受信すると想定する最大リクエスト数
- 想定する実行期間
- 関数のメモリサイズ
- 呼び出しのタイプ (イベントまたはリクエスト応答)
- イベントソース
- クォータの引き上げが必要な理由を説明するロードテストの結果
- ユースケースのサポートに役立つ追加情報
Service Quotas ダッシュボードでクォータ増加のケースを開く
次の手順を実行します。
- Service Quotas ダッシュボードを開きます。
- [クォータの管理] で [AWS Lambda] を選択します。
- [クォータを表示] を選択します。
- [詳細] ページで [アカウントレベルでの増加をリクエスト] を選択します。
- [最近のクォータ増加リクエスト] ペインで [クォータ増加リクエスト] ボタンを選択します。
- [クォータ値の増加] にクォータの増加量を入力します。
- [リクエスト] を選択します。
Lambda 関数のユースケースに関する説明をリクエストに追加する
次の手順を実行します。
- Service Quotas ダッシュボードを開きます。
- ナビゲーションペインでクォータリクエスト履歴を選択します。クォータリクエストのリストが表示されます。
- 該当する、同時実行数の制限増加リクエストを探し、そのクォータ増加リクエストの横にある [ステータス] オプションを選択します。リクエストのステータスおよび、関連するサポートケースのリンクが表示されます。
注:リクエストの初期ステータスは保留中です。ステータスがクォータがリクエストされましたに変わったら、AWS サポートのケース番号が表示されます。
- ケース番号を選択して、リクエストのチケットを開きます。
- チケットのコメントスレッドに、Lambda 関数のユースケースの説明を追加します。
注: AWS サポートから、リクエストの承認または拒否に関するステータス更新メールが届きます。詳細については、クォータの増加リクエストを参照してくださ。
関連情報
Lambda の操作: アプリケーション設計 - スケーリングと同時実行数: パート 2