レート制限ポリシー
概要
Authleteは、プラットフォームを保護し、また高可用性および高パフォーマンスを維持するために、レート制限を導入しています。このドキュメントでは、ユーザーがアプリケーションを構築する際に滞りなく計画を立てられるよう、当社が実施しているレート制限の種類について説明します。
このドキュメントにおいて定義されるレート制限は、Authlete管理下のデプロイメント(Managed deployments)に特化したものとなります。オンプレミス(Self-Managed)デプロイメントに対しては、他の対処法が用いられる場合もあります。
レート制限の種類
プラットフォームの可用性と安定性を確保するために、様々な種類の制限を使用しています。ただし原則としてAuthlete APIへのすべてのコールに対して、制限が適用されます。制限に達した場合、リクエストがレート制限に引っかかり、実行されないままAuthleteからステータスコード429のレスポンスが返されます。
以下に、適用されるレート制限の種類とその使用場面について説明します。
- 環境レベルの制限 (Environment Limits):
特定の環境において受信されるリクエストの総数が、設定された容量を超えないようにするための固定のグローバル制限です。この制限は、特定容量(例:1500 RPS)の契約に依存する専用環境(Dedicated Cloud)デプロイメントを使用するエンタープライズプランに対して適用され、認可プロセスにおいて使用されるAPIエンドポイント(
/auth/*)を主な対象としています。
専用環境において、設定された容量を頻繁に超えてしまうと、リクエストがレート制限されるだけでなく、SLA(Service Level Agreement)も無効になってしまう可能性があります。
- サービスレベルの制限 (Service Limits):
サービスがAPIリクエストを送信する際に、リクエストの最大数を制御するための制限です。制限は課金プランによって異なり、環境の容量を問わず適用されます。共用環境(Shared Cloud)デプロイメントにおける無料プランおよびビジネスプランに対して実施されます。
- リクエスト送信元の制限 (Requester Limits):
不正アクターに対する第一防衛線となる制限です。リクエスト送信元のIPアドレスおよびAPIキー(あるいはAPIトークン)を基に適用されます。この制限は、共用環境(Shared Cloud)にのみ適用され、通常20 RPSに設定されています。
リクエスト送信元に対する制限は、専用環境に対しても適用することは可能です。ただし専用環境の場合、ほとんどのリクエストが既知のソースから送信されるため、代わりにIPアドレスリストからの接続を制限することが一般的です。
- ユーザー制限 (User Limits):
ユーザーがAuthleteの管理コンソールやその他のWebアプリケーションを使用する際に適用される制限です。制限はユーザーの識別情報に基づいて適用され、すべての環境に対して実施されます。
以下が制限とその使用場面の概要になります。
| 制限の種類 |
キー |
制限値 |
共用環境(Shared) |
専用環境(Dedicated) |
| 環境 |
- |
契約容量 |
❌ |
✅ |
| サービス |
サービスID |
組織またはサービスオーナーのプラン |
✅ |
❌ |
| リクエスト送信元 |
IPアドレス APIキー APIトークン |
20 RPS |
✅ |
❌ |
| ユーザー |
ユーザーID |
5 RPS |
✅ |
✅ |
バーストまたは猶予制限
環境レベルの制限とサービスレベルの制限のどちらに対しても猶予枠が設けられており、厳格なレート制限が実施される前に、バースト(突発的な負担)を吸収するため、一定期間(通常最大3分間)において最大20%のリクエスト数の増加が許可されます。
レート制限枠
共用環境におけるサービスレベルの制限
以下が共用環境においてサービスが属する組織、またはサービスオーナーのプランに基づくレート制限の概要になります。
| Authlete 3.0プラン |
Authlete 2.3プラン |
1サービスあたりのRPS |
| 無料 |
無料 |
5 |
| ビジネス |
プレミアム |
20 |
専用環境の制限
前述の通り、専用環境においては、ユーザー契約によって定められた固定のグローバル制限が設けられています。例えば、100 RPSの容量を持つ専用環境を使用した場合、数分間は120 RPSの猶予制限が実施されます。