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

Server Load Balancer:ALB のドメイン名ベースおよび URL パスベースの転送ルールの構成

最終更新日:Apr 23, 2025

このトピックでは、Application Load Balancer(ALB)リスナーのドメイン名ベースおよび URL パスベースの転送ルールの構成方法と、書き換えおよびリダイレクトのための高度な URL パスベースの転送ルールの構成方法について説明します。

ドメイン名ベースの転送ルール

ドメイン名ベースの転送ルールでは、特定のドメイン名、ワイルドカードドメイン名、または正規表現を一致条件として指定できます。転送ルールの作成方法の詳細については、「リスナーの転送ルールの管理」トピックの転送ルールの作成セクションをご参照ください。

一致タイプ

説明

完全一致とワイルドカード一致

  • 一致条件

    • 完全一致:リクエストされたドメイン名は、指定されたドメイン名と同じである必要があります。

    • ワイルドカード一致:リクエストされたドメイン名は、指定されたドメイン名のワイルドカードパターンと一致する必要があります。

  • 要件

    ドメイン名は 3 ~ 128 文字の長さで、英字、数字、および次の特殊文字のみを含めることができます:. - ? = ~ _ + \ ^ * ! $ & | ( ) [ ]。アスタリスク(*)と疑問符(?)をワイルドカード文字として使用できます。

  • リクエストされたドメイン名:www.example.com

    • 完全一致:転送ルールで www.example.com が指定されている場合にのみ、リクエストされたドメイン名が一致します。

    • ワイルドカード一致:転送ルールで *.example.com または www.example.* が指定されている場合、リクエストされたドメイン名が一致します。

正規表現一致

  • 一致条件

    リクエストされたドメイン名は、指定された正規表現と一致する必要があります。

  • 要件

    ドメイン名は 3 ~ 128 文字の長さで、英字、数字、および次の特殊文字のみを含めることができます:. - ? = ~ _ - + \ ^ * ! $ & | ( ) [ ]

  • リクエストされたドメイン名:www.example.com

    大文字と小文字を区別しない正規表現:転送ルールで ^www.example.com$ が指定されている場合、リクエストされたドメイン名が一致します。

URL ベースの転送ルール

URL ベースの転送ルールでは、特定の URL、ワイルドカード URL、または正規表現を一致条件として指定できます。転送ルールの作成方法の詳細については、「リスナーの転送ルールの管理」トピックの転送ルールの作成セクションをご参照ください。

一致タイプ

説明

