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

创建网络负载均衡器

网络负载均衡器接收来自客户端的请求,并将请求分发给目标组中的目标(如 EC2 实例)。有关更多信息,请参阅网络负载均衡器概述

先决条件

  • 确定您的应用程序将支持哪些可用区和 IP 地址类型。在每个可用区中配置包含子网的负载均衡器V PC。如果应用程序同时支持 IPv4 和 IPv6 流量,请确保子网同时具有 IPv4 和 IPv6 CIDR。在每个可用区中至少部署一个目标。

  • 确保目标实例的安全组允许侦听器端口上来自客户端 IP 地址 (如果目标通过实例 ID 指定) 或负载均衡器节点 (如果目标通过 IP 地址指定) 的流量。有关更多信息,请参阅 目标安全组

  • 确保目标实例的安全组通过运行状况检查协议允许来自运行状况检查检查端口上的负载均衡器的流量。

  • 如果您计划为负载均衡器提供静态 IP 地址,请确保每个弹性 IP 地址都来自 Amazon 的 IPv4 地址池,并且其网络边界组与负载均衡器相同。

  • 如果您计划使用 QUIC 或 TCP_QUIC 侦听器,请确保网络负载均衡器使用 ipv4 地址类型并且没有与之关联的安全组。

创建负载均衡器

在创建网络负载均衡器的过程中,您将创建负载均衡器、至少一个侦听器和至少一个目标组。当负载均衡器在每个已启用的可用区中至少有一个正常运行的注册目标时,它即可处理客户端请求。

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

  2. 在导航窗格中,选择负载均衡器

  3. 选择创建负载均衡器

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

  5. 基本配置

    1. 对于负载均衡器名称,输入网络负载均衡器的名称。名称必须在区域的负载均衡器组中是唯一的。它最多可包含 32 个字符,并且只包含字母数字字字符和连字符。它不能以连字符或 internal- 开头或结尾。

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

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

  6. 网络映射

    1. 对于 VPC,请选择您为负载均衡器准备的 VPC。对于面向互联网的负载均衡器,仅带有互联网网关的 VPC 可供选择。

    2. 使用双栈负载均衡器时,除非启用 IPv6 源 NAT 的前缀已开启(每个子网分配源 NAT 前缀),否则无法添加 UDP 侦听器。

    3. 对于可用区和子网,请至少选择一个可用区,然后为每个区域选择一个子网。请注意,共享给您的子网可供选择。

      如果您选择多个可用区,并确保在每个选定区域中都注册了目标,那么这将提高您应用程序的容错能力。

    4. 借助面向互联网的负载均衡器,您可以为每个可用区选择弹性 IP 地址。这将为您的负载均衡器提供静态 IP 地址。

      借助内部负载均衡器时,您可以从每个子网的地址范围内输入私有 IPv4 地址,或让 Amazon 为您自动选择一个。

      借助双栈负载均衡器时,您可以从每个子网的地址范围内输入 IPv6 地址,或让 Amazon 为您自动选择一个。

      对于启用了源 NAT 的负载均衡器,您可以输入自定义 IPv6 前缀或让 Amazon 为您选择一个。

  7. 安全组

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

    警告

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

    警告

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

  8. 侦听器和路由

    1. 默认值是负责接收端口 80 上的 TCP 流量的侦听器。您可保留默认侦听器设置,或者根据需要修改协议端口

    2. 对于默认操作,选择一个要将流量转发到的目标组。

      要添加其他目标组,请选择添加目标组,并根据需要更新权重。

      如果您还没有能满足您需求的目标组,请选择创建目标组,以立即创建一个目标组。有关更多信息,请参阅 创建目标组

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

    4. (可选)选择添加侦听器,以添加其他侦听器(例如,TLS 侦听器)。

  9. 安全侦听器设置

    仅当您添加 TLS 侦听器时,才会显示此部分。

    1. 对于安全策略,请选择符合您要求的安全策略。有关更多信息,请参阅 安全策略

    2. 对于默认 SSL/TLS 服务器证书,请选择来自 ACM 作为证书源。选择您使用 Amazon Certificate Manager 预置或导入的证书。如果您在 ACM 中没有可用的证书,但有可用于负载均衡器的证书,请选择导入证书,并提供所需的信息。否则,请选择请求新的 ACM 证书。有关更多信息,请参阅《Amazon Certificate Manager 用户指南》中的 Amazon Certificate Manager 证书

    3. (可选)对于 ALPN 策略,请选择一个策略以启用 ALPN。有关更多信息,请参阅 ALPN 策略

  10. 负载均衡器标签

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

  11. 总结

    查看配置,然后选择创建负载均衡器。在创建过程中,一些默认属性会应用于网络负载均衡器。创建网络负载均衡器后,您可以查看和编辑它们。有关更多信息,请参阅 负载均衡器属性

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

使用 create-load-balancer 命令。

以下示例创建了一个面向互联网的负载均衡器,包括两个已启用的可用区和一个安全组。

aws elbv2 create-load-balancer \ --name my-load-balancer \ --type network \ --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \ --security-groups sg-1111222233334444
要创建内部负载均衡器

包含如下示例所示的 --scheme 选项。

aws elbv2 create-load-balancer \ --name my-load-balancer \ --type network \ --scheme internal \ --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \ --security-groups sg-1111222233334444
要创建双堆栈网络负载均衡器

包含如下示例所示的 --ip-address-type 选项。

aws elbv2 create-load-balancer \ --name my-load-balancer \ --type network \ --ip-address-type dualstack \ --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \ --security-groups sg-1111222233334444
添加侦听器

使用 create-listener 命令。有关示例,请参阅 创建侦听器

CloudFormation
要创建网络负载均衡器

定义 AWS::ElasticLoadBalancingV2::LoadBalancer 类型的资源。

Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-nlb Type: network Scheme: internal IpAddressType: dualstack Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup Tags: - Key: 'department' Value: '123'
添加侦听器

定义 AWS::ElasticLoadBalancingV2::Listener 类型的资源。有关示例,请参阅 创建侦听器

测试负载均衡器

在创建网络负载均衡器之后,您可验证您的 EC2 实例是否通过了初始运行状况检查,然后测试网络负载均衡器是否会将流量发送至您的 EC2 实例。要删除网络负载均衡器,请参阅删除网络负载均衡器

测试网络负载均衡器
  1. 创建网络负载均衡器之后,选择关闭

  2. 在左侧导航窗格中,选择目标组

  3. 选择新目标组。

  4. 选择 Targets (目标) 并验证您的实例是否已就绪。如果实例状态是 initial,很可能是因为,实例仍在注册过程中,或者未通过视为正常运行所需的运行状况检查最小数量。在至少一个实例的状态为运行状况良好后,便可测试网络负载均衡器。有关更多信息,请参阅 目标运行状况

  5. 在导航窗格中,选择负载均衡器

  6. 选择新的网络负载均衡器。

  7. 复制网络负载均衡器的 DNS 名称(例如,my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com)。将该 DNS 名称粘贴到已连接 Internet 的 Web 浏览器的地址栏中。如果一切正常,浏览器会显示您服务器的默认页面。

后续步骤

创建负载均衡器后,您可能需要执行以下操作: