API Gatewayのスロットリング(流量制御)

API Gatewayのスロットリング(流量制御)

Amazon API Gatewayでは、APIへのリクエスト数を制御する「スロットリング」という仕組みが用意されています。これはトークンバケットアルゴリズムに基づき、リクエストごとにバケットからトークンが消費される方式です。

スロットリングの種類

スロットリングは、サーバー側とクライアント側の両方で制御できます。

1. サーバー側のスロットリング

  • AWSアカウントレベル
    • デフォルトでアカウント全体に定常レート(10,000リクエスト/秒)とバーストレート(5,000リクエスト)が設定されています。
  • ステージまたはメソッドレベル
    • 特定のステージやAPIメソッドごとに、アカウントレベルの上限値内で個別に制御値を上書きできます。

2. クライアントスロットリング

  • メソッドレベル
    • クライアントごとの「使用量プラン」に基づき、メソッド単位でスロットリングが適用されます。
  • ステージレベル
    • クライアントごとの「使用量プラン」に基づき、ステージ単位でスロットリングが適用されます。

制限を超過した場合、API Gatewayは「429 Too Many Requests」エラーを返します。

使用量プランとAPIキー

クライアントごとのスロットリングには「使用量プラン」を利用します。APIキーを発行し、クライアントと使用量プランを紐付けることで、個別の制限や割当が可能です。

  • APIキーは認証・認可の仕組みではありません。
  • 認証や認可が必要な場合は、Lambdaオーソライザなどの仕組みを併用しましょう。
前のページ: API Gatewayの認証・認可の仕組み