ALB イングレスのルーティングルールは、条件と操作で構成されます。条件では、ドメイン名、パス、リクエストヘッダー、クエリ文字列、リクエストメソッド、Cookie、およびソース IP アドレスに基づいてリクエストを照合します。操作では、照合されたリクエストに対して実行する処理を定義します。具体的には、固定応答の返信、リダイレクト、ヘッダーの挿入または削除、トラフィックミラーリング、複数のバックエンドサーバーグループへの転送、およびリクエストの書き換えです。
前提条件
開始する前に、以下の点を確認してください。
クラスターに ALB Ingress Controller 2.5.0 以降がインストールされていること。詳細については、「コンポーネントの管理」をご参照ください。
ALB コンソールからカスタムルーティングルールを設定する機能は、カナリアリリース中です。この機能を利用するには、チケットを送信チケットを送信チケットを送信してください。
ルーティング条件
alb.ingress.kubernetes.io/conditions.<service-name> アノテーションを使用してルーティング条件を設定します。<service-name> の値は、Ingress rules の backend フィールドに指定された Service 名と一致している必要があります。
条件の論理:
1 つのルール内に複数の条件ブロックがある場合: AND(すべてのブロックが一致する必要があります)
1 つの条件ブロック内で複数の値が指定されている場合: OR(いずれかの値が一致すればよい)
1 つのルーティングルールでは、最大 10 個の条件をサポートします。ResponseHeader および ResponseStatusCode の条件タイプは、アウトバウンドルールでのみ使用できます。
以下の表に、利用可能なすべての条件タイプとそのアノテーションテンプレートを示します。
| 条件 | type 値 |
|---|---|
| ドメイン名 | Host |
| パス | Path |
| リクエストヘッダー | Header |
| クエリ文字列 | QueryString |
| リクエストメソッド | Method |
| Cookie | Cookie |
| ソース IP | SourceIp |
| レスポンスヘッダー(アウトバウンドのみ) | ResponseHeader |
| レスポンスステータスコード(アウトバウンドのみ) | ResponseStatusCode |
条件のリファレンス
ドメイン名
特定のドメイン名宛てのリクエストをルーティングします。複数の値を指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.host-example: |
[{
"type": "Host",
"hostConfig": {
"values": [
"anno.example.com"
]
}
}]パス
特定のパス宛てのリクエストをルーティングします。複数の値を指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.path-example: |
[{
"type": "Path",
"pathConfig": {
"values": [
"/pathvalue1",
"/pathvalue2"
]
}
}]リクエストヘッダー
特定のキーと値のペアを含むリクエストをルーティングします。同一キーに対して複数の値を指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.http-header-example: |
[{
"type": "Header",
"headerConfig": {
"key": "headername",
"values": [
"headervalue1",
"headervalue2"
]
}
}]クエリ文字列
特定のクエリ文字列のキーと値のペアを含むリクエストをルーティングします。キーおよび値は 1~100 文字で、小文字、可視文字、*、および ? を含めることができます。スペースおよび # [] {} \ | <> & は許可されていません。複数のペアを指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.query-string-example: |
[{
"type": "QueryString",
"queryStringConfig": {
"values": [
{
"key": "querystringkey1",
"value": "querystringvalue2"
}
]
}
}]リクエストメソッド
特定の HTTP メソッドを使用するリクエストをルーティングします。サポートされるメソッド: GET、POST、PUT、DELETE、HEAD、OPTIONS、および PATCH。複数の値を指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.http-method-example: |
[{
"type": "Method",
"methodConfig": {
"values": [
"GET",
"HEAD"
]
}
}]Cookie
特定の Cookie のキーと値のペアを含むリクエストをルーティングします。キーおよび値は 1~100 文字で、小文字、可視文字、*、および ? を含めることができます。スペースおよび # [] {} \ | <> & は許可されていません。複数のペアを指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.http-cookie-example: |
[{
"type": "Cookie",
"cookieConfig": {
"values": [
{
"key": "cookiekey1",
"value": "cookievalue2"
}
]
}
}]ソース IP
特定のソース IP アドレス範囲からのリクエストをルーティングします。複数の値を指定した場合は OR 論理が適用されます。
1 つのルーティングルールでは、最大 5 件のソース IP アドレスをサポートします。
alb.ingress.kubernetes.io/conditions.source-ip-example: |
[{
"type": "SourceIp",
"sourceIpConfig": {
"values": [
"192.168.0.0/16",
"172.16.0.0/16"
]
}
}]レスポンスヘッダー(アウトバウンドルールのみ)
特定のレスポンスヘッダーを含む応答を照合します。複数の値を指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.response-header-example: |
[{
"type": "ResponseHeader",
"headerConfig": {
"key": "headername",
"values": [
"headervalue1",
"headervalue2"
]
}
}]レスポンスステータスコード(アウトバウンドルールのみ)
特定の HTTP ステータスコードを返す応答を照合します。複数の値を指定した場合は OR 論理が適用されます。
alb.ingress.kubernetes.io/conditions.response-code-example: |
[{
"type": "ResponseStatusCode",
"responseStatusCodeConfig": {
"values": [
"statuscode1",
"statuscode2"
]
}
}]条件の例
ソース IP およびリクエストヘッダーに基づくトラフィックルーティング
以下の Ingress では、次の 3 つの条件すべてが満たされた場合にのみ、リクエストを gray-hello にルーティングします:ソース IP が 192.168.0.0/16 または 172.16.0.0/16 の範囲内であること、gray-hello ヘッダーの値が value1 または value2 であること、およびパスが /hello であること。それ以外のすべてのリクエストは、他のサービスに送信されます。
alb.ingress.kubernetes.io/order は Ingress の優先度を設定します — 数値が小さいほど優先度が高くなります。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/order: "1"
alb.ingress.kubernetes.io/conditions.gray-hello: |
[{
"type": "Header",
"headerConfig": {
"key": "gray-hello",
"values": [
"value1",
"value2"
]
}
},
{
"type": "SourceIp",
"sourceIpConfig": {
"values": [
"192.168.0.0/16",
"172.16.0.0/16"
]
}
}]
name: gray-hello
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /hello
pathType: ImplementationSpecific
backend:
service:
name: gray-hello
port:
number: 88ドメイン名、リクエストメソッド、および Cookie に基づくトラフィックルーティング
以下の Ingress では、すべての条件が一致した場合にのみ、リクエストを service-a にルーティングします:ドメインが www.hostvalue1.edu または www.hostvalue2.edu であること、メソッドが GET または HEAD であること、Cookie cookiekey1 の値が cookievalue1 であること、およびパスが /test であること。その他のリクエストは service-b に送信されます。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/conditions.service-a: |
[{
"type": "Cookie",
"cookieConfig": {
"values": [
{
"key": "cookiekey1",
"value": "cookievalue1"
}
]
}
},
{
"type": "Method",
"methodConfig": {
"values": [
"GET",
"HEAD"
]
}
},
{
"type": "Host",
"hostConfig": {
"values": [
"www.hostvalue1.edu",
"www.hostvalue2.edu"
]
}
}]
name: ingress-example
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /test
pathType: ImplementationSpecific
backend:
service:
name: service-a
port:
number: 88
- path: /test
pathType: ImplementationSpecific
backend:
service:
name: service-b
port:
number: 88クエリ文字列、複数のリクエストヘッダー、および複数のパスに基づくトラフィックルーティング
以下の Ingress では、すべての条件が一致した場合にリクエストを service-a にルーティングします:パスが /pathvalue1、/pathvalue2、または /test であること;クエリ文字列 querystringkey1 の値が querystringvalue2 であること;ヘッダー headerkey1 の値が headervalue1 または headervalue2 であること;およびヘッダー headerkey2 の値が headervalue3 または headervalue4 であること。その他のリクエストは service-b に送信されます。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/conditions.service-a: |
[{
"type": "Path",
"pathConfig": {
"values": [
"/pathvalue1",
"/pathvalue2"
]
}
},
{
"type": "QueryString",
"queryStringConfig": {
"values": [
{
"key": "querystringkey1",
"value": "querystringvalue2"
}
]
}
},
{
"type": "Header",
"headerConfig": {
"key": "headerkey1",
"values": [
"headervalue1",
"headervalue2"
]
}
},
{
"type": "Header",
"headerConfig": {
"key": "headerkey2",
"values": [
"headervalue3",
"headervalue4"
]
}
}]
name: ingress-example
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /test
pathType: ImplementationSpecific
backend:
service:
name: service-a
port:
number: 88
- path: /test
pathType: ImplementationSpecific
backend:
service:
name: service-b
port:
number: 88ルーティング操作
alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用してルーティング操作を設定します。<service-name> の値は、Ingress rules の backend フィールドに指定された Service 名と一致している必要があります。
同じルーティングルール内で、複数の終了操作を組み合わせることはできません。固定応答、リダイレクト、および複数のバックエンドサーバーグループへの転送は相互排他です。
固定応答、リダイレクト、または複数のバックエンドサーバーグループへの転送を使用する場合、
servicePort名をbackendフィールドでuse-annotationに設定する必要があります。
インバウンドルーティングルール向けの操作
| 操作 | 説明 |
|---|---|
| 固定応答 | ステータスコード、コンテンツタイプ、およびボディを含む固定内容をクライアントに直接返信します |
| リダイレクト | HTTP 3xx ステータスコードを使用してリクエストをリダイレクトします |
| リクエストヘッダーの挿入 | リクエストにヘッダーを挿入または上書きします |
| リクエストヘッダーの削除 | リクエストからヘッダーを削除します |
| トラフィックミラーリング | トラフィックを指定されたサーバーグループにコピーします |
| 複数のバックエンドサーバーグループへの転送 | 重みに基づいてサーバーグループ間でリクエストを分散します |
| 書き換え | ドメイン名、パス、またはクエリ文字列を書き換えます |
| QPS スロットリング | リクエストレートをグローバルまたはクライアント IP 単位で制限します |
アウトバウンドルーティングルール向けの操作
| 操作 | 説明 |
|---|---|
| レスポンスヘッダーの挿入 | 応答にヘッダーを挿入または上書きします |
| レスポンスヘッダーの削除 | 応答からヘッダーを削除します |
操作の例
ステータスコード 503 を伴う固定応答の返信
ACS コンソールを使用
ACS コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。
クラスター ページで、対象のクラスター ID をクリックします。左側のナビゲーションウィンドウで、ネットワーク > Ingress を選択します。
Ingress ページで、Ingress の作成 をクリックし、以下のパラメーターを設定します。
パラメーター 説明 例 ゲートウェイタイプ ALB または MSE Ingress を選択します。 ALB アプリケーション名 Ingress の名前です。 ingressIngress クラス Ingress のクラスです。 albリスナー/ポート AlbConfig で定義されたリスナーのポートおよびプロトコルです。 HTTP:80ルール +ルールの追加 をクリックして、ドメイン名、パス、照合ルール、サービス、およびポートを設定します。 ドメイン名:(空白);パス: /;ルール:プレフィックス;サービス:response-503;ポート:80TLS 設定 TLS 認証を有効化します。 無効 カスタム転送ルール +ルールの追加 をクリックして、転送条件および操作を追加します。1 つのルールあたり最大 10 個の条件を設定できます。 条件:パス(デフォルト);操作:固定応答の返信 — ステータスコード: 503、コンテンツタイプ:text/plain、コンテンツ:errorOK をクリックします。
kubectl
以下の Ingress では、/ へのすべてのリクエストに対して、ステータスコード 503 およびボディ 503 error text を返信します。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: default
name: ingress
annotations:
alb.ingress.kubernetes.io/actions.insert-header: |
[{
"type": "InsertHeader",
"InsertHeaderConfig": {
"key": "source",
"value": "alibaba",
"valueType": "UserDefined"
}
}]
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: insert-header
port:
number: 80FixedResponseConfig のパラメーター:
| パラメーター | 説明 |
|---|---|
contentType | レスポンスボディのコンテンツタイプ。有効な値:text/plain、text/css、text/html、application/javascript、application/json |
httpCode | クライアントに返信される HTTP ステータスコード |
content | レスポンスボディのコンテンツ |
301 を使用した HTTPS へのリダイレクト
以下の Ingress では、すべての HTTP リクエストを恒久的なリダイレクト(301)を使用して HTTPS にリダイレクトします。
httpCode を除く少なくとも 1 つのリダイレクトパラメーターの値を、デフォルト値から変更する必要があります。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: default
name: ingress
annotations:
alb.ingress.kubernetes.io/actions.redirect: |
[{
"type": "Redirect",
"RedirectConfig": {
"host": "${host}",
"path": "${path}",
"port": "${port}",
"protocol": "https",
"query": "${query}",
"httpCode": "301"
}
}]
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: redirect
port:
name: use-annotation # リダイレクト操作では、use-annotation を指定する必要がありますRedirectConfig のパラメーター:
| パラメーター | 説明 |
|---|---|
host | リダイレクト先のドメイン名。元の値を保持するには ${host} を使用します。 |
path | リダイレクト先のパス。元の値を保持するには ${path} を使用します。 |
port | リダイレクト先のポート。元の値を保持するには ${port} を使用します。 |
protocol | リダイレクト先のリクエストのプロトコル(例:https)。元の値を保持するには ${protocol} を使用します。 |
query | リダイレクト先のリクエストのクエリ文字列。元の値を保持するには ${query} を使用します。 |
httpCode | リダイレクト用の HTTP ステータスコード(例:301、302) |
リクエストヘッダーの挿入
以下の Ingress では、すべてのリクエストに source: alibaba ヘッダーを挿入し、バックエンドに転送します。既に同名のヘッダーが存在する場合は、上書きされます。
アノテーション内の Service 名は、backend フィールド内の Service 名と一致している必要があります。apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: default
name: ingress
annotations:
alb.ingress.kubernetes.io/actions.insert-header: |
[{
"type": "InsertHeader",
"InsertHeaderConfig": {
"key": "source",
"value": "alibaba",
"valueType": "UserDefined"
}
}]
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: insert-header
port:
number: 80サーバーグループへのトラフィックミラーリング
以下の Ingress では、demo.domain.ingress.top/test に一致するすべてのトラフィックを指定されたサーバーグループにミラーリングします。同時に、元のリクエストは通常通り転送されます。
トラフィックミラーリングは、転送、ヘッダーの挿入、ヘッダーの削除、および QPS スロットリングの操作と組み合わせることができます。書き換え、固定応答、およびリダイレクトの操作とは相互排他です。
ターゲットサーバーグループは、
ServerGroupIDのみで指定します。
サーバーグループ ID を取得するには、Server Load Balancer (SLB) コンソール にログインし、ALB > サーバーグループ を選択して、サーバーグループ ページで ID を確認します。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: traffic-mirror-ingress
annotations:
# アノテーション内の Service 名は、backend フィールド内の Service 名と一致している必要があります。
alb.ingress.kubernetes.io/actions.traffic-mirror: |
[{
"type": "TrafficMirror",
"TrafficMirrorConfig": {
"TargetType": "ForwardGroupMirror",
"MirrorGroupConfig": {
"ServerGroupTuples": [{
"ServerGroupID": "sgp-2auud2fxj1r46*****"
}]
}
}
}]
spec:
ingressClassName: alb
rules:
- host: demo.domain.ingress.top
http:
paths:
- path: /test
pathType: Prefix
backend:
service:
name: traffic-mirror
port:
number: 80複数のバックエンドサーバーグループへのリクエスト転送
重みに基づいて、複数のバックエンドサーバーグループ間でリクエストを分散します。
標準の ALB インスタンスでは、最大 5 つのバックエンドサーバーグループをサポートします。
同一エントリで
ServerGroupIDおよびServiceName/ServicePortの両方が設定されている場合、ServerGroupIDが優先されます。
ACS コンソールを使用
ACS コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。
クラスター ページで、対象のクラスター ID をクリックします。左側のナビゲーションウィンドウで、ネットワーク > Ingress を選択します。
Ingress ページで、Ingress の作成 をクリックし、以下のパラメーターを設定します。
転送先 を操作として選択した場合、ルール セクションのマッピングパラメーターを設定する必要はありません。Flannel コンポーネントを使用するクラスターでは、ClusterIP サービスはサポートされません。
パラメーター 説明 例 ゲートウェイタイプ ALB または MSE Ingress を選択します。 ALB アプリケーション名 Ingress の名前です。 forward-ingressIngress クラス Ingress のクラスです。 albリスナー/ポート リスナーのポートおよびプロトコルです。 HTTP:80ルール +ルールの追加 をクリックして、ドメイン名、パス、サービス、およびポートを設定します。 ドメイン名: demo.domain.ingress.top;パス:/path;ルール:プレフィックス;サービス:forward;ポート:80TLS 設定 TLS 認証を有効化します。 無効 カスタム転送ルール 条件:ドメイン名 = demo.domain.ingress.top。操作:転送先 — サービス:tea-svc、ポート:80、重み:80;2 番目のサービスを追加:coffee-svc、ポート:80、重み:20。例の値を参照 OK をクリックします。
kubectl
以下の Ingress では、demo.domain.ingress.top/path に一致するリクエストを、tea-svc(重み 80)および coffee-svc(重み 20)に分散します。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: forward-ingress
annotations:
# アノテーション内の Service 名は、backend フィールド内の Service 名と一致している必要があります。
alb.ingress.kubernetes.io/actions.forward: |
[{
"type": "ForwardGroup",
"ForwardConfig": {
"ServerGroups": [{
"ServiceName": "tea-svc",
"Weight": 80,
"ServicePort": 80
},
{
"ServiceName": "coffee-svc",
"Weight": 20,
"ServicePort": 80
}]
}
}]
spec:
ingressClassName: alb
rules:
- host: demo.domain.ingress.top
http:
paths:
- path: /path
pathType: Prefix
backend:
service:
name: forward
port:
name: use-annotation # 転送操作では、use-annotation を指定する必要があります既存のサーバーグループを Service 名ではなく ID で参照するには、ServerGroupID および Weight を使用します:
alb.ingress.kubernetes.io/actions.forward: |
[{
"type": "ForwardGroup",
"ForwardConfig": {
"ServerGroups": [{
"ServerGroupID": "sgp-71aexb9y93ypo*****",
"Weight": 80
},
{
"ServerGroupID": "sgp-slygpbvm2cydo*****",
"Weight": 20
}]
}
}]ドメイン名、パス、またはクエリ文字列の書き換え
以下の Ingress では、/path に一致するすべてのリクエストについて、ドメイン名を demo.domain.ingress.top に、パスを /test に、クエリ文字列を querystring に書き換えます。
書き換え操作は、
rewrite-targetアノテーションと競合します。両方を併用しないでください。書き換えは、固定応答およびリダイレクトの操作と組み合わせることはできません。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: default
name: rewrite-ingress
annotations:
alb.ingress.kubernetes.io/actions.rewrite: |
[{
"type": "Rewrite",
"RewriteConfig": {
"Host": "demo.domain.ingress.top",
"Path": "/test",
"Query": "querystring"
}
}]
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /path
pathType: Prefix
backend:
service:
name: rewrite
port:
number: 80書き換えルールの詳細については、「書き換えルールの設定」をご参照ください。
レスポンスヘッダーの値に基づくレスポンスヘッダーの変更
デフォルトでは、カスタムルーティングルールはインバウンドトラフィックに適用されます。ルールをアウトバウンドトラフィック(応答)に適用するには、alb.ingress.kubernetes.io/rule-direction.<service-name> を Response に設定します。
アウトバウンドルーティングルールでは、servicePort 名を backend フィールドで use-annotation に設定する必要があります。
以下の Ingress では、応答に response-hello ヘッダーが含まれており、その値が value1 または value2 の場合に、応答に source: alibaba ヘッダーを挿入します。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/rule-direction.response-header: Response
alb.ingress.kubernetes.io/conditions.response-header: |
[{
"type": "ResponseHeader",
"responseHeaderConfig": {
"key": "response-hello",
"values": [
"value1",
"value2"
]
}
}]
alb.ingress.kubernetes.io/actions.response-header: |
[{
"type": "InsertHeader",
"InsertHeaderConfig": {
"key": "source",
"value": "alibaba",
"valueType": "UserDefined"
}
}]
name: response-header
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: response-header
port:
name: use-annotation # アウトバウンドルーティングルールでは、use-annotation を指定する必要がありますレスポンスステータスコードに基づくレスポンスヘッダーの削除
以下の Ingress では、ステータスコード 200 または 300 を返す応答から response-hello ヘッダーを削除します。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/rule-direction.response-hello: Response
alb.ingress.kubernetes.io/conditions.response-hello: |
[{
"type": "ResponseStatusCode",
"responseStatusCodeConfig": {
"values": [
"200",
"300"
]
}
}]
alb.ingress.kubernetes.io/actions.response-hello: |
[{
"type": "RemoveHeader",
"RemoveHeaderConfig": {
"key": "response-hello"
}
}]
name: response-hello
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: response-hello
port:
name: use-annotation # アウトバウンドルーティングルールでは、use-annotation を指定する必要がありますQPS スロットリングによるリクエストレート制限
グローバルなリクエストレート制限、クライアント IP 単位のレート制限、またはその両方を設定します。QPS スロットリング操作は、転送操作と組み合わせる必要があります。
QPSおよびQPSPerIpの有効な値:1~1,000,000。QPSおよびQPSPerIpの両方が設定されている場合、QPSPerIpの値はQPSより小さくなければなりません。レート制限を超えた場合、ALB インスタンスは新しい接続を拒否し、HTTP 503 を返信します。
QPSPerIp(IP 単位のレート制限)を使用するには、リスナーの詳細ページで「クライアント IP アドレスの取得」オプションを有効化して、ALB インスタンスがX-Forwarded-Forヘッダーを読み取れるようにする必要があります。詳細については、「XForwardedForConfig」をご参照ください。
annotations:
alb.ingress.kubernetes.io/actions.traffic-limit: |
[{
"type": "TrafficLimit",
"TrafficLimitConfig": {
"QPS": "1000",
"QPSPerIp": "100"
}
}]| パラメーター | 説明 |
|---|---|
QPS | グローバルなリクエストレート制限(1 秒あたりのリクエスト数)。制限を超えた場合、新しい接続は拒否され、HTTP 503 が返信されます。 |
QPSPerIp | クライアント IP 単位のリクエストレート制限(1 秒あたりのリクエスト数)。両方が設定されている場合、QPS よりも小さくなければなりません。制限を超えた場合、新しい接続は拒否され、HTTP 503 が返信されます。 |