Application Load Balancer のリスナールール
リスナーに対して定義したルールは、ロードバランサーが 1 つ以上のターゲットグループ内のターゲットにリクエストをルーティングする方法を決定します。
各ルールは優先度、1 つ以上のアクション、および 1 つ以上の条件で構成されています。詳細については、「リスナールール」を参照してください。
コンソールには、ルールが優先度順に表示されます。ただし、コンソールには各ルールのシーケンス番号が表示され、AWS CLI または Elastic Load Balancing API によって表示されるルールの優先順位とは異なる場合があります。
要件
-
各ルールには次のアクションのうち、厳密に 1 つを含む必要があります。
forward
、redirect
、fixed-response
。またはそれは最後に実行されるアクションである必要があります。 -
各ルールには、以下の条件の 0 個または 1 つを含めることができます。
host-header
、http-request-method
、path-pattern
、source-ip
および 0 個以上の以下の条件http-header
、query-string
を含めることができます。 -
条件ごとに最大 3 つの比較文字列、ルールごとに最大 5 つの比較文字列を指定できます。
-
forward
アクションはリクエストをそのターゲットグループにルーティングします。forward
アクションを追加する前に、ターゲットグループを作成し、それにターゲットを追加します。詳細については、「ターゲットグループの作成」を参照してください。
ルールの追加
リスナーを作成するときはデフォルトのルールを定義し、デフォルト以外の追加のルールはいつでも定義できます。
コンソールを使用してルールを追加するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[ロードバランサー] を選択します。
-
ロードバランサーを選択します。
-
[リスナー] タブで、[プロトコル:ポート] 列のテキストを選択して、リスナーの詳細ページを開きます。
-
[ルール] タブで、[ルールの管理] を選択します。
-
メニューバーの [Add rules] アイコン (プラス記号) を選択します。これにより、優先順位でルールを挿入できる場所に、[ルールの挿入] アイコンが追加されます。
-
前の手順で追加した [Insert Rule (ルールの挿入) アイコンのいずれかを選択します。
-
以下のように 1 つ以上の条件を追加します。
-
ホストヘッダー条件を追加するには [条件の追加]、[ホストヘッダー] の順に選択し、ホスト名を入力します (例:
*.example.com
)。条件を保存するには、チェックマークアイコンを選択します。各文字列の最大サイズは 128 文字です。比較では、大文字と小文字は区別されません。次のワイルドカード文字 (* および ?) はサポートされています。
-
パス条件を追加するには [条件の追加]、[パス] の順に選択し、パスパターンを入力します (例:
/img/*
)。条件を保存するには、チェックマークアイコンを選択します。各文字列の最大サイズは 128 文字です。比較では、大文字と小文字を区別します。次のワイルドカード文字 (* および ?) はサポートされています。
-
HTTP ヘッダー条件を追加するには、[Add condition (条件の追加)]、[Http header (Http ヘッダー)] の順に選択します。ヘッダーの名前を入力して、1 つ以上の比較文字列を追加します。条件を保存するには、チェックマークアイコンを選択します。
各ヘッダー名の最大サイズは 40 文字で、ヘッダー名は大文字と小文字が区別されず、ワイルドカードはサポートされていません。各比較文字列の最大サイズは 128 文字で、次のワイルドカード文字 (* と ?) がサポートされています。比較では、大文字と小文字は区別されません。
-
HTTP リクエストメソッド条件を追加するには、[Add condition (条件の追加)]、[Http request method (Http リクエストメソッド)] の順に選択し、1 つ以上のメソッド名を追加します。条件を保存するには、チェックマークアイコンを選択します。
各名前の最大サイズは 40 文字です。ここで使えるのは、A~Z、ハイフン (-)、およびアンダーバー (_) です。比較では、大文字と小文字を区別します。ワイルドカードがサポートされていません。
-
クエリ文字列条件を追加するには、[Add condition (条件の追加)]、[Query string (クエリ文字列)] の順に選択し、1 つ以上のキー/値のペアを追加します。キー/値のペアごとに、キーを省略して値のみを指定できます。条件を保存するには、チェックマークアイコンを選択します。
各文字列の最大サイズは 128 文字です。比較では、大文字と小文字は区別されません。次のワイルドカード文字 (* および ?) はサポートされています。
-
送信元 IP 条件を追加するには、[Add condition (条件の追加)]、[Source IP (送信元 IP)] の順に選択し、1 つ以上の CIDR ブロックを追加します。条件を保存するには、チェックマークアイコンを選択します。
IPv4 と IPv6 の両方のアドレスを使用できます。ワイルドカードがサポートされていません。
-
-
(オプション、HTTPS リスナー) ユーザーを認証するには、[Add action (アクションの追加)]、[Authenticate (認証)] の順に選択し、必要な情報を入力します。アクションを保存するには、チェックマークアイコンを選択します。詳細については、「Application Load Balancer を使用してユーザーを認証する」を参照してください。
-
次のアクションのいずれかを追加します。
-
転送アクションを追加するには、[Add action (アクションの追加)]、[Forward to (転送先)] の順に選択し、1 つ以上のターゲットグループを選択します。複数のターゲットグループを使用する場合は、ターゲットグループごとに重みを選択し、オプションでターゲットグループの維持を有効にします。ターゲットグループの維持を有効にし、複数のターゲットグループが存在する場合は、ターゲットグループでスティッキーセッションも有効にする必要があります。アクションを保存するには、チェックマークアイコンを選択します。詳細については、「転送アクション」を参照してください。
-
リダイレクトアクションを追加するには、[Add action (アクションの追加)]、[Redirect to (リダイレクト先)] の順に選択し、リダイレクト先の URL を指定します。アクションを保存するには、チェックマークアイコンを選択します。詳細については、「リダイレクトアクション」を参照してください。
-
固定レスポンスアクションを追加するには、[Add action (アクションの追加)]、[Return fixed response (固定レスポンスを返す)] の順に選択し、レスポンスコードと (オプション) レスポンスの本文を指定します。アクションを保存するには、チェックマークアイコンを選択します。詳細については、「固定レスポンスアクション」を参照してください。
-
-
[Save] を選択します。
-
(オプション) ルールの順序を変更するには、矢印を使用し、Save (保存)] を選択します。デフォルトのルールは常に [last (最も低い)] 優先度です。
-
この画面をそのままにして、メニューバーの [ロードバランサーに戻る] アイコン (戻るボタン) を選択します。
AWS CLI を使用してルールを追加するには
ルールを作成するには、create-rule コマンドを使用します。ルールに関する情報を確認するには、describe-rules コマンドを使用します。
ルールの編集
ルールのアクションおよび条件はいつでも編集できます。ルールの更新はすぐには反映されないため、ルールの更新後しばらくの間、リクエストは以前のルール設定を使用してルーティングされます。すべての未処理のリクエストが完了します。
コンソールを使用してルールを編集するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[ロードバランサー] を選択します。
-
ロードバランサーを選択します。
-
[リスナー] タブで、[プロトコル:ポート] 列のテキストを選択して、リスナーの詳細ページを開きます。
-
[ルール] タブで、[ルールの管理] を選択します。
-
メニューバーの [Edit rules] アイコン (鉛筆) を選択します。
-
編集するルールについては、[編集ルール] アイコン (鉛筆) を選択します。
-
(オプション) 必要に応じて、条件とアクションを変更します。たとえば、条件またはアクションの編集 (鉛筆アイコン)、条件の追加、HTTPS リスナーのルールへの認証アクションの追加、条件やアクションの削除 (ゴミ箱アイコン) ができます。デフォルトのルールに条件を追加することはできません。
-
[Update (更新)] を選択します。
-
この画面をそのままにして、メニューバーの [ロードバランサーに戻る] アイコン (戻るボタン) を選択します。
AWS CLI を使用してルールを編集するには
modify-rule コマンドを使用します。
ルールの順序変更
ルールは優先順位の低~高順によって評価されます。デフォルトのルールが最後に評価されます。デフォルト以外のルールは、優先順位をいつでも変更できます。デフォルトルールの優先順位は変更できません。
コンソールには、ルールの優先度ではなく、各ルールの相対シーケンス番号が表示されます。コンソールを使用してルールの順序を変更すると、既存のルールの優先度に基づいて新しいルールの優先度が取得されます。ルールの優先度を特定の値に設定するには、AWS CLI または Elastic Load Balancing API を使用します。
コンソールを使用してルールの順序を変更するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[ロードバランサー] を選択します。
-
ロードバランサーを選択します。
-
[リスナー] タブで、[プロトコル:ポート] 列のテキストを選択して、リスナーの詳細ページを開きます。
-
[ルール] タブで、[ルールの管理] を選択します。
-
メニューバーの [Reorder rules] アイコン (矢印) を選択します。
-
ルールの横にあるチェックボックスをオンにしてから、矢印を使ってルールに新しい優先順位を設定します。デフォルトのルールは常に [last (最も低い)] 優先度です。
-
ルールの順序変更を完了したら、[Save] を選択します。
-
この画面をそのままにして、メニューバーの [ロードバランサーに戻る] アイコン (戻るボタン) を選択します。
AWS CLI を使用してルールの優先順位を更新するには
set-rule-priorities コマンドを使用します。
ルールの削除
リスナーのデフォルト以外のルールはいつでも削除できます。リスナーのデフォルトのルールは削除できません。リスナーを削除すると、そのルールはすべて削除されます。
コンソールを使用してルールを削除するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[ロードバランサー] を選択します。
-
ロードバランサーを選択します。
-
[リスナー] タブで、[プロトコル:ポート] 列のテキストを選択して、リスナーの詳細ページを開きます。
-
[ルール] タブで、[ルールの管理] を選択します。
-
メニューバーの [ルールの削除] アイコン (マイナス記号) を選択します。
-
ルールのチェックボックスを選択して、[削除] を選択します。リスナーのデフォルトのルールは削除できません。
-
この画面をそのままにして、メニューバーの [ロードバランサーに戻る] アイコン (戻るボタン) を選択します。
AWS CLI を使用してルールを削除するには
delete-rule コマンドを使用します。