将应用程序负载均衡器作为网络负载均衡器的目标 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将应用程序负载均衡器作为网络负载均衡器的目标

您可以使用单个应用程序负载均衡器作为目标来创建目标组,然后配置网络负载均衡器以将流量转发到目标组。在这种情况下,应用程序负载均衡器将在流量到达后立即接管负载均衡决策。此配置结合了两种负载均衡器的功能,并具有以下优点:

  • 您可以将应用程序负载均衡器基于第 7 层请求的路由功能与网络负载均衡器支持的功能结合使用,例如端点服务 (Amazon PrivateLink) 和静态 IP 地址。

  • 您可以将此配置用于对于多个协议需要单个端点的应用程序,例如使用 HTTP 进行信号发送的媒体服务和用于流式传输内容的 RTP。

您可以将此功能与内部或面向 Internet 的应用程序负载均衡器搭配使用,作为内部或面向 Internet 的网络负载均衡器的目标。

注意事项
  • 每个目标组只能注册一个应用程序负载均衡器。

  • 要将应用程序负载均衡器关联为网络负载均衡器的目标,这些负载均衡器必须位于同一账户内的同一 VPC 中。

  • 您可以将应用程序负载均衡器关联为最多两个网络负载均衡器的目标。为此,使用单独的目标组为每个网络负载均衡器注册应用程序负载均衡器。

  • 您使用网络负载均衡器注册的每个应用程序负载均衡器会将每个网络负载均衡器在每个可用区的最大目标数减少 50 个。您可以在这两个负载均衡器中禁用跨区域负载均衡,以尽量减少延迟并避免区域数据传输费用。有关更多信息,请参阅 网络负载均衡器的配额

  • 当目标组类型为 alb 时,您无法修改目标组属性。这些属性始终使用其默认值。

  • 注册应用程序负载均衡器作为目标,只有从所有目标组中取消注册此应用程序负载均衡器才能将其删除。

  • 网络负载均衡器和应用程序负载均衡器之间的通信始终使用 IPv4。

先决条件

如果您还没有可用作目标的应用程序负载均衡器,请创建负载均衡器、其侦听器以及其目标组。有关更多信息,请参阅《应用程序负载均衡器用户指南》中的创建应用程序负载均衡器

步骤 1:创建 alb 类型的目标组

创建 alb 类型的目标组。您可以在创建目标组时或创建之后,将您的应用程序负载均衡器注册为目标。

Console
要为作为目标的应用程序负载均衡器创建目标组
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的负载均衡下,选择目标组

  3. 选择 Create target group (创建目标组)

  4. 基本配置窗格中,对于选择目标类型,请选择应用程序负载均衡器

  5. 对于目标组名称,输入目标组的名称。

  6. 对于 Protocol (协议),只允许 TCP。为您的目标组选择 Port (端口)。此目标组的端口必须与应用程序负载均衡器的侦听器端口匹配。如果您为该目标组选择了其他端口,则可以更新应用程序负载均衡器上的侦听器端口,以使其匹配。

  7. 对于 VPC,请为目标组选择虚拟私有云(VPC)。这必须与应用程序负载均衡器所使用的 VPC 相同。

  8. 对于运行状况检查,选择 HTTP 或 HTTPS 作为运行状况检查协议。运行状况检查将发送到应用程序负载均衡器并使用指定的端口、协议和 ping 路径转发到其目标。确保应用程序负载均衡器可以通过侦听器来接收这些运行状况检查结果,该侦听器的端口和协议与运行状况检查端口和协议匹配。

  9. (可选)展开标签。对于每个标签,请选择添加新标签,然后输入标签键和标签值。

  10. 选择下一步

  11. 如果您已经准备号注册应用程序负载均衡器,请选择立即注册,根据需要覆盖默认端口,然后选择应用程序负载均衡器。应用程序负载均衡器必须在与目标组相同的端口上配置侦听器。您可以在此负载均衡器上添加或编辑侦听器以匹配目标组的端口,或返回上一步并更改目标组的端口。

    如果您尚未准备好将应用程序负载均衡器注册为目标,请选择稍后注册,以便稍后再进行目标注册。有关更多信息,请参阅 注册目标

  12. 选择创建目标组

Amazon CLI
要创建 alb 类型的目标组

