リスナールールの条件タイプ - エラスティックロードバランシング

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

リスナールールの条件タイプ

条件は、リスナールールを有効にするために受信リクエストが満たす必要がある基準を定義します。リクエストがルールの条件に一致する場合、リクエストはルールのアクションで指定されたとおりに処理されます。ルールのアクションごとにタイプと設定情報があります。Application Load Balancer は、リスナールールに対して次の条件タイプをサポートしています。

条件タイプ
host-header

各リクエストのホスト名に基づいたルーティング。詳細については、「ホストの条件」を参照してください。

http-header

各リクエストの HTTP ヘッダーに基づいたルーティング。詳細については、「HTTP ヘッダー条件」を参照してください。

http-request-method

各リクエストの HTTP リクエストメソッドに基づいたルーティング。詳細については、「HTTP リクエストメソッド条件」を参照してください。

path-pattern

リクエスト URL のパスパターンに基づいたルーティング。詳細については、「パスの条件」を参照してください。

query-string

キーと値のペアまたはクエリストリングの値に基づいたルーティング。詳細については、「クエリ文字列の条件」を参照してください。

source-ip

各リクエストの送信元 IP アドレスに基づいたルーティング。詳細については、「送信元 IP アドレス条件」を参照してください。

条件の基本
  • 各ルールには、オプションで次の各条件を 1 つ含めることができます。host-headerhttp-request-methodpath-pattern、および source-ip。各ルールには、オプションで次の各条件を 1 つ以上含めることもできます。http-header および query-string

  • 1 つの条件につき最大 3 つの一致評価を指定できます。たとえば、各 http-header 条件に対して、リクエスト内の HTTP ヘッダーの値と比較する最大 3 つの文字列を指定できます。いずれかのストリングが HTTP ヘッダーの値と一致すれば、条件は満たされます。すべての文字列が一致することを要求するには、一致評価ごとに 1 つの条件を作成します。

  • 1 つのルールにつき最大 5 つの一致評価を指定できます。すべての文字列が一致であることを要求するには、一致評価ごとに1つの条件を作成します。

  • http-headerhost-headerpath-patternquery-string 条件に対する一致評価にワイルドカード文字を含めることができます。1 ルールあたりのワイルドカード文字は 5 つまでです。

  • ルールは表示可能な ASCII 文字にのみ適用されます。制御文字 (0x00 ~ 0x1f および 0x7f) は除外されます。

デモ

デモについては、「Advanced Request Routing」を参照してください。

HTTP ヘッダー条件

HTTP ヘッダー条件を使用して、リクエストの HTTP ヘッダーに基づいてリクエストをルーティングするルールを設定できます。標準またはカスタムの HTTP ヘッダーフィールドの名前を指定できます。ヘッダー名と一致評価では大文字と小文字は区別されません。次のワイルドカード文字は比較文字列でサポートされています。* (0 個以上の文字と一致) および ? (厳密に 1 文字と一致) ワイルドカード文字はヘッダー名ではサポートされていません。

Application Load Balancer 属性routing.http.drop_invalid_header_fieldsを有効にすると、正規表現 () に準拠しないヘッダー名が削除されますA-Z,a-z,0-9。正規表現に準拠しないヘッダー名を追加することもできます。

例 の HTTP ヘッダー条件の例 AWS CLI

ルールの作成時、または変更時に条件を指定できます。詳細については、create-rule および modify-rule コマンドを参照してください。以下の条件は、指定された文字列の 1 つに一致するユーザーエージェントヘッダーを使用するリクエストによって満たされます。

[ { "Field": "http-header", "HttpHeaderConfig": { "HttpHeaderName": "User-Agent", "Values": ["*Chrome*", "*Safari*"] } } ]

HTTP リクエストメソッド条件

HTTP リクエストメソッド条件を使用して、リクエストの HTTP リクエストメソッドに基づいてリクエストをルーティングするルールを設定できます。標準またはカスタムの HTTP メソッドを指定できます。一致評価は大文字と小文字を区別します。ワイルドカード文字はサポートされていません。したがって、メソッド名は厳密な一致である必要があります。

HEAD リクエストに対する応答はキャッシュされる可能性があるため、GET リクエストと HEAD リクエストを同じ方法でルーティングすることをお勧めします。

例 の HTTP メソッド条件の例 AWS CLI

ルールの作成時、または変更時に条件を指定できます。詳細については、create-rule および modify-rule コマンドを参照してください。以下の条件は、指定されたメソッドを使用するリクエストによって満たされます。

[ { "Field": "http-request-method", "HttpRequestMethodConfig": { "Values": ["CUSTOM-METHOD"] } } ]

ホストの条件

