3

我有一个子域,并将其指向一个亚马逊弹性负载均衡器,其中包括一些 EC2 实例。为了指向子域,我们创建了一个 CNAME 记录并输入负载均衡器的 DNS 名称的值。

现在我的问题是:

您知道弹性负载均衡器的 IP 地址是随机变化的。

因此,如果我请求从任何应用程序解析我的子域的 DNS,如果负载均衡器的 IP 已更改,是否有可能存在 DNS 传播延迟问题(这可能导致返回负载均衡器的旧 IP 地址)。

我应该等待新 IP 的传播吗?或者即使在 DNS 请求得到解析之前弹性负载平衡发生变化,新 IP 也会实时传播?

4

2 回答 2

0

您无需担心 ELB 的 IP 地址及其更改 IP 地址的趋势。而不是 CNAME 记录中的 IP 地址,您只需输入一个 ELB 将提供的DNS 名称(IPv4 或 IPv6) ,例如: Test-ELB-12345678.us-east-1.elb.amazonaws.com

来自 ELB 信息页面的报价

注意:由于与 LoadBalancer 关联的 IP 地址集可能会随时间而变化,因此您永远不应使用任何特定 IP 地址创建“A”记录。如果您想为负载均衡器使用友好的 DNS 名称,而不是 Elastic Load Balancing 服务生成的名称,您应该为 LoadBalancer DNS 名称创建 CNAME 记录,或使用 Amazon Route 53 创建托管区域。有关更多信息,请参阅将域名与 Elastic Load Balancing 结合使用

于 2014-07-09T09:22:43.527 回答
0

几年前似乎就有这样的担忧。您可以阅读以下描述一些潜在问题的有趣文章: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 条目较长时间的客户端仍可能受到影响。

于 2015-10-07T05:50:23.810 回答