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

Rate Limiting

概要

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

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

構成の詳細

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

フィールド名説明例の値
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