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