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オーソライザなどの仕組みを併用しましょう。