几年前似乎就有这样的担忧。您可以阅读以下描述一些潜在问题的有趣文章:Elastic Load Balancer: An Elasticity Gotcha
- 一个新的 ELB IP 被添加到您的 ELB 池中。保留旧 DNS 条目的另一个应用程序的客户端将访问您的应用程序:
问题是 DNS 解析被缓存在互联网上的许多层。当 ELB 扩展并从全局池中获取新的虚拟设备 IP 地址时,某处的某些客户端可能仍在使用该 IP 地址作为不同 ELB 的 DNS 名称的解析。这个其他 ELB 甚至可能不属于你。几个小时前,另一个具有不同 DNS 名称的 ELB 从 DNS 查找中返回了该 IP 地址。现在,该 IP 地址正在为您的 ELB 服务。但是某处的某些客户端可能仍在使用该 IP 地址来尝试访问不属于您的应用程序。
- ELB IP 将从您的 ELB 池中删除并分配给其他应用程序的 ELB 池。保留旧 DNS 条目的客户端最终会访问其他应用程序:
当 ELB 缩减并将虚拟设备 IP 地址释放回全局池时,就会出现相反的情况。某处的某些客户端可能会继续将您的 ELB 的 DNS 名称解析为现在放弃的 IP 地址。当地址返回到池中时,该客户端连接到您的服务的尝试将失败。如果相同的虚拟设备 IP 随后为另一个 ELB 投入使用,则使用缓存但不再是当前 DNS 解析的 ELB DNS 名称的客户端将被定向到另一个 ELB 虚拟设备,然后向前返回- 结束不属于您的实例。
现在,这篇文章来自 2009 年,截至 2010 年 3 月,亚马逊已经部分解决了这个问题:
ELB IP 地址在从 ELB 的 DNS 池中退出后,将继续将流量引导到 ELB 一小时
请记住,某些缓存 DNS 条目较长时间的客户端仍可能受到影响。