メインコンテンツまでスキップ

Rate Limiting

概要

Rate Limiting ポリシーは、API に送信されるリクエストのレートを制御するために使用されます。これにより、悪用を防ぎ、トラフィック負荷を効率的に管理し、バックエンドサービスが過剰なリクエストによって圧倒されるのを保護します。このポリシーは、リクエスト制限を管理するためのさまざまな Redis ストレージオプションで構成できます。

Rate Limiting ポリシーを構成することで、API プロバイダーはトラフィックを効果的に管理し、公平なリソース配分を確保し、バックエンドサービスを過剰な負荷から保護できます。

構成の詳細

以下の表は、Rate Limiting ポリシーで利用可能な主要な構成オプションを示しています。

フィールド名説明例の値
Maximum requests per secondAPI に対して許可される最大リクエスト数を定義します。100
Redis timeout (ms)Redis 操作のタイムアウト値をミリ秒単位で設定します。2000
Redis DB Selectレート制限カウンターのための Redis ストレージタイプを選択できます。オプションには APIMRedis、CustomRedis、または RedisCluster が含まれます。APIMRedis

Rate-Limiting

Redis ストレージオプション

システムの要件に応じて、ユーザーは以下の Redis ストレージタイプから選択できます。

  • APIMRedis (デフォルト) - システムの組み込み Redis インスタンスを使用します。
  • CustomRedis - ユーザーが詳細な接続パラメータを指定して独自の Redis インスタンスを構成できるようにします。
  • RedisCluster - スケーラビリティとフォールトトレランスのために Redis クラスターセットアップを使用します。

APIMRedis は標準的なユースケースに推奨され、CustomRedis および RedisCluster は専用の Redis 構成が必要な高度なシナリオで使用するべきです。

カスタム Redis 構成フィールド

CustomRedis を選択する場合、次の追加フィールドを構成する必要があります。

フィールド名説明例の値
redisHostRedis サーバーのホスト名。127.0.0.1
redisPortRedis 接続に使用されるポート。6379
redisPasswordRedis 認証のためのパスワード (必要な場合)。password
redisDatabase使用する Redis データベースを指定します。1
redis_pool_sizeプールに保持できる Redis 接続の数を定義します。1000
redis_pool_backlogプールが満杯のときにキューに入れられる保留中のリクエストの数を指定します。30

Redis クラスター構成フィールド

RedisCluster を選択する場合、追加のフィールドを設定する必要があります。

フィールド名説明例の値
redis_cluster_nodesRedis クラスター ノードのアドレス。redis-cluster.apim:6379
redis_cluster_passwordRedis クラスターにアクセスするためのパスワード (該当する場合)。password
redis_cluster_nameRedis クラスターの名前を定義します。kong_redis_cluster
redis_connect_timeoutRedis 接続を確立するためのタイムアウト (ms 単位)。1000
redis_read_timeoutRedis からの応答を読み取るためのタイムアウト (ms 単位)。1000
redis_send_timeoutRedis にリクエストを送信するためのタイムアウト (ms 単位)。1000
redis_pool_sizeRedis プールに割り当てることができる最大接続数。1000
redis_pool_backlogプールが満杯のときに許可されるキューに入れられたリクエストの数。30
redis_keepalive_timeoutアイドル接続を維持する時間を定義します (ms 単位)。55000