すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:ALB イングレスのルーティングルールをカスタマイズ

最終更新日:Mar 27, 2026

ALB イングレスのルーティングルールは、条件と操作で構成されます。条件では、ドメイン名、パス、リクエストヘッダー、クエリ文字列、リクエストメソッド、Cookie、およびソース IP アドレスに基づいてリクエストを照合します。操作では、照合されたリクエストに対して実行する処理を定義します。具体的には、固定応答の返信、リダイレクト、ヘッダーの挿入または削除、トラフィックミラーリング、複数のバックエンドサーバーグループへの転送、およびリクエストの書き換えです。

前提条件

開始する前に、以下の点を確認してください。

  • クラスターに ALB Ingress Controller 2.5.0 以降がインストールされていること。詳細については、「コンポーネントの管理」をご参照ください。

ALB コンソールからカスタムルーティングルールを設定する機能は、カナリアリリース中です。この機能を利用するには、チケットを送信チケットを送信チケットを送信してください。

ルーティング条件

alb.ingress.kubernetes.io/conditions.<service-name> アノテーションを使用してルーティング条件を設定します。<service-name> の値は、Ingress rulesbackend フィールドに指定された Service 名と一致している必要があります。

条件の論理:

  • 1 つのルール内に複数の条件ブロックがある場合: AND(すべてのブロックが一致する必要があります)

  • 1 つの条件ブロック内で複数の値が指定されている場合: OR(いずれかの値が一致すればよい)

重要

1 つのルーティングルールでは、最大 10 個の条件をサポートします。ResponseHeader および ResponseStatusCode の条件タイプは、アウトバウンドルールでのみ使用できます。

以下の表に、利用可能なすべての条件タイプとそのアノテーションテンプレートを示します。

条件type
ドメイン名Host
パスPath
リクエストヘッダーHeader
クエリ文字列QueryString
リクエストメソッドMethod
CookieCookie
ソース IPSourceIp
レスポンスヘッダー(アウトバウンドのみ)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 メソッドを使用するリクエストをルーティングします。サポートされるメソッド: GETPOSTPUTDELETEHEADOPTIONS、および 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 rulesbackend フィールドに指定された Service 名と一致している必要があります。

重要
  • 同じルーティングルール内で、複数の終了操作を組み合わせることはできません。固定応答、リダイレクト、および複数のバックエンドサーバーグループへの転送は相互排他です。

  • 固定応答、リダイレクト、または複数のバックエンドサーバーグループへの転送を使用する場合、servicePort 名を backend フィールドで use-annotation に設定する必要があります。

インバウンドルーティングルール向けの操作

操作説明
固定応答ステータスコード、コンテンツタイプ、およびボディを含む固定内容をクライアントに直接返信します
リダイレクトHTTP 3xx ステータスコードを使用してリクエストをリダイレクトします
リクエストヘッダーの挿入リクエストにヘッダーを挿入または上書きします
リクエストヘッダーの削除リクエストからヘッダーを削除します
トラフィックミラーリングトラフィックを指定されたサーバーグループにコピーします
複数のバックエンドサーバーグループへの転送重みに基づいてサーバーグループ間でリクエストを分散します
書き換えドメイン名、パス、またはクエリ文字列を書き換えます
QPS スロットリングリクエストレートをグローバルまたはクライアント IP 単位で制限します

アウトバウンドルーティングルール向けの操作

操作説明
レスポンスヘッダーの挿入応答にヘッダーを挿入または上書きします
レスポンスヘッダーの削除応答からヘッダーを削除します

操作の例

ステータスコード 503 を伴う固定応答の返信

ACS コンソールを使用

  1. ACS コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。

  2. クラスター ページで、対象のクラスター ID をクリックします。左側のナビゲーションウィンドウで、ネットワークIngress を選択します。

  3. Ingress ページで、Ingress の作成 をクリックし、以下のパラメーターを設定します。

    パラメーター説明
    ゲートウェイタイプALB または MSE Ingress を選択します。ALB
    アプリケーション名Ingress の名前です。ingress
    Ingress クラスIngress のクラスです。alb
    リスナー/ポートAlbConfig で定義されたリスナーのポートおよびプロトコルです。HTTP:80
    ルール+ルールの追加 をクリックして、ドメイン名、パス、照合ルール、サービス、およびポートを設定します。ドメイン名:(空白);パス:/;ルール:プレフィックス;サービス:response-503;ポート:80
    TLS 設定TLS 認証を有効化します。無効
    カスタム転送ルール+ルールの追加 をクリックして、転送条件および操作を追加します。1 つのルールあたり最大 10 個の条件を設定できます。条件:パス(デフォルト);操作:固定応答の返信 — ステータスコード:503、コンテンツタイプ:text/plain、コンテンツ:error
  4. OK をクリックします。

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: 80

FixedResponseConfig のパラメーター:

パラメーター説明
contentTypeレスポンスボディのコンテンツタイプ。有効な値:text/plaintext/csstext/htmlapplication/javascriptapplication/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 ステータスコード(例:301302

リクエストヘッダーの挿入

以下の 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 コンソールを使用

  1. ACS コンソールにログインします。左側のナビゲーションウィンドウで、クラスター をクリックします。

  2. クラスター ページで、対象のクラスター ID をクリックします。左側のナビゲーションウィンドウで、ネットワークIngress を選択します。

  3. Ingress ページで、Ingress の作成 をクリックし、以下のパラメーターを設定します。

    転送先 を操作として選択した場合、ルール セクションのマッピングパラメーターを設定する必要はありません。Flannel コンポーネントを使用するクラスターでは、ClusterIP サービスはサポートされません。
    パラメーター説明
    ゲートウェイタイプALB または MSE Ingress を選択します。ALB
    アプリケーション名Ingress の名前です。forward-ingress
    Ingress クラスIngress のクラスです。alb
    リスナー/ポートリスナーのポートおよびプロトコルです。HTTP:80
    ルール+ルールの追加 をクリックして、ドメイン名、パス、サービス、およびポートを設定します。ドメイン名:demo.domain.ingress.top;パス:/path;ルール:プレフィックス;サービス:forward;ポート:80
    TLS 設定TLS 認証を有効化します。無効
    カスタム転送ルール条件:ドメイン名 = demo.domain.ingress.top。操作:転送先 — サービス:tea-svc、ポート:80、重み:80;2 番目のサービスを追加:coffee-svc、ポート:80、重み:20例の値を参照
  4. 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 が返信されます。