ホストの条件を使用して、ホストヘッダーのホスト名に基づいてリクエストをルーティングする (ホストベースのルーティングとも呼ばれます) ルールを定義できます。これにより、1 つのロードバランサーを使用して複数のサブドメインおよび異なるトップレベルドメインをサポートできます。

ホスト名では大文字と小文字が区別されず、最大 128 文字までの次の文字を含めることができます。

  • A~Z、a~z、0~9

  • - .

  • * (0 個以上の文字と一致します)

  • ? (厳密に 1 個の文字と一致します)

少なくとも 1 つの「.」文字を含める必要があります。最後の「.」の文字の後はアルファベット文字のみ含めることができます。

ホスト名の例
  • example.com

  • test.example.com

  • *.example.com

ルール *.example.com は、test.example.com には一致しますが、example.com には一致しません。

例 のホストヘッダー条件の例 AWS CLI

ルールの作成時、または変更時に条件を指定できます。詳細については、create-rule および modify-rule コマンドを参照してください。以下の条件は、指定された文字列に一致するホストヘッダーを使用するリクエストによって満たされます。

[ { "Field": "host-header", "HostHeaderConfig": { "Values": ["*.example.com"] } } ]

パスの条件

パスの条件を使用して、リクエスト内の URL に基づいてリクエストをルーティングするルールを定義できます (パスベースのルーティングとも呼ばれます)。

パスパターンは URL のパスにのみ適用され、クエリパラメータには適用されません。表示可能な ASCII 文字にのみ適用されます。制御文字 (0x00 ~ 0x1f および 0x7f) は除外されます。

このルール評価は URI 正規化が発生した後にのみ実行されます。

パスパターンでは大文字と小文字が区別され、最大 128 文字までの次の文字を含めることができます。

  • A~Z、a~z、0~9

  • _ - . $ / ~ " ' @ : +

  • & (& を使用)

  • * (0 個以上の文字と一致します)

  • ? (厳密に 1 個の文字と一致します)

プロトコルバージョンが grPC の場合は、パッケージ、サービス、またはメソッドに固有の条件を指定できます。

HTTP パスパターンの例
  • /img/*

  • /img/*/pics

grPC パスパターンの例
  • /package

  • /package.service

  • /package.service/method

パスパターンはリクエストのルーティングに使用されますが、変更はしません。例えば、ルールにパスパターン /img/* がある場合、ルールは /img/picture.jpg のリクエストを /img/picture.jpg のリクエストとして、指定されたターゲットグループに転送します。

例 のパスパターン条件の例 AWS CLI

ルールの作成時、または変更時に条件を指定できます。詳細については、create-rule および modify-rule コマンドを参照してください。以下の条件は、指定された文字列を含む URL を使用するリクエストによって満たされます。

[ { "Field": "path-pattern", "PathPatternConfig": { "Values": ["/img/*"] } } ]

クエリ文字列の条件

クエリ文字列の条件を使用して、キー/値のペアまたはクエリ文字列内の値に基づいてリクエストをルーティングするルールを設定できます。一致評価では大文字と小文字は区別されません。次のワイルドカード文字はサポートされています。* (0 個以上の文字と一致) および ? (厳密に 1 文字と一致)

例 のクエリ文字列条件の例 AWS CLI

ルールの作成時、または変更時に条件を指定できます。詳細については、create-rule および modify-rule コマンドを参照してください。次の条件は、「version = v1」のキー/値ペア、または「example」に設定されたキーのいずれかを含むクエリ文字列を使用するリクエストによって満たされます。

[ { "Field": "query-string", "QueryStringConfig": { "Values": [ { "Key": "version", "Value": "v1" }, { "Value": "*example*" } ] } } ]

送信元 IP アドレス条件

送信元 IP アドレス条件を使用して、リクエストの送信元 IP アドレスに基づいてリクエストをルーティングするルールを設定できます。IP アドレスは CIDR 形式で指定する必要があります。IPv4 と IPv6 の両方のアドレスを使用できます。ワイルドカード文字はサポートされていません。送信元 IP ルール条件に 255.255.255.255/32 CIDR を指定することはできません。

クライアントがプロキシの背後にある場合、これはクライアントの IP アドレスではなくプロキシの IP アドレスです。

この条件は、X-Forwarded-For ヘッダーのアドレスでは満たされません。X-Forwarded-For ヘッダー内のアドレスを検索するにhttp-header 条件を使用します。

例 のソース IP 条件の例 AWS CLI

ルールの作成時、または変更時に条件を指定できます。詳細については、create-rule および modify-rule コマンドを参照してください。次の条件は、指定された CIDR ブロックの 1 つの送信元 IP アドレスを使用するリクエストによって満たされます。

[ { "Field": "source-ip", "SourceIpConfig": { "Values": ["192.0.2.0/24", "198.51.100.10/32"] } } ]