Elastic Load Balancing
Network Load Balancer
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Network Load Balancer

负载均衡器 充当客户端的单一接触点。客户端将请求发送到负载均衡器,然后负载均衡器将请求发送到一个或多个可用区中的目标 (例如 EC2 实例)。

要配置您的负载均衡器,可以创建目标组,然后将目标注册到目标组。如果您确保每个启用的可用区均具有至少一个注册目标,则负载均衡器将具有最高效率。您还可以创建侦听器来检查来自客户端的连接请求,并将来自客户端的请求路由到目标组中的目标。

Network Load Balancer 通过 VPC 对等连接、AWS 托管 VPN 和第三方 VPN 解决方案支持来自客户端的连接。

负载均衡器状态

负载均衡器可能处于下列状态之一:

provisioning

正在设置负载均衡器。

active

负载均衡器已完全设置并准备好路由流量。

failed

负载均衡器无法设置。

负载均衡器属性

以下是负载均衡器属性:

deletion_protection.enabled

指示是否启用删除保护。默认为 false

load_balancing.cross_zone.enabled

指示是否启用了跨区域负载均衡。默认为 false

可用区

在创建负载均衡器时,可为其启用一个或多个可用区。在创建网络负载均衡器之后,将无法为其启用或禁用可用区。如果为负载均衡器启用多个可用区,则可以提高应用程序的容错能力。

当启用某个可用区时,应指定该可用区中的一个子网。Elastic Load Balancing ; 会在该可用区中创建一个负载均衡器节点,并为子网创建一个网络接口(描述以“ELB net”开头并包括负载均衡器的名称)。可用区内的每个负载均衡器节点使用该网络接口来获取一个 IPv4 地址。请注意,您可以查看此网络接口,但不能修改它。

在您创建面向 Internet 的负载均衡器时,可以选择为每个子网指定一个弹性 IP 地址。这将为您的负载均衡器提供静态 IP 地址。在创建负载均衡器之后,将无法为子网添加或更改弹性 IP 地址。

要求

  • 您指定的子网必须具有至少 8 个可用 IP 地址。

  • 无法指定由另一个 AWS 账户与您共享的子网。

  • 无法指定受约束可用区中的子网。错误消息为“Load balancers with type 'network' are not supported in az_name (az_name 中不支持“网络”类型的负载均衡器)”。您可以在不受约束的其他可用区中指定子网,并使用跨区域负载均衡将流量分发至受约束d 可用区中的目标。

跨区域负载均衡

默认情况下,每个负载均衡器节点仅在其可用区中的已注册目标之间分配流量。如果您启用了跨区域负载均衡,则每个负载均衡器节点会在所有启用的可用区中的已注册目标之间分配流量。有关更多信息,请参阅 Elastic Load Balancing 用户指南 中的跨区域负载均衡

使用控制台启用跨区域负载均衡

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. 选择 DescriptionEdit attributes

  5. 编辑负载均衡器属性页面上,为跨区域负载均衡选择启用,然后选择保存

使用 AWS CLI 启用跨区域负载均衡

使用带 load_balancing.cross_zone.enabled 属性的 modify-load-balancer-attributes 命令。

删除保护

为了防止您的负载均衡器被意外删除,您可以启用删除保护。默认情况下,已为负载均衡器禁用删除保护。

如果您为负载均衡器启用删除保护,则必须先禁用删除保护,然后才能删除负载均衡器。

使用控制台启用删除保护

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. 选择 DescriptionEdit attributes

  5. 编辑负载均衡器属性页面上,为删除保护选择启用,然后选择保存

使用控制台禁用删除保护

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器。

  4. 选择 DescriptionEdit attributes

  5. Edit load balancer attributes 页面上,清除 Enable delete protection 并选择 Save

使用 AWS CLI 启用或禁用删除保护

使用带 deletion_protection.enabled 属性的 modify-load-balancer-attributes 命令。

连接空闲超时

对于客户端通过 网络负载均衡器 发出的每个 TCP 请求,都将跟踪该连接的状态。如果客户端或目标通过连接发送数据的间隔超过空闲超时期限,则连接将关闭。如果客户端或目标在空闲超时期限后发送数据,则会收到一个 TCP RST 数据包,以指示连接不再有效。

对于 TCP 流,Elastic Load Balancing 将空闲超时值设为 350 秒。您不能修改此值。对于 TCP 侦听器,客户端和目标可以使用 TCP keepalive 数据包以重置空闲超时。TCP keepalive 数据包不支持 TLS 侦听器。

虽然 UDP 无连接,但是负载均衡器将基于源和目标 IP 地址和端口保持 UDP 流状态,从而确保属于同一个流中的数据包始终发送到相同的目标。空闲超时期限后,负载均衡器会考虑将传入的 UDP 数据包作为新流,并路由到新的目标。对于 UDP 流,Elastic Load Balancing 将空闲超时值设为 120 秒。

DNS 名称

每个网络负载均衡器都使用以下语法接收默认域名系统 (DNS) 名称:name-id.elb.region.amazonaws.com.cn。例如,my-load-balancer-1234567890abcdef.elb.us-west-2.amazonaws.com.cn。

如果您更喜欢使用更容易记住的 DNS 名称,则可以创建自定义域名并将其与负载均衡器的 DNS 名称相关联。在客户端使用此自定义域名进行请求时,DNS 服务器将它解析为负载均衡器的 DNS 名称。

首先,向经认可的域名注册商注册域名。下一步,通过您的 DNS 服务(如您的域注册商)创建一条别名记录将请求路由到您的负载均衡器。有关更多信息,请参阅您的 DNS 服务的文档。例如,您可以使用 Amazon Route 53 作为 DNS 服务。有关更多信息,请参阅 Amazon Route 53 开发人员指南 中的将流量路由到 ELB 负载均衡器

负载均衡器针对每个启用的可用区都有一个 IP 地址。这些是负载均衡器节点的地址。负载均衡器的 DNS 名称解析为这些地址。例如,假设您的负载均衡器的自定义域名是 example.networkloadbalancer.com。使用以下 dignslookup 命令确定负载均衡器节点的 IP 地址。

Linux 或 Mac

$ dig +short example.networkloadbalancer.com

Windows

C:\> nslookup example.networkloadbalancer.com

负载均衡器具有其负载均衡器节点的 DNS 记录。您可以使用具有以下语法的 DNS 名称来确定负载均衡器节点的 IP 地址:az.name-id.elb.region.amazonaws.com.cn。

Linux 或 Mac

$ dig +short us-west-2b.my-load-balancer-1234567890abcdef.elb.us-west-2.amazonaws.com.cn

Windows

C:\> nslookup us-west-2b.my-load-balancer-1234567890abcdef.elb.us-west-2.amazonaws.com.cn