跨区域负载均衡(cross-zone load balancing)
时,每个负载均衡器的节点可以将流量转发到所有注册的机器上跨区域负载均衡(cross-zone load balancing)
时,每个负载均衡器的节点只能将流量转发到同一个AZ的机器上下图便于理解该特性,EC2分布在两个AZ,AZ1有2台,AZ2有8台
图左侧是开启cross-zone load balancing
的效果,每个EC2都收到10%的流量,因为每个负载均衡器节点上都收到了50%的请求,它们分别能将请求转发到10台机器上:
图右侧是关闭cross-zone load balancing
的效果,AZ1的机器分别收到25%的流量,AZ 2的机器分别收到6.25%的流量,因为每个负载均衡器节点上都收到了50%的请求,它们只能将请求转发到同一个AZ的机器。
跨区域负载均衡
对于ALB,cross-zone load balancing
默认开启,且不能关闭
对于NLB和GWLB,默认cross-zone load balancing
是关闭的,
对于CLB,如果是通过控制台创建,则默认开启;如果是CLI创建,则默认关闭
从上图不难看出,开启了cross-zone load balancing
后,流量会通过负载均衡器的节点转发到另一个AZ的EC2上,此时会产生跨AZ流量。于是我们不得不讨论AWS这个令人无语的跨AZ流量问题
对于ALB和CLB,这部分跨AZ流量是不收费的
对于NLB,NLB的官方文档上语焉不详。但参考这篇文档 ,它确实会产生跨AZ流量费用:
When you enable cross-zone load balancing for your Network Load Balancer, regional data charges apply.
跨区域负载均衡
配置在AWS上控制台上进行更改。
例如CLB:
NLB: