使用 Application 负载均衡器作为网络负载均衡器的目标 - Elastic Load Balancing

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Application 负载均衡器作为网络负载均衡器的目标

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

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

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

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

注意事项
  • 每个目标组只能注册一个 Application Load Balancer。

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

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

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

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

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

  • Network Load Balancer 和 Application Load Balancer 之间的通信始终使用 IPv4。

先决条件

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

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

创建类型为的目标组alb。您可以在创建目标组时或稍后将您的 Application Load Balancer 注册为目标。

Console
为 Application Load Balancer 创建目标组作为目标
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing (负载均衡) 下,选择 Target Groups (目标组)。

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

  4. 基本配置窗格中,在 “选择目标类型” 中,选择 App lication Load Balancer

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

  6. 对于 Protocol (协议),只允许 TCP。为您的目标组选择 Port (端口)。此目标组的端口必须与 Application Load Balancer 的侦听器端口匹配。如果您为此目标组选择其他端口,则可以更新 Application Load Balancer 上的侦听器端口以使其与之匹配。

  7. 对于 VPC,请为目标组选择虚拟私有云 (VPC)。这必须与 Application Load Balancer 所使用的 VPC 相同。

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

  9. (可选)展开标签。对于每个标签,选择 Add new ta g,然后输入标签键和标签值。

  10. 选择下一步

  11. 如果您准备注册应用程序负载均衡器,请选择立即注册,根据需要覆盖默认端口,然后选择应用程序负载均衡器。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. 在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择创建负载均衡器

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

  5. 基本配置

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

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

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

  6. 网络映射

    1. 对于 VPC,请选择您用于 Application Load Balancer 的相同 VPC。对于面向互联网的负载均衡器,只能选择 VPCs 带有互联网网关的负载均衡器。

    2. 对于可用区和子网,请至少选择一个可用区,然后为每个区域选择一个子网。我们建议您选择为 Application Load Balancer 启用的相同可用区。这可以优化可用性、扩展性和性能。

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

  7. 安全组

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

    警告

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

  8. 侦听器和路由

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

      通过此配置,您可以在应用程序负载均衡器上使用 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 监听器

使用 create-listener 命令添加 TCP 监听器。只有 TCP 侦听器可以将流量转发到 Application Load Balancer。对于默认操作,请使用您在上一步中创建的目标组。

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。只有 TCP 侦听器可以将流量转发到 Application Load Balancer。对于默认操作,请使用您在上一步中创建的目标组。

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

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

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

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

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

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