Network Load Balancer のターゲットとして Application Load Balancer を使用する - Elastic Load Balancing

Network Load Balancer のターゲットとして Application Load Balancer を使用する

1 つの Application Load Balancer を含むターゲットグループをターゲットとして作成し、そのグループにトラフィックを転送するように Network Load Balancer を設定できます。このシナリオでは、トラフィックがターゲットに到達するとすぐに、Application Load Balancer がロードバランシングの決定を引き継ぎます。この設定では、両方のロードバランサーの機能が組み合わされて以下のような利点が生まれます。

  • Application Load Balancer のレイヤー 7 リクエストベースのルーティング機能をエンドポイントサービス (AWS PrivateLink) や静的 IP アドレスなど、Network Load Balancer がサポートする機能と組み合わせて使用できます。

  • この構成は、シグナリングに HTTP を使用するメディアサービスや、コンテンツをストリーミングするための RTP など、マルチプロトコルに 1 つのエンドポイントを必要とするアプリケーションに使用できます。

この機能は、内部またはインターネット向けの Network Load Balancer のターゲットとしての内部またはインターネット向けの Application Load Balancer とともに使用できます。

考慮事項
  • ターゲットグループごとに登録できる Application Load Balancer は 1 つだけです。

  • Application Load Balancer を Network Load Balancer のターゲットとして関連付けるには、ロードバランサーが同じアカウント内の同じ VPC に存在する必要があります。

  • 1 つの Application Load Balancer は、最大 2 つの Network Load Balancer のターゲットとして関連付けることができます。これを行うには、各 Network Load Balancer について、Application Load Balancer を個別のターゲットグループに登録します。

  • Network Load Balancer に登録した各 Application Load Balancer によって、Network Load Balancer ごとにアベイラビリティーゾーンのターゲットの最大数が 50 減少します。両方のロードバランサーのクロスゾーンロードバランシングを無効にして、レイテンシーを最小限に抑え、リージョン内データ転送の料金を回避できます。詳細については、「Network Load Balancer のクォータ」を参照してください。

  • ターゲットグループタイプが alb の場合、ターゲットグループの属性を変更することはできません。これらの属性は常にデフォルト値を使用します。

  • Application Load Balancer をターゲットとして登録すると、すべてのターゲットグループから登録を解除するまで Application Load Balancer を削除することはできません。

  • Network Load Balancer と Application Load Balancer 間の通信は常に IPv4 を使用します。

前提条件

ターゲットとして使用する Application Load Balancer がまだない場合は、ロードバランサー、リスナー、およびそのターゲットグループを作成します。詳細については、「Application Load Balancer ユーザーガイド」の「Application Load Balancer の作成」を参照してください。

ステップ 1: alb タイプのターゲットグループを作成する

ステップ 1: alb タイプのターゲットグループを作成します。Application Load Balancer は、ターゲットグループの作成時以降にターゲットとして登録できます。

Console
ターゲットとして Application Load Balancer のターゲットグループを作成するには
  1. Amazon EC2 コンソールの https://console.aws.amazon.com/ec2/ を開いてください。

  2. ナビゲーションペインの [ロードバランシング] で [ターゲットグループ] を選択します。

  3. [Create target group] を選択します。

  4. [基本設定] ペインの [ターゲットタイプを選択] で、Application Load Balancer を選択します。

  5. [ターゲットグループ名] に、ターゲットグループの名前を入力します。

  6. [Protocol] (プロトコル) では TCP だけが選択できます。ターゲットグループのポートを選択します。このターゲットグループのポートは、Application Load Balancer のリスナーポートと一致する必要があります。このターゲットグループに別のポートを選択した場合は、Application Load Balancer のリスナーポートを更新して一致させることができます。

  7. [VPC] には、ターゲットグループの仮想プライベートクラウド (VPC) を選択します。これは、Application Load Balancer で使用されるのと同じ VPC である必要があります。

  8. [Health checks] (ヘルスチェック) で、[Health check protocol] (ヘルスチェックプロトコル) として [HTTP] または [HTTPS] を選択します。ヘルスチェックは Application Load Balancer に送信され、指定されたポート、プロトコル、および ping パスを使用してターゲットに転送されます。ヘルスチェックのポートとプロトコルに一致するポートとプロトコルがあるリスナーが Application Load Balancer にあり、これらのヘルスチェックを受信できることを確認します。

  9. (オプション) タグ を展開します。追加するタグごとに、[新しいタグを追加] を選択し、タグキーとタグ値を入力します。

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

  11. Application Load Balancer を登録する準備ができたら、[今すぐ登録] を選択し、必要に応じてデフォルトポートを上書きして、Application Load Balancer を選択します。Application Load Balancer には、ターゲットグループと同じポート上のリスナーが必要です。このロードバランサーのリスナーを追加または編集してターゲットグループのポートと一致させるか、前のステップに戻ってターゲットグループのポートを変更することができます。

    Application Load Balancer をターゲットとして登録する準備ができていない場合は、[後で登録] を選択し、後でターゲットを登録します。詳細については、「ターゲットの登録」を参照してください。

  12. [ターゲットグループの作成] を選択します。

AWS CLI
タイプ alb のターゲットグループを作成するには

create-target-group コマンドを使用します。プロトコルは TCP で、ポートは Application Load Balancer のリスナーポートと一致する必要があります。

aws elbv2 create-target-group \ --name my-target-group \ --protocol TCP \ --port 80 \ --target-type alb \ --vpc-id vpc-1234567890abcdef0 \ --tags Key=department,Value=123
CloudFormation
タイプ alb のターゲットグループを作成するには

