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

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

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

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

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

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

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

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

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

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

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

    • ホストヘッダー – ホストヘッダーを入力します。例: *.example.com

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

    • パス – パスを入力します。例: /item/*

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

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

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

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

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

    • [HTTP ヘッダー] – ヘッダーの名前を入力して、1 つ以上の比較文字列を追加します。

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

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

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

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

    • [送信元 IP] — 送信元の IP アドレスを CIDR 形式で定義します。

      IPv4 CDIR と IPv6 CIDR のどちらも使用できます。ワイルドカードがサポートされていません。

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

  9. ルーティングアクションには、次のいずれかのルーティングアクションを選択し、必要な情報を指定します。

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

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

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

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

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

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

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

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

次の例では、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