使用 create-target-group 命令。协议必须为 TCP,并且端口必须与应用程序负载均衡器的侦听器端口匹配。

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,并且端口必须与应用程序负载均衡器的侦听器端口匹配。

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:创建网络负载均衡器并配置路由

创建网络负载均衡器时,您可以将默认操作配置为将流量转发到应用程序负载均衡器。

Console
要创建网络负载均衡器
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing (负载均衡) 下,选择 Load Balancers (负载均衡器)。

  3. 选择创建负载均衡器

  4. 网络负载均衡器下,选择创建

  5. 基本配置

    1. 对于负载均衡器名称,输入网络负载均衡器的名称。

    2. 对于 Scheme (方案),选择互联网-facing (面向互联网) 或 Internal (内部)。面向互联网的网络负载均衡器将来自客户端的请求通过互联网路由到目标。内部网络负载均衡器使用私有 IP 地址将请求路由到目标。

    3. 对于负载均衡器 IP 地址类型,如果您的客户端使用 IPv4 地址与网络负载均衡器通信,请选择 IPv4;如果客户端同时使用 IPv4 和 IPv6 地址与网络负载均衡器通信,则选择双堆栈

  6. 网络映射

    1. 对于 VPC,请选择您用于应用程序负载均衡器的相同 VPC。对于面向互联网的负载均衡器,仅带有互联网网关的 VPC 可供选择。

    2. 对于可用区和子网,请至少选择一个可用区,然后为每个区域选择一个子网。我们建议您选择与应用程序负载均衡器所启用的可用区相同的可用区。这有助于优化可用性、扩展性和性能。

      (可选)要使用静态 IP 地址,请针对每个可用区选择 IPv4 设置中的使用弹性 IP 地址。使用静态 IP 地址,您可以将某些 IP 地址添加到防火墙允许列表中,也可以对客户端进行 IP 地址硬编码。

  7. 安全组

    我们会为负载均衡器 VPC 预选默认安全组。您可以根据需要选择其他安全组。如果您没有可满足您需求的安全组,请选择创建新的安全组,以立即创建一个。有关更多信息,请参阅《Amazon VPC 用户指南》中的创建安全组

    警告

    如果您现在没有将任何安全组与网络负载均衡器关联,则无法以后再将其关联。

    警告

    要使用 QUIC 或 TCP_QUIC 侦听器,您的网络负载均衡器必须没有安全组。

  8. 侦听器和路由

    1. 默认值是负责接收端口 80 上的 TCP 流量的侦听器。只有 TCP 侦听器才能将流量转发到应用程序负载均衡器目标组。您必须将协议保留为 TCP,但可以根据需要修改端口

      通过此配置,您可以在应用程序负载均衡器上使用 HTTPS 侦听器终止 TLS 流量。

    2. 对于默认操作,请选择您在之前步骤中创建的目标组。

    3. (可选)选择添加侦听器标签,然后输入标签键和标签值。

  9. 负载均衡器标签

    (可选)展开负载均衡器标签。(可选)选择添加新的标签,然后输入标签键和标签值。有关更多信息,请参阅标签

  10. 总结

    查看您的配置,然后选择创建负载均衡器

Amazon CLI
要创建网络负载均衡器

使用 create-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 侦听器

使用 create-listener 命令来添加 TCP 侦听器。只有 TCP 侦听器才能将流量转发到应用程序负载均衡器。对于默认操作,请使用您在之前步骤中创建的目标组。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TCP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
CloudFormation
要创建网络负载均衡器

定义 AWS::ElasticLoadBalancingV2::LoadBalancer and a resource of type AWS::ElasticLoadBalancingV2::Listener 类型的资源。只有 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

要使用您在上一步中设置的网络负载均衡器作为私有连接的端点,您可以启用 Amazon PrivateLink。这将建立与负载均衡器作为终端节点服务的私有连接。

要使用您的网络负载均衡器创建 VPC 端点服务
  1. 在导航窗格中,选择负载均衡器

  2. 选择网络负载均衡器的名称以打开其详细信息页面。

  3. 集成选项卡上,展开 VPC 端点服务(Amazon PrivateLink)

  4. 选择创建端点服务以打开端点服务页面。有关其余步骤,请参阅《Amazon PrivateLink 指南》中的创建端点服务