Application Load Balancer のリスナールールを追加する - エラスティックロードバランシング

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

Application Load Balancer のリスナールールを追加する

リスナーの作成時にデフォルトのルールを定義します。追加のルールはいつでも定義できます。各ルールはアクションと条件を指定する必要があり、オプションで変換を指定できます。詳細については次を参照してください:

Console
ルールを追加するには
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインで、[ロードバランサー] を選択します。

  3. ロードバランサーを選択します。

  4. [リスナーとルール] タブで、[プロトコル:ポート] 列のテキストを選択して、リスナーの詳細ページを開きます。

  5. [ルール] タブで、[ルールを追加する] を選択します。

  6. (オプション) ルールの名前を指定するには、名前とタグを展開し、名前を入力します。タグを追加するには、タグを追加を選択し、タグキーとタグ値を入力します。

  7. 条件ごとに、条件の追加を選択し、条件タイプを選択し、必要な条件値を指定します。

    • ホストヘッダー – 一致パターンタイプを選択し、ホストヘッダーを入力します。

      値マッチング – 最大 128 文字。大文字と小文字は区別されません。使用できる文字は a~z、A~Z、0~9、特殊文字 (-_.)、ワイルドカード (* および ?) です。少なくとも 1 つの「.」文字を含める必要があります。最後の「.」の文字の後はアルファベット文字のみ含めることができます。

      正規表現マッチング – 最大 128 文字。

    • パス – 一致パターンタイプを選択し、パスを入力します。

      値の一致 – 最大 128 文字。大文字と小文字の区別があります。使用できる文字は a~z、A~Z、0~9、特殊文字 (_-.$/~"'@:+;&)、ワイルドカード (* および ?) です。

      正規表現マッチング – 最大 128 文字。

    • クエリ文字列 – キーと値のペア、またはキーのない値を入力します。

      最大 128 文字 大文字と小文字は区別されません。使用できる文字は a~z、A~Z、0~9、特殊文字 (_-.$/~"'@:+&()!,;=)、ワイルドカード (* および ?) です。

    • HTTP リクエストメソッド – HTTP リクエストメソッドを入力します。

      最大 40 文字 大文字と小文字の区別があります。使用できる文字は A~Z および特殊文字 (-_) です。ワイルドカードがサポートされていません。

    • HTTP ヘッダー – 一致パターンタイプを選択し、ヘッダーの名前と比較文字列を入力します。

      • [HTTP ヘッダー名] — ルールによって、このヘッダーを含むリクエストが評価され、値が一致することが確認されます。

        値マッチング – 最大 40 文字。大文字と小文字は区別されません。使用できる文字は a~z、A~Z、0~9、特殊文字 (*?-!#$%&'+.^_`|~) です。ワイルドカードがサポートされていません。

        正規表現マッチング – 最大 128 文字。

      • [HTTP ヘッダー値] — HTTP ヘッダー値と比較する文字列を入力します。

        一致する値 最大 128 文字。大文字と小文字は区別されません。使用できる文字は a~z、A~Z、0~9; スペースです。特殊文字は !"#$%&'()+,./:;<=>@[]^_`{|}~-; およびワイルドカード (* と ?) です。

        正規表現マッチング – 最大 128 文字。

    • [送信元 IP] — 送信元の IP アドレスを CIDR 形式で定義します。IPv4 CDIR と IPv6 CIDR のどちらも使用できます。ワイルドカードがサポートされていません。

  8. (オプション) 変換を追加するには、変換の追加を選択し、変換タイプを選択し、一致する正規表現と置換文字列を入力します。

  9. (オプション) HTTPS リスナーに認証ルールを追加するには、アクションユーザーの認証、ID プロバイダーの選択、必要な情報の提供を選択します。詳細については、「Application Load Balancer を使用してユーザーを認証する」を参照してください。

  10. アクションルーティングアクション で、次のいずれかのルーティングアクションを選択し、必要な情報を入力します。

    • ターゲットグループに転送 – ターゲットグループを選択します。別のターゲットグループを追加するには、「ターゲットグループの追加」を選択し、ターゲットグループを選択し、相対重みを確認し、必要に応じて重みを更新します。いずれかのターゲットグループで維持を有効にした場合は、グループレベルの維持を有効にする必要があります。

    • URL へのリダイレクトURI パートタブで各パートを個別に入力するか、完全な URL タブで完全なアドレスを入力して URL を入力します。ステータスコードでは、必要に応じて一時 (HTTP 302) または永続 (HTTP 301) を選択します。

    • 固定レスポンスを返す – ドロップされたクライアントリクエストに対して返すレスポンスコードを入力します。必要に応じて、コンテンツタイプレスポンス本文を指定できます。

  11. [次へ] を選択します。

  12. Priority には、1~50,000 の値を入力します。ルールは、最小値から最大値までの優先順位で評価されます。

  13. [次へ] を選択します。

  14. [確認して作成] ページで、[作成] をクリックします。

AWS CLI
ルールを追加するには

create-rule コマンドを使用します。

次の例では、forwardアクションとhost-header条件を使用してルールを作成します。

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 10 \ --conditions "Field=host-header,Values=example.com,www.example.com" \ --actions "Type=forward,TargetGroupArn=target-group-arn"

2 つのターゲットグループ間でトラフィックを分散する転送アクションを作成するには、代わりに次の--actionsオプションを使用します。

--actions '[{ "Type":"forward", "ForwardConfig":{ "TargetGroups":[ {"TargetGroupArn":"target-group-1-arn","Weight":50}, {"TargetGroupArn":"target-group-2-arn","Weight":50} ] } }]'

次の例では、fixed-responseアクションとsource-ip条件を使用してルールを作成します。

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 20 \ --conditions '[{"Field":"source-ip","SourceIpConfig":{"Values":["192.168.1.0/24","10.0.0.0/16"]}}]' \ --actions "Type=fixed-response,FixedResponseConfig={StatusCode=403,ContentType=text/plain,MessageBody='Access denied'}"

次の例では、 redirectアクションと http-header条件を使用してルールを作成します。

aws elbv2 create-rule \ --listener-arn listener-arn \ --priority 30 \ --conditions '[{"Field":"http-header","HttpHeaderConfig":{"HttpHeaderName":"User-Agent","Values":["*Mobile*","*Android*","*iPhone*"]}}]' \ --actions "Type=redirect,RedirectConfig={Host=m.example.com,StatusCode=HTTP_302}"
CloudFormation
ルールを追加するには

AWS::ElasticLoadBalancingV2::ListenerRule タイプのリソースを定義します。

次の例では、forwardアクションとhost-header条件を使用してルールを作成します。条件が満たされると、ルールは指定されたターゲットグループにトラフィックを送信します。

Resources: myForwardListenerRule: Type: 'AWS::ElasticLoadBalancingV2::ListenerRule' Properties: ListenerArn: !Ref myListener Priority: 10 Conditions: - Field: host-header Values: - example.com - www.example.com Actions: - Type: forward TargetGroupArn: !Ref myTargetGroup

または、条件が満たされたときに 2 つのターゲットグループ間でトラフィックを分散する転送アクションを作成するには、Actions次のように を定義します。

Actions: - Type: forward ForwardConfig: TargetGroups: - TargetGroupArn: !Ref TargetGroup1 Weight: 50 - TargetGroupArn: !Ref TargetGroup2 Weight: 50

次の例では、fixed-responseアクションとsource-ip条件を使用してルールを作成します。

Resources: myFixedResponseListenerRule: Type: 'AWS::ElasticLoadBalancingV2::ListenerRule' Properties: ListenerArn: !Ref myListener Priority: 20 Conditions: - Field: source-ip SourceIpConfig: Values: - 192.168.1.0/24 - 10.0.0.0/16 Actions: - Type: fixed-response FixedResponseConfig: StatusCode: 403 ContentType: text/plain MessageBody: "Access denied"

次の例では、 redirectアクションと http-header条件を使用してルールを作成します。

Resources: myRedirectListenerRule: Type: 'AWS::ElasticLoadBalancingV2::ListenerRule' Properties: ListenerArn: !Ref myListener Priority: 30 Conditions: - Field: http-header HttpHeaderConfig: HttpHeaderName: User-Agent Values: - "*Mobile*" - "*Android*" - "*iPhone*" Actions: - Type: redirect RedirectConfig: Host: m.example.com StatusCode: HTTP_302