Rate Limiting
概要
Rate Limiting ポリシーは、API に送信されるリクエストのレートを制御するために使用されます。これにより、悪用を防ぎ、トラフィック負荷を効率的に管理し、バックエンドサービスが過剰なリクエストによって圧倒されるのを保護します。このポリシーは、リクエスト制限を管理するためのさまざまな Redis ストレージオプションで構成できます。
Rate Limiting ポリシーを構成することにより、API プロバイダーはトラフィックを効果的に管理し、公平なリソース配分を確保し、バックエンドサービスを過剰な負荷から保護できます。
構成の詳細
以下の表は、レート制限ポリシーで利用可能な主要な構成オプションを示しています。
フィールド名 | 説明 | 例の値 |
---|---|---|
Maximum requests per second | API に対して許可される最大リクエスト数を定義します。 | 100 |
Redis timeout (ms) | Redis 操作のタイムアウト値をミリ秒単位で設定します。 | 2000 |
Redis DB Select | レート制限カウンターのための Redis ストレージタイプを選択できます。オプションには APIMRedis、CustomRedis、または RedisCluster が含まれます。 | APIMRedis |
Redis ストレージオプション
システムの要件に応じて、ユーザーは以下の Redis ストレージタイプから選択できます。
- APIMRedis (デフォルト) - システムに組み込まれた Redis インスタンスを使用します。
- CustomRedis - ユーザーが詳細な接続パラメータを指定して独自の Redis インスタンスを構成できるようにします。
- RedisCluster - スケーラビリティとフォールトトレランスのために Redis クラスターセットアップを使用します。
APIMRedis は標準的なユースケースに推奨され、CustomRedis および RedisCluster は専用の Redis 構成が必要な高度なシナリオで使用するべきです。
カスタム Redis 構成フィールド
選択した場合は CustomRedis、次の追加フィールドを設定する必要があります:
フィールド名 | 説明 | 例の値 |
---|---|---|
redisHost | Redisサーバーのホスト名。 | 127.0.0.1 |
redisPort | Redis接続に使用されるポート。 | 6379 |
redisPassword | Redis認証のためのパスワード(必要な場合)。 | password |
redisDatabase | 使用するRedisデータベースを指定します。 | 1 |
redis_pool_size | プールに保持できるRedis接続の数を定義します。 | 1000 |
redis_pool_backlog | プールが満杯のときにキューに入れられる保留中のリクエストの数を指定します。 | 30 |
Redisクラスタ構成フィールド
選択した場合は RedisCluster、追加フィールドを設定する必要があります:
フィールド名 | 説明 | 例の値 |
---|---|---|
redis_cluster_nodes | Redisクラスタノードのアドレス。 | redis-cluster.apim:6379 |
redis_cluster_password | Redisクラスタにアクセスするためのパスワード(該当する場合)。 | password |
redis_cluster_name | Redisクラスタの名前を定義します。 | kong_redis_cluster |
redis_connect_timeout | Redis接続を確立するためのタイムアウト(ms単位)。 | 1000 |
redis_read_timeout | Redisからの応答を読み取るためのタイムアウト(ms単位)。 | 1000 |
redis_send_timeout | Redisにリクエストを送信するためのタイムアウト(ms単位)。 | 1000 |
redis_pool_size | Redisプールに割り当て可能な最大接続数。 | 1000 |
redis_pool_backlog | プールが満杯の場合に許可されるキューに入れられたリクエストの数。 | 30 |
redis_keepalive_timeout | アイドル接続を維持する時間を定義します(ms単位)。 | 55000 |