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 |