完全一致とワイルドカード一致

  • 一致条件

    • 完全一致:リクエストされたパスは、指定されたパスと同じである必要があります。

    • ワイルドカード一致:リクエストされたパスは、指定されたパスのワイルドカードパターンと一致する必要があります。

  • 要件

    パスはスラッシュ(/)で始まる必要があり、英字、数字、および次の特殊文字のみを含めることができます:$ - _ . + / & ~ @ :。アスタリスク(*)と疑問符(?)をワイルドカード文字として使用できます。

  • リクエストされたパス:/example/text

    • 完全一致:転送ルールで /example/text が指定されている場合にのみ、リクエストされたパスが一致します。

    • ワイルドカード一致:転送ルールで /example/* が指定されている場合、リクエストされたパスが一致します。

    説明

    ALB のパス一致ルールは、NGINX のルールとは異なります。ALB は最長プレフィックス一致ルールをサポートしていません。

    たとえば、NGINX 用に構成された一般的なパスは location /abc です。パスを一致させるには、最長プレフィックス一致ルールが使用されます。最長プレフィックス一致を実行するために、ALB はワイルドカード文字を使用します。/abc/*ALB で を構成して、最長プレフィックス一致を実行できます。

正規表現一致

  • 一致条件

    リクエストされたパスは、指定された正規表現と一致します。

  • 要件

    正規表現には、英字、数字、および次の特殊文字のみを含めることができます:. - _ / = ? ~ ^ * $ : ( ) [ ] + |

  • リクエストされたパス:/sys/aaa/HOST

    • 大文字と小文字を区別する正規表現:転送ルールで ^/sys/(.*)/HOST$ が指定されている場合、リクエストされたパスが一致します。

    • 大文字と小文字を区別しない正規表現:転送ルールで ^/sys/(.*)/host$ が指定されている場合、リクエストされたパスが一致します。

書き換えおよびリダイレクトのための高度な URL ベースの転送ルール設定

書き換えルールまたはリダイレクトルールで一致条件として正規表現を指定すると、元の URL は正規表現と一致する変数によって上書きされます。転送ルールの作成方法の詳細については、「リスナーの転送ルールの管理」トピックの転送ルールの作成セクションをご参照ください。

説明

URL ベースの転送条件で正規表現を構成する方法の詳細については、このトピックのURL ベースの転送ルールセクションをご参照ください。

  • 使用上の注意

    • 書き換えルールまたはリダイレクトルールで、1 つ以上の正規表現を一致条件として指定し、かっこ ( ) を使用してキャプチャグループとして定義できます。キャプチャグループの数は、書き換えルールまたはリダイレクトルールの変数の数と同じである必要があります。

    • 最大 3 つの変数(${1}${2}${3})を使用して、元の URL を上書きする URL を形成できます。変数を他の文字に置き換えることはできません。

  • 手順

    1. URL の一致:クライアントがリクエストを送信します。リクエストは、転送ルールで指定された正規表現と一致します。

    2. 抽出と置換:キャプチャグループ ( ) からコンテンツを抽出し、${1}${2}${3} に書き込みます。コンテンツは、転送アクションの書き換えパスまたはリダイレクトパスを置き換えるために使用されます。

    3. スプライシング:変数 ${1}${2}${3} を上書きした文字列をスプライシングして、新しい URL を形成します。

    番号

    手順

    1

    転送ルールで転送条件と転送アクションを構成します。

    • 転送条件のパス:/sys/(.*)/(.*)/aaa

    • リクエストが書き換えまたはリダイレクトされるパス:/${1}/${2}

    2

    クライアントリクエストは、転送ルールのパスと一致します。

    • リクエストされたパス:/sys/ccc/bbb/aaa

    • 一致したパス:/sys/(.*)/(.*)/aaa

    3

    システムは正規表現から値を抽出し、変数を値に置き換えます。

    cccbbb は、正規表現の (.*) から抽出され、リクエストが書き換えまたはリダイレクトされるパスの変数 ${1} と ${2} を置き換えます。

    • ${1}ccc に置き換えられます。

    • ${2}bbb に置き換えられます。

    4

    値が連結されて実際のパスが形成されます。

    バックエンドサーバーが受信するパスは /ccc/bbb です。

  • 使用上の注意と手順に基づいて、ALB コンソールで転送ルールを作成できます。

    例 1:書き換えまたは転送アクションの構成

    この例では、sys/ccc/bbb/aaa 宛てのリクエストのパスを /ccc/bbb に書き換え、それに応じてリクエストを転送するように転送ルールが構成されています。次の図は、設定例を示しています。

    示例1

    パラメータ

    説明

    [すべての条件に一致する場合]

    正規表現一致

    • 一致条件

      リクエストされたパスは、指定された正規表現と一致します。

    • 要件

      正規表現には、英字、数字、および次の特殊文字のみを含めることができます:. - _ / = ? ~ ^ * $ : ( ) [ ] + |

    • リクエストされたパス:/sys/ccc/bbb/aaa

      • 大文字と小文字を区別する正規表現:転送ルールで /sys/(.*)/(.*)/aaa が指定されている場合、リクエストされたパスが一致します。

      • 大文字と小文字を区別しない正規表現:転送ルールで /sys/(.*)/(.*)/aaa が指定されている場合、リクエストされたパスが一致します。

    [アクション]

    書き換え

    • [ドメイン名]${host}

    • [パス]/${1}/${2}

    • [検索]${query}

    説明

    [検索] は、URL の疑問符(?)に続く部分に設定します。

    例:URL を www.example.com/test/test1?x=1 に書き換えるには、[検索]x=1 に設定します。

    転送

    ドロップダウンリストからサーバーグループを選択します。

    例 2:リダイレクトアクションの構成

    この例では、もともと sys/ccc/bbb/aaa 宛てのリクエストを /ccc/bbb にリダイレクトするように転送ルールが構成されています。次の図は、設定例を示しています。

    示例2

    パラメータ

    説明

    [すべての条件に一致する場合]

    正規表現一致

    • 一致条件

      リクエストされたパスは、指定された正規表現と一致します。

    • 要件

      正規表現には、英字、数字、および次の特殊文字のみを含めることができます:. - _ / = ? ~ ^ * $ : ( ) [ ] + |

    • リクエストされたパス:/sys/ccc/bbb/aaa

      • 大文字と小文字を区別する正規表現:転送ルールで /sys/(.*)/(.*)/aaa が指定されている場合、リクエストされたパスが一致します。

      • 大文字と小文字を区別しない正規表現:転送ルールで /sys/(.*)/(.*)/aaa が指定されている場合、リクエストされたパスが一致します。

    [アクション]

    リダイレクト

    • [プロトコル]$protocol

    • [ドメイン名]${host}

    • [ポート]${port}

    • [パス]/${1}/${2}

    • [検索]${query}

    • [ステータスコード]301

FAQ

リクエスト URL パスから特定のプレフィックスを削除し、後続のディレクトリに基づいてリクエストを転送するには、転送ルールをどのように構成すればよいですか?

解決策:

www.example.com/api/aaa/bbb/... 宛てのリクエストの URL から /api を削除し、/api に続くディレクトリに基づいてリクエストを転送するように ALB を設定するとします。

転送ルールで、[条件の追加][パス] に設定し、[正規表現マッチング] を選択し、パスを /api/(.*) に設定して、URL パスが /api で始まるすべてのリクエストを一致させます。[アクション][書き換え] または [リダイレクト] に設定し、アクション [パス]/${1} に設定して、元の URL パスの /api に続く部分を使用します。

設定例は次のとおりです。

  • 書き換え

    image

  • リダイレクト

    重定向01

参照

ALB リスナーの他の転送ルールの構成方法の詳細については、リスナーの転送ルールの管理をご参照ください。