Rate Limiting
概要
Rate Limiting ポリシーは、API に送信されるリクエストのレートを制御するために使用されます。これにより、悪用を防ぎ、トラフィック負荷を効率的に管理し、バックエンドサービスが過剰なリクエストによって圧倒されるのを保護します。このポリシーは、リクエスト制限を管理するためのさまざまな Redis ストレージオプションで構成できます。
Rate Limiting ポリシーを構成することで、API プロバイダーはトラフィックを効果的に管理し、公平なリソース配分を確保し、バックエンドサービスを過剰な負荷から保護できます。
構成の詳細
以下の表は、Rate Limiting ポリシーで利用可能な主要な構成オプションを示しています。
フィールド名 | 説明 | 例の値 |
---|---|---|
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 |