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

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

网络负载均衡器

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

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

网络负载均衡器支持客户端通过对VPC等互连VPN Amazon Direct Connect、 Amazon 托管和第三方VPN解决方案进行连接。

负载均衡器状态

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

provisioning

正在设置网络负载均衡器。

active

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

failed

无法设置网络负载均衡器。

IP 地址类型

您可以设置客户端可与您的网络负载均衡器结合使用的 IP 地址类型。

网络负载均衡器支持以下 IP 地址类型:

ipv4

客户端必须使用IPv4地址(例如 192.0.2.1)进行连接。

dualstack

客户端可以使用地址(例如 192.0.2.1)和IPv4IPv6地址(例如,2001:0 db 8:85 a 3:0:0:8 a2e:0370:7334)连接到 Network Load Balancer。

注意事项
  • 网络负载均衡器根据目标组的 IP 地址类型与目标进行通信。

  • 当你为网络负载均衡器启用双栈模式时,Elastic Load Balancing 会为网络负载均衡器提供AAAADNS记录。使用IPv4地址与 Network Load Balancer 通信的客户端会解析 A DNS 记录。使用IPv6地址与 Network Load Balancer 通信的客户端会解析AAAADNS记录。

  • 阻止通过互联网网关对内部双堆栈网络负载均衡器的访问,以防意外访问互联网。但是,这并不能阻止其他互联网访问(例如,通过对等互连、Transit Gateway 或 Amazon VPN)。 Amazon Direct Connect

有关 IP 地址类型的更多信息,请参阅更新网络负载均衡器的 IP 地址类型

连接空闲超时

对于客户端通过 Network Load Balancer 发出的每个TCP请求,都会跟踪该连接的状态。如果客户端或目标在空闲超时期限内没有通过连接发送任何数据,则不再跟踪该连接。如果客户机或目标在空闲超时时间过后发送数据,则该客户端会收到一个TCPRST数据包,表示该连接已失效。

TCP流的默认空闲超时值为 350 秒,但可以更新为 60-6000 秒之间的任何值。客户端或目标可以使用 TCP keepalive 数据包来重新启动空闲超时。为维护TLS连接而发送的 Keepalive 数据包不能包含数据或有效负载。

当TLS侦听器收到来自客户端或目标的 TCP keepalive 数据包时,负载均衡器会生成 TCP keepalive 数据包,并每 20 秒将它们发送到前端和后端连接。您不能修改此行为。

当UDP处于无连接状态时,负载均衡器会根据源和目标 IP 地址和端口保持UDP流量状态。这可确保属于同一个流中的数据包始终发送到相同的目标。空闲超时时间过后,负载均衡器会将传入UDP的数据包视为新流,并将其路由到新目标。Elastic Load Balancing 将UDP流的空闲超时值设置为 120 秒。无法对其进行更改。

EC2实例必须在 30 秒内响应新请求才能建立返回路径。

有关更多信息,请参阅 更新空闲超时

负载均衡器属性

您可以通过编辑网络负载均衡器的属性来对其进行配置。有关更多信息,请参阅 编辑负载均衡器属性

网络负载均衡器的负载均衡器属性如下:

access_logs.s3.enabled

指示是否启用存储在 Amazon S3 中的访问日志。默认为 false

access_logs.s3.bucket

访问日志所用的 Amazon S3 存储桶的名称。如果启用访问日志,则此属性是必需的。有关更多信息,请参阅 存储桶要求

access_logs.s3.prefix

Amazon S3 存储桶中位置的前缀。

deletion_protection.enabled

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

ipv6.deny_all_igw_traffic

阻止互联网网关 (IGW) 访问网络负载均衡器,防止通过互联网网关意外访问您的内部网络负载均衡器。对于面向互联网的网络负载均衡器,它设置为 false;对于内部网络负载均衡器,它设置为 true。此属性不阻止非IGW互联网访问(例如,通过对等互连、Transit Gateway 或 Amazon VPN)。 Amazon Direct Connect

load_balancing.cross_zone.enabled

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

dns_record.client_routing_policy

指示将如何在网络负载均衡器可用区之间进行分配流量。可能的值为 availability_zone_affinity(100% 可用区亲和性)、partial_availability_zone_affinity(85% 可用区亲和性)和 any_availability_zone(0% 可用区亲和性)。

zonal_shift.config.enabled

指示是否已启用可用区转移。默认为 false

跨可用区负载均衡

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

DNS 名称

每个 Network Load Balancer 都会收到一个默认的域名系统 (DNS) 名称,其语法如下:name-id .elb。 region.amazonaws.com。例如, my-load-balancer-1234567890abcdef。elb.us-east-2.amazonaws.com。

如果您希望使用更易于记忆的DNS名称,则可以创建一个自定义域名并将其与 Network Load Balancer 的DNS名称相关联。当客户端使用此自定义域名发出请求时,DNS服务器会将其解析为 Network Load Balancer 的DNS名称。

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

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

Linux 或 Mac

$ dig +short example.networkloadbalancer.com

Windows

C:\> nslookup example.networkloadbalancer.com

Network Load Balancer 有其节点的DNS记录。您可以使用具有以下语法的DNS名称来确定 Network Load Balancer 节点的 IP 地址:azname-id .elb。 region.amazonaws.com。

Linux 或 Mac

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

Windows

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

负载均衡器可用区运行状况

对于每个已启用的可用区,网络负载均衡器在 Route 53 中都有区域DNS记录和 IP 地址。当 Network Load Balancer 未能通过特定可用区的区域运行状况检查时,其DNS记录将从 Route 53 中删除。负载均衡器区域运行状况使用 Amazon CloudWatch 指标进行监控ZonalHealthStatus,让您可以更深入地了解导致故障转移的事件,从而实施预防措施来确保最佳的应用程序可用性。有关更多信息,请参阅Network Load Balancer 指标

网络负载均衡器可能由于多种原因无法通过可用区运行状况检查,从而导致其变得运行状况不佳。请参阅下文,了解未通过可用区运行状况检查导致网络负载均衡器运行状况不佳的常见原因。

请检查以下可能原因:
  • 负载均衡器没有运行状况正常目标

  • 运行状况正常目标数量少于配置的最小值

  • 正在进行可用区转移或可用区自动移位

  • 由于检测到问题,流量正在自动转移到运行状况良好区域