このトピックでは、Application Load Balancer(ALB)インスタンスのリスナーの転送ルールを管理する方法について説明します。 ALB リスナーの転送ルールをカスタマイズして、クライアントリクエストを 1 つ以上のサーバーグループのバックエンドサーバーに転送し、レスポンスをクライアントに転送できます。
概要
各 ALB インスタンスのリスナーごとに複数の転送ルールを作成できます。転送ルールは、インバウンド転送ルールとアウトバウンド転送ルールに分けられます。ベーシック ALB インスタンスは、インバウンド転送ルールのみをサポートしています。スタンダード ALB インスタンスと WAF 対応 ALB インスタンスは、インバウンド転送ルールとアウトバウンド転送ルールをサポートしています。各転送ルールは、条件とアクションで構成されます。リクエストが転送ルールで指定された条件と一致すると、転送ルールで指定されたアクションが実行されます。転送ルールには、1 つ以上の条件と 1 つ以上のアクションを指定できます。
スタンダード ALB インスタンスまたは WAF 対応 ALB インスタンスがリクエストを受信すると、ALB インスタンスは インバウンド転送ルール に基づいてリクエストをバックエンドサーバーに配信します。次に、バックエンドサーバーからのレスポンスは、送信転送ルールALB インスタンスの に基づいて処理され、クライアントに返されます。
インバウンド転送ルールを作成する場合、インバウンドの条件とアクションのみを指定できます。
アウトバウンド転送ルールを作成する場合、インバウンドとアウトバウンドの両方の条件を指定できます。ただし、アウトバウンド転送ルールでは、アウトバウンドのアクションのみを指定できます。
各転送ルールには、転送、リダイレクト、または 固定レスポンスを返す アクションが 1 つずつ含まれている必要があります。これにより、ALB インスタンスはクライアントリクエストを中断することなく転送できます。
説明ベーシック ALB インスタンスは、インバウンド転送ルールのみをサポートしています。スタンダード ALB インスタンスと WAF 対応 ALB インスタンスは、インバウンド転送ルールとアウトバウンド転送ルールをサポートしています。
表 1. ベーシック ALB インスタンスでサポートされている転送ルール
方向
条件
アクション
インバウンド転送ルール
ドメイン名、パス、および HTTP ヘッダー
転送 および リダイレクト
表 2. スタンダードおよび WAF 対応インスタンスでサポートされている転送ルール
方向
条件
アクション
インバウンド転送ルール
ドメイン名、パス、HTTP ヘッダー、クエリ文字列、HTTP リクエストメソッド、Cookie、および 送信元 IP
転送、リダイレクト、固定レスポンスを返す、書き換え、ヘッダーを追加、ヘッダーを削除、トラフィックを調整、トラフィックをミラーリング、および CORS
アウトバウンド転送ルール
インバウンド条件(オプション): ドメイン名、パス、HTTP ヘッダー、クエリ文字列、HTTP リクエストメソッド、Cookie、および 送信元 IP
アウトバウンド条件: レスポンスステータスコード および レスポンスヘッダー
固定レスポンスを返す、ヘッダーを追加、および ヘッダーを削除
一致ポリシー
一致ポリシー: 各クライアントリクエストは、優先順位の高い順に転送ルールと照合されます。ルール番号が小さいほど、優先順位が高くなります。転送ルールが一致すると、すぐにルールに基づいてトラフィックが転送され、一致プロセスは終了します。
カスタムインバウンド転送ルールと一致しないリクエストは、デフォルトの転送ルールに基づいて転送されます。
カスタムアウトバウンド転送ルールと一致しないレスポンスは、ALB によってクライアントに直接返されます。
パスが /*
に設定されている場合、すべてのパスへのリクエストは一致と見なされます。予期しないリクエストを転送する場合は、転送条件のパスを /*
に設定し、転送アクションを「固定レスポンスを返す」に設定し、ステータスコードを 404 または 403 に設定します。転送ルールを構成した後、ルールをルールリストの最後から 2 番目の位置にドラッグアンドドロップします。
転送ルールの優先順位: リクエストは、優先順位の高い順に転送ルールと照合されます。数値が小さいほど、優先順位が高くなります。
デフォルトの転送ルール: リスナーを作成すると、システムは自動的にデフォルトのインバウンド転送ルールを作成します。転送条件は -
に設定されます。これは、すべてのクライアントリクエストが一致と見なされることを示します。転送アクションは 転送 に設定されます。この場合、トラフィックはリスナーに関連付けられているサーバーグループに転送されます。
デフォルトの転送ルールは削除できません。ただし、転送アクションを構成することで、宛先サーバーグループを変更できます。デフォルトの転送ルールの優先順位は最も低く、調整できません。
制限事項
ベーシック ALB インスタンスの転送ルールを作成する場合、条件を ドメイン名、パス、または HTTP ヘッダー に設定し、アクションを 転送 または リダイレクト に設定できます。他の条件とアクションを指定する場合は、ALB インスタンスをスタンダードまたは WAF 対応 ALB インスタンスにアップグレードしてください。詳細については、「ALB インスタンスの構成を変更する」をご参照ください。
ベーシック ALB インスタンス、スタンダード ALB インスタンス、および WAF 対応 ALB インスタンスには、それぞれ異なる 機能 と サービスクォータ があります。
転送ルールには、次の サービスクォータ が適用されます。転送ルールで指定できるアクション、一致条件、およびワイルドカード文字一致ルールの最大数。
前提条件
サーバーグループが作成され、バックエンドサーバーがサーバーグループに追加されていること。詳細については、「サーバーグループを作成および管理する」をご参照ください。
スタンダードまたは WAF 対応 ALB インスタンス が作成され、インスタンスのリスナーが構成されていること。
転送ルールを作成する
リスナーを作成するときに、デフォルトの転送ルールを構成できます。リスナーを作成した後に転送ルールを追加することもできます。
ALB コンソール にログオンします。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、管理するインスタンスの ID をクリックします。
[リスナー] タブをクリックし、管理するリスナーを見つけて、[転送ルールを表示/変更][アクション] 列の をクリックします。
[転送ルール] タブで、[インバウンド転送ルール] または [アウトバウンド転送ルール] を選択し、[新しいルールの追加] をクリックします。
[転送ルールの追加] セクションで、次のパラメーターを設定し、[OK] をクリックします。
説明各条件のアクション間の論理演算子は OR です。1 つの条件に複数のアクションを指定した場合、アクションのいずれかと一致するリクエストが転送されます。
異なる条件間の論理演算子は AND です。転送ルールに複数の条件を指定した場合、すべての条件が満たされるとリクエストが転送されます。
インバウンド転送ルールを作成する
パラメーター
説明
名前
カスタムルールの名前を指定します。名前を入力しない場合、システムによって自動的に名前が生成されます。
転送ルールには 1 つの名前のみを指定できます。
条件
次のいずれかの条件を指定します。 [+ 条件を追加] をクリックして、さらに条件を追加することもできます。
ドメイン名: 1 つ以上のドメイン名を指定します。ドメイン名一致ルールは、3 ~ 128 文字の長さでなければなりません。アスタリスク (*) と疑問符 (?) をワイルドカード文字として使用できます。アスタリスク (*) は文字列にすることができ、疑問符 (?) は単一の文字列のみ可能です。ドメイン名ベースの転送ルールの転送条件として、特定のドメイン名、ワイルドカードドメイン名、または正規表現を指定できます。詳細については、「ドメイン名ベースの転送ルール」をご参照ください。
この例では、
*.example.com
と入力します。パス: 1 つ以上の URL を指定します。URL または正規表現を指定できます。詳細については、「URL ベースの転送ルール」をご参照ください。
たとえば、URL が
www.example.com/test/test1?x=1&y=2
の場合、パラメーターを/test/*
に設定できます。HTTP ヘッダー: [キー] フィールドに HTTP ヘッダーの名前を指定し、[値] フィールドに HTTP ヘッダーの値を指定します。HTTP ヘッダーのキーは 1 ~ 40 文字の長さで、文字、数字、アンダースコア (_)、およびハイフン (-) を使用できます。HTTP ヘッダーの値は 1 ~ 128 文字の長さで、印刷可能な文字を使用できます。スペースで開始または終了することはできません。
たとえば、キーを
user-agent
に設定し、値を*Mozilla/4.0*
に設定できます。クエリ文字列: 1 つ以上のクエリ文字列のキーと値のペアを追加します。キーは 1 ~ 100 文字の長さで、値は 1 ~ 128 文字の長さでなければなりません。クエリ文字列には、小文字、アスタリスク (*)、および疑問符 (?) を含めることができます。スペース文字や次の特殊文字を含めることはできません:
# [ ] { } \ | < > &
。たとえば、URL が
www.example.com/test/test1?x=1&y=2
の場合、クエリ文字列をx:1
またはy:2
に設定できます。HTTP リクエストメソッド: 1 つ以上の HTTP リクエストメソッドを追加します。有効な値: HEAD、GET、POST、OPTIONS、PUT、PATCH、および DELETE。
Cookie: 1 つ以上の Cookie を追加します。キーは 1 ~ 100 文字の長さで、値は 1 ~ 128 文字の長さでなければなりません。Cookie には、小文字、アスタリスク (*)、および疑問符 (?) を含めることができます。スペース文字や次の特殊文字を含めることはできません: [ ] { } < > \ # | &。
たとえば、キーを
key
に設定し、値をvalue
に設定できます。送信元 IP: 1 つ以上の IP アドレスまたは CIDR ブロックを追加します。ゼロアドレス (0.0.0.0/x) はサポートされていません。
例:
192.168.1.1/32
アクション
次のいずれかのアクションを指定します。 [+ アクションを追加] をクリックして、さらにアクションを追加することもできます。
転送: ドロップダウンリストからサーバーグループを選択します。サポートされているサーバーグルーブタイプには、サーバー、IP、および Function Compute タイプが含まれます。複数のサーバーグループを追加し、追加したすべてのサーバーグループに対して セッション維持 機能を有効にすることができます。
説明HTTP をサポートするサーバーグループと HTTPS をサポートするサーバーグループを同時に追加できます。
リダイレクト: [プロトコル] ドロップダウンリストからプロトコルを選択し、[ステータスコード] ドロップダウンリストからステータスコードを選択します。リクエストのリダイレクト先 [ドメイン名]、[ポート]、および [パス] を指定し、[検索] フィールドにクエリ文字列を入力します。 [プロトコル]、[ドメイン名]、[ポート]、[パス]、および [検索] を同時に空にすることはできません。また、パラメーターにデフォルト値を同時に使用することもできません。
説明[リダイレクト] アクションの [パス] を構成する方法の詳細については、「書き換えとリダイレクトのための高度な URL ベースの転送ルール設定」をご参照ください。
${x} を指定した場合、レスポンスで返される値が使用されます。それ以外の場合、各リクエストで指定されたデフォルト値が使用されます。
HTTP ステータスコードの詳細については、「HTTP ステータスコード」をご参照ください。
固定レスポンスを返す: [レスポンスステータスコード] フィールドに HTTP ステータスコードを指定し、[レスポンスコンテンツタイプ] を選択して、[レスポンスコンテンツ] を入力します。レスポンスステータスコードは、2xx、4xx、および 5xx のいずれかの数値文字列である必要があります。文字 x は 0 ~ 9 の数字を示します。
書き換え: [ドメイン名]、[パス]、および [検索] を指定します。パス[書き換え] アクションの URL ベースの高度な転送ルール設定 (リライトおよびリダイレクト) を構成する方法の詳細については、「」をご参照ください。
ヘッダーを追加: 条件と一致するリクエストに追加するヘッダーのキーと値を指定します。新しく追加されたヘッダーは、既存のヘッダーを上書きします。キーは 1 ~ 40 文字の長さで、文字、数字、アンダースコア (_)、およびハイフン (-) を使用できます。値は 1 ~ 128 文字の長さで、印刷可能な文字と文字を使用できます。スペース文字で開始または終了することはできません。
ヘッダーを削除: 削除するヘッダーのキーを指定します。次に、指定されたヘッダーのキーと値の両方が削除されます。
説明インバウンド転送ルールのアクションを [ヘッダーを追加] または [ヘッダーを削除] に設定した場合、次のヘッダーはサポートされません:
slb-id
、slb-ip
、x-forwarded-for
、x-forwarded-proto
、x-forwarded-eip
、x-forwarded-port
、x-forwarded-client-srcport
、x-forwarded-host
、connection
、upgrade
、content-length
、transfer-encoding
、keep-alive
、te
、host
、cookie
、remoteip
、およびauthority
。ヘッダーの大文字と小文字は区別されません。トラフィックを調整: ビジネス要件に基づいて、次のパラメーターを構成します。
QPS(合計): 1 秒あたりの最大クエリ数 (QPS) を指定します。有効な値: 1 ~ 1000000。
QPS(クライアント IP あたり): 送信元クライアント IP アドレスの最大 QPS を指定します。有効な値: 1 ~ 1000000。 [QPS(合計)] と [QPS(クライアント IP あたり)] の両方を設定する場合、QPS(クライアント IP あたり)の値は QPS(合計)の値よりも小さくする必要があります。
説明アクションが [トラフィックを調整] に設定されている場合、宛先サーバーグループの [転送] アクションも指定する必要があります。指定しない場合、構成は有効になりません。
[トラフィックを調整] と [転送] の両方を設定した場合、1 秒あたりのクエリ数 (QPS) がしきい値に達する前に、リクエストは指定されたサーバーグループに転送されます。それ以外の場合、HTTP 503 ステータスコードがクライアントに返されます。
[トラフィックを調整]、[リダイレクト]、および [転送] を設定した場合、QPS がしきい値に達する前に、リクエストは指定されたサーバーグループに転送されます。QPS がしきい値に達すると、リクエストは別のアドレスにリダイレクトされます。
[トラフィックを調整]、[固定レスポンスを返す]、および [転送] を設定した場合、QPS がしきい値に達する前に、リクエストは指定されたサーバーグループに転送されます。QPS がしきい値に達すると、構成したレスポンスがクライアントに返されます。
X-Forwarded-For リクエストヘッダーに複数の IP アドレス(
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …
など)が含まれている場合、左端の IP アドレスがクライアント IP アドレスです。転送ルールの照合条件を 送信元 IP と QPS(クライアント IP あたり) に設定する場合は、リスナーの [クライアント IP を取得] をオンにして、ALB が X-Forwarded-For ヘッダーからクライアント IP アドレスを取得できるようにする必要があります。詳細については、「HTTP リスナーを追加する」および「HTTPS リスナーを追加する」をご参照ください。
トラフィックをミラーリング: ドロップダウンリストからサーバーグループを選択します。 サーバータイプ または IP タイプのサーバーグループを選択できます。
CORS: レスポンスが URL から返され、プロトコル、ドメイン名、またはポートがクライアントからリクエストされたものと異なる場合、オリジン間リソース共有 (CORS) が有効になります。クロスオリジンリクエストは、シンプルリクエストとプリフライトリクエストに分けられます。
信頼できるオリジン: ブラウザを介してクロスリージョンリソースへのアクセスを許可される URL を指定します。
許可されるメソッド: 指定された URL がクロスオリジンリソースへのアクセスに使用できる HTTP メソッドを指定します。有効な値: GET、POST、PUT、DELETE、HEAD、OPTIONS、および PATCH。
信頼できるリクエストヘッダー: ブラウザの組み込みヘッダー以外に、CORS リクエストで伝送できるヘッダーを指定します。
信頼できるレスポンスヘッダー: ブラウザまたは JavaScript で解析できるレスポンスヘッダーを指定します。
信頼できる認証情報: CORS リクエストで認証情報を許可するかどうかを指定します。有効な値: 許可 および 拒否。デフォルト値: 許可。
ブラウザのキャッシュ時間: OPTIONS メソッドを使用するプリフライトリクエストをキャッシュできる最大期間を指定します。単位: 秒。有効な値: -1 ~ 172800。
アウトバウンド転送ルールを作成する
パラメーター
説明
名前
カスタムルールの名前を指定します。名前を入力しない場合、システムによって自動的に名前が生成されます。
転送ルールには 1 つの名前のみを指定できます。
インバウンド条件(オプション)
インバウンド条件を選択します。 [+ インバウンド条件を追加] をクリックして、さらにインバウンド条件を追加できます。インバウンド転送ルールの条件を構成する方法の詳細については、「転送ルールを作成する」をご参照ください。
アウトバウンド条件
アウトバウンド条件を選択します。 [+ アウトバウンド条件を追加] をクリックして、さらにアウトバウンド条件を追加できます。
レスポンスステータスコード: クライアントに返すレスポンスステータスコードを指定します。有効な値: 100 ~ 599。
コード範囲を指定し、複数のコードとコード範囲をカンマ (,) で区切ることができます (200-233,301 など)。
レスポンスヘッダー: レスポンスで伝送される HTTP ヘッダーを指定します。 [キー] フィールドに HTTP ヘッダーの名前を入力し、[値] フィールドに HTTP ヘッダーの値を入力します。複数の HTTP ヘッダーを指定できます。
アクション
アウトバウンドアクションを選択します。 [+ アクションを追加] をクリックして、さらにアウトバウンドアクションを追加できます。
固定レスポンスを返す: [レスポンスステータスコード] フィールドに HTTP ステータスコードを指定し、[レスポンスコンテンツタイプ] を選択して、[レスポンスコンテンツ] を入力します。レスポンスステータスコードは、2xx、4xx、および 5xx のいずれかの数値文字列である必要があります。文字 x は 0 ~ 9 の数字を示します。
ヘッダーを追加: レスポンスに追加するヘッダーの名前と値を指定します。新しく追加されたヘッダーは、既存のヘッダーを上書きします。
ヘッダーを削除: 削除するヘッダーのキーを指定します。次に、指定されたヘッダーのキーと値の両方が削除されます。
説明アウトバウンド転送ルールでは、[ヘッダーを追加] または [ヘッダーを削除] を次のヘッダーキーに設定することはできません:
connection
、upgrade
、content-length
、およびtransfer-encoding
。ヘッダーキーの大文字と小文字は区別されません。
AScript を使用してスクリプトを作成する
[+ 転送ルール適用後にスクリプトを追加] をクリックして、スクリプトを追加できます。詳細については、「手順 2: 転送ルールをカスタマイズするスクリプトを作成する」をご参照ください。
説明スタンダード ALB インスタンスと WAF 対応 ALB インスタンスのみが AScript をサポートしています。ベーシック ALB インスタンスは AScript をサポートしていません。
転送ルールを変更する
ALB コンソール にログオンします。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、管理するインスタンスの ID をクリックします。
[リスナー] タブをクリックし、管理するリスナーを見つけて、[転送ルールを表示/変更][アクション] 列の をクリックします。
[転送ルール] タブで、[インバウンド転送ルール] または [アウトバウンド転送ルール] をクリックし、編集するルールを選択して、右上隅にある [編集] をクリックします。
ルールを変更した後、[保存] をクリックします。
転送ルールの優先順位を変更する
転送ルールは、優先順位の高い順に評価されます。値が小さいほど、優先順位が高くなります。カスタム転送ルールの優先順位はいつでも変更できます。デフォルトの転送ルールの優先順位は変更できません。
ALB コンソール にログオンします。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、管理するインスタンスの ID をクリックします。
[リスナー] タブをクリックし、管理するリスナーを見つけて、[転送ルールを表示/変更][アクション] 列の をクリックします。
[転送ルール] タブで、[インバウンド転送ルール] または [アウトバウンド転送ルール] をクリックし、管理する転送ルールを目的の位置に移動して、[優先順位の変更を保存] をクリックします。
転送ルールを削除する
リスナーのカスタム転送ルールはいつでも削除できます。デフォルトの転送ルールは削除できません。リスナーを削除すると、リスナーのすべての転送ルールが削除されます。
ALB コンソール にログオンします。
上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、管理するインスタンスの ID をクリックします。
[リスナー] タブをクリックし、管理するリスナーを見つけて、[転送ルールを表示/変更][アクション] 列の をクリックします。
[転送ルール] タブで、[インバウンド転ルール] または [アウトバウンド転送ルール] をクリックし、削除するルールを選択して、右上隅にある [削除] をクリックします。
表示されるメッセージで、[OK] をクリックします。
関連情報
ユーザーガイド
転送条件のドメイン名とパスの構成、および書き換えとリダイレクトのための高度な URL ベースの転送ルールの詳細については、「ドメイン名ベースおよび URL パスベースの転送ルールを構成する」をご参照ください。
ALB 転送ルールの一般的なユースケース:
API リファレンス
CreateRule: 転送ルールを作成します。
CreateRules: 転送ルールを一括作成します。
DeleteRule: 転送ルールを削除します。
DeleteRules: 転送ルールを一括削除します。
ListRules: 転送ルールを照会します。
UpdateRuleAttribute: 転送ルールを更新します。
UpdateRulesAttribute: 転送ルールを一括更新します。