本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是网络负载均衡器?
弹性负载均衡 在一个或多个可用区中的多个目标(如 EC2 实例、容器和 IP 地址)之间自动分配传入的流量。它会监控已注册目标的运行状况,并仅将流量传输到运行状况良好的目标。弹性负载均衡 根据传入流量随时间的变化对负载均衡器进行扩展。它可以自动扩展来处理绝大部分工作负载。
弹性负载均衡 支持以下负载均衡器:Application Load Balancer、Network Load Balancer、Gateway Load Balancer 和经典负载均衡器。您可以选择最适合自己需求的负载均衡器类型。本指南讨论的是网络负载均衡器。有关其他负载均衡器的更多信息,请参阅 Application Load Balancer 用户指南、Gateway Load Balancer 用户指南和 经典负载均衡器用户指南。
网络负载均衡器组件
负载均衡器充当客户端的单一接触点。负载均衡器在多个目标(如 Amazon EC2 实例)之间分配传入的流量。这将提高应用程序的可用性。可以向您的负载均衡器添加一个或多个侦听器。
侦听器使用您配置的协议和端口检查来自客户端的连接请求,然后将请求转发给目标组。
目标组使用指定的协议和端口号将请求路由到一个或多个已注册的目标(例如 EC2 实例)。网络负载均衡器目标组支持 TCP、UDP、TCP_UDP 和 TLS 协议。您可以向多个目标组注册一个目标。您可以对每个目标组配置运行状况检查。在注册到目标组 (它是使用负载均衡器的侦听器规则指定的) 的所有目标上,执行运行状况检查。
有关更多信息,请参阅 文档:
网络负载均衡器概述
网络负载均衡在开放系统互连 (OSI) 模型的第四层运行。它每秒可以处理数百万个请求。在负载均衡器收到连接请求后,它会从默认规则的目标组中选择一个目标。它尝试在侦听器配置中指定的端口上打开一个到该选定目标的 TCP 连接。
当您为负载均衡器启用可用区时,Elastic Load Balancing 会在该可用区中创建一个负载均衡器节点。默认情况下,每个负载均衡器节点仅在其可用区中的已注册目标之间分配流量。如果您启用了跨可用区负载均衡,则每个负载均衡器节点会在所有启用的可用区中的已注册目标之间分配流量。有关更多信息,请参阅 更新网络负载均衡器的可用区。
要提高应用程序的容错能力,您可以为负载均衡器启用多个可用区,并确保每个目标组在每个启用的可用区中至少有一个目标。例如,如果一个或多个目标组在可用区中没有运行状况良好的目标,我们会从 DNS 中删除相应子网的 IP 地址,但其他可用区中的负载均衡器节点仍可用于路由流量。如果一个客户端不遵守生存时间 (TTL) 而将请求发送到已从 DNS 删除的 IP 地址,则请求会失败。
对于 TCP 流量,负载均衡器基于协议、源 IP 地址、源端口、目标 IP 地址、目标端口和 TCP 序列号,使用流哈希算法选择目标。来自客户端的 TCP 连接具有不同的源端口和序列号,可以路由到不同的目标。每个单独的 TCP 连接在连接的有效期内路由到单个目标。
对于 UDP 流量,负载均衡器基于协议、源 IP 地址、源端口、目标 IP 地址和目标端口,使用流哈希算法选择目标。UDP 流具有相同的源和目标,因此始终在其整个生命周期内路由到单个目标。不同 UDP 流具有不同的源 IP 地址和端口,因此它们可以路由到不同的目标。
Elastic Load Balancing 将为启用的每个可用区创建一个网络接口。可用区内的每个负载均衡器节点使用该网络接口来获取一个静态 IP 地址。在您创建面向 Internet 的负载均衡器时,可以选择将一个弹性 IP 地址与每个子网关联。
在创建目标组时,指定其目标类型,此类型将确定您如何注册其目标。例如,您可以注册实例 ID、IP 地址或 Application Load Balancer。目标类型还会影响是否会保留客户端 IP 地址。有关更多信息,请参阅 客户端 IP 保留。
可以根据需求变化在负载均衡器中添加和删除目标,而不会中断应用程序的整体请求流。弹性负载均衡 根据传输到应用程序的流量随时间的变化对负载均衡器进行扩展。弹性负载均衡 能够自动扩展来处理绝大部分工作负载。
您可以配置运行状况检查,这些检查可用来监控注册目标的运行状况,以便负载均衡器只能将请求发送到正常运行的目标。
有关更多信息,请参阅 弹性负载均衡 用户指南中的 Elastic Load Balancing 工作原理
从经典负载均衡器迁移的好处
使用网络负载均衡器而不是经典负载均衡器具有以下好处:
-
可以处理急剧波动的工作负载,并可以扩展到每秒处理数百万个请求。
-
支持将静态 IP 地址用于负载均衡器。还可以针对为负载均衡器启用的每个子网分配一个弹性 IP 地址。
-
支持通过 IP 地址注册目标,包括位于负载均衡器的 VPC 之外的目标。
-
支持将请求路由到单个 EC2 实例上的多个应用程序。可以使用多个端口向同一个目标组注册每个实例或 IP 地址。
-
支持容器化的应用程序。计划任务时,Amazon Elastic Container Service (Amazon ECS) 可以选择一个未使用的端口,并可以使用此端口向目标组注册该任务。这样可以高效地使用您的群集。
-
支持单独监控每个服务的运行状况,因为运行状况检查是在目标组级别定义的,并且许多 Amazon CloudWatch 指标是在目标组级别报告的。将目标组挂载到 Auto Scaling 组的功能使您能够根据需求动态扩展每个服务。
要详细了解每种负载均衡器类型支持的功能,请参阅 弹性负载均衡 产品比较
开始使用
要使用 AWS Management Console创建网络负载均衡器,请参阅Network Load Balancers 入门。要使用 AWS Command Line Interface创建网络负载均衡器,请参阅使用 AWS CLI 开始使用网络负载均衡器
有关常见负载均衡器配置的演示,请参阅 Elastic Load Balancing 演示
定价
有关更多信息,请参阅网络负载均衡器定价