负载均衡器接受来自客户端的传入流量,并将请求路由到其在一个或多个可用区中的注册目标(例如EC2实例)。负载均衡器还会监控已注册目标的运行状况,并确保它只将流量路由到正常运行的目标。当负载均衡器检测到不正常目标时,它会停止将流量路由到该目标。然后,当它检测到目标再次正常时,它会恢复将流量路由到该目标。
您可通过指定一个或多个侦听器将您的负载均衡器配置为接受传入流量。侦听器是用于检查连接请求的进程。它配置了用于从客户端连接到负载均衡器的协议和端口号。同样,它配置了用于从负载均衡器连接到目标的协议和端口号。
Elastic Load Balancing 支持以下类型的负载均衡器:
负载均衡器类型的配置方式具有一个关键区别。对于 Application Load Balancer、Network Load Balancer 和 Gateway Load Balancer,可以在目标组中注册目标,并将流量路由到目标组。通过经典负载均衡器,可以在负载均衡器中注册实例。
当您为负载均衡器启用可用区时,Elastic Load Balancing 会在该可用区中创建一个负载均衡器节点。如果您在可用区中注册目标但不启用可用区,这些已注册目标将无法接收流量。当您确保每个启用的可用区均具有至少一个已注册目标时,负载均衡器将具有最高效率。
我们建议为所有负载均衡器启用多个可用区。但对于 Application Load Balancer,要求您至少启用两个或更多可用区。此配置有助于确保负载均衡器可以继续路由流量。如果一个可用区变得不可用或没有正常目标,则负载均衡器会将流量路由到其他可用区中的正常目标。
在禁用一个可用区后,该可用区中的目标将保持已注册到负载均衡器的状态。但是,即使它们保持已注册状态,负载均衡器也不会将流量路由到它们。
负载均衡器的节点将来自客户端的请求分配给已注册目标。启用了跨区域负载均衡后,每个负载均衡器节点会在所有启用的可用区中的已注册目标之间分配流量。禁用了跨区域负载均衡后,每个负载均衡器节点会仅在其可用区中的已注册目标之间分配流量。
下图演示了以轮询为默认路由算法的跨可用区负载均衡效果。有 2 个已启用的可用区,其中可用区 A 中有 2 个目标,可用区 B 中有 8 个目标。客户端发送请求,Amazon Route 53 使用负载均衡器节点之一的 IP 地址响应每个请求。基于轮询路由算法,系统会分配流量,以便每个负载均衡器节点接收来自客户端 50% 的流量。每个负载均衡器节点会在其范围中的已注册目标之间分配其流量份额。
如果启用了跨区域负载均衡,则 10 个目标中的每个目标接收 10% 的流量。这是因为每个负载均衡器节点可将其 50% 的客户端流量路由到所有 10 个目标。
如果禁用了跨区域负载均衡:
这是因为每个负载均衡器节点只能将其 50% 的客户端流量路由到其可用区中的目标。
对于应用程序负载均衡器,跨可用区负载均衡始终在负载均衡器级别启用。在目标组级别,可以禁用跨可用区负载均衡。有关更多信息,请参阅《应用程序负载均衡器用户指南》中的关闭跨可用区负载均衡。
对于 Network Load Balancer 和 Gateway Load Balancer,默认情况下会禁用跨区域负载均衡。创建负载均衡器后,您随时可以启用或禁用跨区域负载均衡。有关更多信息,请参阅《网络负载均衡器用户指南》中的跨区域负载平衡。
在创建经典负载均衡器时,跨区域负载均衡的默认值取决于创建负载均衡器的方式。使用API或CLI,默认情况下跨区域负载平衡处于禁用状态。使用时 AWS Management Console,默认情况下会选择启用跨区域负载平衡的选项。创建经典负载均衡器后,您随时可以启用或禁用跨区域负载均衡。有关更多信息,请参阅《经典负载均衡器用户指南》中的启用跨区域负载均衡。
区域转移是 Amazon 应用程序恢复控制器 (ARC) (ARC) 中的一项功能。通过可用区转移,只需执行一次操作即可将负载均衡器资源从受损的可用区转移出去。这样,您就可以继续从 AWS 区域中的其他运行状况良好的可用区运行。
当您启动可用区转移时,负载均衡器会停止向受影响的可用区发送这些资源的流量。ARC立即创建区域偏移。但是,可能需要很短时间(通常长达几分钟)才能完成受影响可用区中正在进行的现有连接。有关更多信息,请参阅 A mazon 应用程序恢复控制器 (ARC) 开发者指南中的区域转移的工作原理:运行状况检查和区域 IP 地址。
只有关闭了跨可用区负载均衡的应用程序负载均衡器和网络负载均衡器才支持可用区转移。如果您开启了跨可用区负载均衡,则无法启动可用区转移。有关更多信息,请参阅《Amazon 应用程序恢复控制器 (ARC) 开发人员指南》中的支持区域转移的资源。
在使用可用区转移之前,请查看以下内容:
有关更多指导和信息,请参阅《Ama ARC zon 应用程序恢复控制器 (ARC) 开发人员指南》中的 Route 53 区域转移的最佳实践。
在客户端向您的负载均衡器发送请求之前,它会使用域名系统 (DNS) 服务器解析负载均衡器的域名。该DNS条目由 Amazon 控制,因为您的负载均衡器位于域中。Amazon DNS 服务器向客户端返回一个或多个 IP 地址。这些是您的负载均衡器的负载均衡器节点的 IP 地址。对于网络负载均衡器,Elastic Load Balancing 将为您启用的每个可用区创建一个网络接口,并使用该网络接口来获取静态 IP 地址。在您创建网络负载均衡器时,可以选择将一个弹性 IP 地址关联到每个网络接口。
随着应用程序的流量随时间的推移而变化,Elastic Load Balancing 会扩展您的负载均衡器并更新DNS条目。该DNS条目还将 time-to-live (TTL) 指定为 60 秒。这有助于确保可以快速重新映射 IP 地址以响应不断变化的流量。
客户端可以确定使用哪个 IP 地址将请求发送到负载均衡器。用于接收请求的负载均衡器节点会选择一个正常运行的已注册目标,并使用其私有 IP 地址将请求发送到该目标。
有关更多信息,请参阅 Amazon Route 53 开发人员指南中的将流量路由到ELB负载均衡器。
借助 Application Load Balancer,接收请求的负载均衡器节点使用以下过程:
借助 Network Load Balancer,接收连接的负载均衡器节点使用以下过程:
借助 经典负载均衡器,接收请求的负载均衡器节点按照以下方式选择注册实例:
经典负载均衡器使用提前打开的连接,但 Application Load Balancer 不使用。经典负载均衡器和 Application Load Balancer 均使用多路复用连接。也就是说,来自多个前端连接上的多个客户端的请求可通过单一的后端连接路由到指定目标。多路复用连接可缩短延迟并减少您的应用程序上的负载。为防止连接多路传输,请在HTTP响应中设置标题来禁用标头。HTTP
应用程序负载均衡器和经典负载均衡器支持在前端连接上进行管道连接。HTTP它们不支持后端连接HTTP上的流水线。
应用程序负载均衡器支持以下HTTP请求方法:GET、HEAD、POST、PUT、DELETEOPTIONS、和。PATCH
应用程序负载均衡器在前端连接上支持以下协议:HTTP/0.9、/1.0、/HTTP1.1 和 /2。HTTP HTTP您只能将 HTTP /2 与HTTPS监听器一起使用,并且可以使用一个 HTTP /2 连接并行发送最多 128 个请求。应用程序负载均衡器还支持从HTTP到 WebSockets的连接升级。但是,如果连接升级,Application Load Balancer 侦听器路由规则和 AWS WAF 集成将不再适用。
默认情况下,应用程序负载均衡器在后端连接(到注册目标的负载均衡器)上使用 HTTP /1.1。但是,您可以使用协议版本通过 HTTP /2 或 g RPC 将请求发送到目标。有关更多信息,请参阅协议版本。默认情况下, 标头在后端连接上受支持。对于来自没有主机标头的客户端的 HTTP /1.0 请求,负载均衡器会为在后端连接上发送的 HTTP /1.1 请求生成主机标头。主机标头包含负载均衡器的DNS名称。
经典负载均衡器在前端连接(客户端到负载均衡器)上支持以下协议:HTTP/0.9、/1.0 和 /1.1 HTTP。HTTP他们在后端连接(注册目标的负载均衡器)上使用 HTTP /1.1。默认情况下, 标头在后端连接上受支持。对于来自没有主机标头的客户端的 HTTP /1.0 请求,负载均衡器会为在后端连接上发送的 HTTP /1.1 请求生成主机标头。主机标头包含负载均衡器节点的 IP 地址。
Application Load Balancer 和经典负载均衡器会将 X-Forwarded-For、X-Forwarded-Proto 和 X-Forwarded-Port 标头自动添加到请求。
应用程序负载均衡器在将主机标头中的HTTP主机名发送到目标之前,将其转换为小写。
对于使用 HTTP /2 的前端连接,标头名称使用小写。在使用 HTTP /1.1 将请求发送到目标之前,以下标头名称将转换为混合大小写:X-Forwarded-For、X-Forwarded-Proto、X-Forwarded-Port、Host、X - Amzn-Trace-Id、Upgr ade 和 Connection。所有其他标头名称是小写的。
Application Load Balancer 和经典负载均衡器将响应代理返回客户端后,遵守来自传入客户端请求的连接标头。
当使用 HTTP /1.1 的应用程序负载均衡器和经典负载均衡器收到 Expect: 100-Continue 标头时,它们会立即以 HTTP/1.1 100 继续响应,无需测试内容长度标头。Expect: 100-Continue 请求标头不会转发到其目标。
使用 HTTP /2 时,应用程序负载均衡器不支持来自客户端请求的 Exp ect: 100-Continu e 标头。Application Load Balancer 不会以 HTTP/2 100 继续或将此标头转发给其目标。
应用程序负载均衡器的以下大小限制是无法更改的硬限制:
在创建负载均衡器时,您必须选择使其成为内部负载均衡器还是面向 Internet 的负载均衡器。
面向 Internet 的负载均衡器的节点具有公共 IP 地址。面向 Internet 的负载均衡器的DNS名称可以公开解析为节点的公有 IP 地址。因此,面向 Internet 的负载均衡器可以通过 Internet 路由来自客户端的请求。
内部负载均衡器的节点只有私有 IP 地址。内部负载均衡器的DNS名称可以公开解析为节点的私有 IP 地址。因此,内部负载均衡器只能路由来自有权访问负载均衡器的客户端的请求。VPC
面向 Internet 的负载均衡器和内部负载均衡器均使用私有 IP 地址将请求路由到您的目标。因此,您的目标无需使用公有 IP 地址从内部负载均衡器或面向 Internet 的负载均衡器接收请求。
如果您的应用程序具有多个层,则可以设计一个同时使用内部负载均衡器和面向 Internet 的负载均衡器的架构。例如,如果您的应用程序使用必须连接到 Internet 的 Web 服务器,以及仅连接到 Web 服务器的应用程序服务器,则可以如此。创建一个面向 Internet 的负载均衡器并向其注册 Web 服务器。创建一个内部负载均衡器并向它注册应用程序服务器。Web 服务器从面向 Internet 的负载均衡器接收请求,并将对应用程序服务器的请求发送到内部负载均衡器。应用程序服务器从内部负载均衡器接收请求。
您为负载均衡器指定的 IP 地址类型决定了客户端与负载均衡器通信的方式。
下表描述了每种负载均衡器类型支持的 IP 地址类型。
您为目标组指定的 IP 地址类型决定了负载均衡器与目标通信的方式。
下表描述了每个目标组协议支持的 IP 地址类型。
最大传输单位 (MTU) 决定了可以通过网络发送的最大数据包的大小(以字节为单位)。连接越MTU大,单个数据包中可以传递的数据就越多。以太网帧由数据包(即您发送的实际数据)以及相关网络开销信息组成。通过互联网网关发送MTU的流量为 1500。这意味着,如果数据包超过 1500 字节,则将其分段以使用多个帧发送,或者如果在 IP 标头中设置 ,则将其丢弃。
负载平衡器节点上的MTU大小不可配置。巨型帧 (9001MTU) 是应用程序负载均衡器、网络负载均衡器和经典负载均衡器的负载均衡器节点的标准配置。网关负载均衡器支持 8500 MTU。有关更多信息,请参阅《网关负载均衡器用户指南》中的最大传输单位 (MTU)。
该路径MTU是源主机和接收主机之间路径上支持的最大数据包大小。路径MTU发现 (PMTUD) 用于确定两台设备MTU之间的路径。如果客户端或目标不支持巨型帧,则路径MTU发现尤其重要。
当主机发送的数据包大于接收主机的数据包或大于路径上设备的数据包时,接收主机或设备会丢弃该数据包,然后返回以下ICMP消息:。MTU MTU这将指示传输主机将有效负载拆分为多个较小的数据包,并重新传输。
如果继续丢弃大于客户端或目标接口MTU大小的数据包,则 Path MTU Discovery (PMTUD) 可能无法正常工作。为避免这种情况,请确保 Path MTU Discovery 端到端运行,并且已在客户端和目标上启用了巨型帧。有关路径MTU发现和启用巨型帧的更多信息,请参阅 Amazon EC2 用户指南中的路径MTU发现。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/713.html