在跨区域负载均衡配置不同的情况下,ELB DNS 和流量如何运行?

1 分钟阅读
0

我为两个可用区启用了 Elastic Load Balancer(ELB),但它在 DNS 中只显示一个 IP 地址。

简短描述

对于 Application Load Balancer,跨区域负载均衡始终处于启用状态。但是,对于 Network Load Balancer 和网关负载均衡器,跨区域负载均衡在默认情况下处于禁用状态。

禁用跨区域负载均衡后,可用区的每个目标组中必须至少有一个正常运行的目标启用跨区域负载均衡后,任意可用区的每个目标组中可以至少有一个正常运行的目标。上述两种情况都能使可用区保持正常运行,并允许您将相应的 Network Load Balancer 节点 IP 地址添加到 Network Load Balancer DNS。

解决方法

禁用跨区域负载均衡后

以下是在两个可用区(AZ1 和 AZ2)之间禁用跨区域负载均衡的示例。

可用区 1(AZ1)有 A 和 B 两个目标组,每个目标组都有其自己的目标 A1 和 B1。目标 A1 运行不正常,目标 B1 运行正常。由于目标 A1 运行不正常,因此 AZ1 也同样运行不正常。

可用区 2(AZ2)也有 A 和 B 两个目标组,每个目标组都有其自己的目标 A2 和 B2。目标 A2 和 B2 均运行正常。因为两个目标组中的每个目标均运行正常,所以 AZ2 也运行正常。

Network Load Balancer 在 Network Load Balancer DNS 中仅包含 AZ2 的 IP 地址,因为 AZ2 是唯一运行正常的可用区。因此,当您解析 Network Load Balancer 的域时,系统只会显示 AZ2 的 IP 地址。

然后,流量将通过 AZ2 中的 Network Load Balancer 节点路由到相应目标组中运行正常的目标。如果目标组中有多个运行正常的目标,则系统会根据负载均衡器的路由算法选择一个目标。

如果两个可用区都运行不正常,则系统将无法打开 Network Load Balancer。然后,每个 Network Load Balancer IP 地址都会添加到负载均衡器的 DNS 中。

启用跨区域负载均衡后

以下是启用跨区域负载均衡后,使用相同的可用区 AZ1 和 AZ2 的示例:

在 AZ1 中,目标 A1 运行不正常,目标 B1 运行正常。在 AZ2 中,目标 A2 和 B2 均运行正常。由于每个可用区都至少有一个正常运行的目标,因此 Network Load Balancer 在 Network Load Balancer 主机名的 DNS 中包含上述两个可用区的 IP 地址。

然后,流量将路由到任一 Network Load Balancer 并转发到相应目标组中的目标。如果目标组中有多个运行正常的目标,则系统会根据负载均衡器的路由算法选择目标。

如果 AZ1 中的目标 B1 运行不正常,AZ2 中的目标 B2 也运行不正常,则两个可用区域均运行不正常。由于两个可用区域均运行不正常,因此系统将无法打开 Network Load Balancer。然后,每个 Network Load Balancer IP 地址都会添加到负载均衡器的 DNS 中。因此,当您解析域时,系统会显示两个可用区的 IP 地址。


AWS 官方
AWS 官方已更新 1 年前