AWS::ElasticLoadBalancingV2::TargetGroup リソースタイプを定義します。プロトコルは TCP で、ポートは Application Load Balancer のリスナーポートと一致する必要があります。

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: TCP Port: 80 TargetType: alb VpcId: !Ref myVPC Tags: - Key: 'department' Value: '123' Targets: - Id: !Ref myApplicationLoadBalancer Port: 80

ステップ 2: Network Load Balancer を作成し、ルーティングを設定する

Network Load Balancer を作成するときに、Application Load Balancer にトラフィックを転送するようにデフォルトのアクションを設定できます。

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

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

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

  4. [Network Load Balancer] で、[Create] (作成) を選択します。

  5. 基本的な設定

    1. [ロードバランサー名] に、Network Load Balancer の名前を入力します。

    2. [スキーム] で、[インターネット向け] または [内部] を選択します。インターネット向け Network Load Balancer は、クライアントからインターネット経由でリクエストをターゲットにルーティングします。内部 Network Load Balancer は、プライベート IP アドレスを使用してターゲットにリクエストをルーティングします。

    3. [ロードバランサーの IP アドレスタイプ] については、クライアントが Network Load Balancer との通信に IPv4 アドレスを使用する場合は [IPv4] を、クライアントが Network Load Balancer との通信に IPv4 アドレスと IPv6 アドレスの両方を使用する場合は [デュアルスタック] を選択します。

  6. ネットワークマッピング

    1. [VPC] で、Application Load Balancer ターゲットに使用したのと同じ VPC を選択します。インターネット向けロードバランサーでは、インターネットゲートウェイを持つ VPC のみが選択できます。

    2. アベイラビリティーゾーンとサブネットの場合は、少なくとも 1 つのアベイラビリティーゾーンを選択し、ゾーンごとに 1 つのサブネットを選択します。Application Load Balancer で有効になっているのと同じアベイラビリティーゾーンを選択することをお勧めします。これにより、可用性、スケーリング、パフォーマンスが最適化されます。

      (オプション) 静的 IP アドレスを使用するには、各アベイラビリティーゾーンの [IPv4 settings] (IPv4 の設定) で [Use an Elastic IP address] (Elastic IP アドレスを使用する) を選択します。静的 IP アドレスを使用すると、ファイアウォールの許可リストに特定の IP アドレスを追加することや、クライアントで IP アドレスをハードコードすることができます。

  7. [セキュリティグループ]。

    ロードバランサー VPC のデフォルトのセキュリティグループを事前に選択します。必要に応じて、追加のセキュリティグループを選択できます。ニーズに合ったセキュリティグループがない場合は、[新しいセキュリティグループを作成]を選択して作成します。詳細については、「Amazon VPC ユーザーガイド」の「セキュリティグループの作成」を参照してください。

    警告

    この時点で Network Load Balancer にセキュリティグループを関連付けていない場合、後で関連付けすることはできません。

    警告

    QUIC または TCP_QUIC リスナーを使用するには、Network Load Balancer にセキュリティグループがない必要があります。

  8. リスナーとルーティング

    1. デフォルトは、ポート 80 で TCP トラフィックを受け付けるリスナーです。トラフィックを Application Load Balancer ターゲットグループに転送できるのは TCP リスナーだけです。[プロトコル] は [TCP] のままにしておく必要がありますが、[ポート は必要に応じて変更できます。

      この構成では、Application Load Balancer で HTTPS リスナーを使用して TLS トラフィックを終了できます。

    2. [デフォルトアクション] で、前のステップで作成したターゲットグループを選択します。

    3. (オプション) [新しいタグを追加] をクリックし、タグキーとタグ値を入力してください。

  9. ロードバランサータグ

    (オプション) ロードバランサータグを展開します。(オプション) [新しいタグを追加] をクリックし、タグキーとタグ値を入力します。詳細については、「タグ」を参照してください。

  10. まとめ

    設定を確認し、[ロードバランサーを作成] を選択します。

AWS CLI
Network Load Balancer を作成するには

create-load-balancer コマンドを使用します。Application Load Balancer で有効になっているのと同じアベイラビリティーゾーンを使用することをお勧めします。

aws elbv2 create-load-balancer \ --name my-load-balancer \ --type network \ --scheme internal \ --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \ --security-groups sg-1111222233334444
TCP リスナーを追加するには

TCP リスナーを作成するには、create-listener コマンドを使用します。トラフィックを Application Load Balancer に転送できるのは TCP リスナーだけです。デフォルトのアクションには、前のステップで作成したターゲットグループを使用します。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TCP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
CloudFormation
Network Load Balancer を作成するには

AWS::ElasticLoadBalancingV2::LoadBalancer タイプのリソースと、AWS::ElasticLoadBalancingV2::Listener タイプのリソースを定義します。トラフィックを Application Load Balancer に転送できるのは TCP リスナーだけです。デフォルトのアクションには、前のステップで作成したターゲットグループを使用します。

Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-load-balancer Type: network Scheme: internal Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup myTCPListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: TCP Port: 80 DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup

前のステップで設定した Network Load Balancer をプライベート接続のエンドポイントとして使用するために、AWS PrivateLink を有効にすることができます。これにより、ロードバランサーへのプライベート接続がエンドポイントサービスとして確立されます。

Network Load Balancer を使用して VPC エンドポイントサービスを作成するには
  1. ナビゲーションペインで、[ロードバランサー] を選択します。

  2. Network Load Balancer の名前を選択して、その詳細ページを開きます。

  3. [Integrations] (統合) タブで、[PC エンドポイントサービス (AWS PrivateLink)] を展開します。

  4. [エンドポイントサービスの作成] を選択して、[エンドポイントサービス] ページを開きます。残りのステップについては、「AWS PrivateLink ガイド」の「エンドポイントサービスの作成」を参照してください。