亚马逊弹性负载均衡器中动态IP更改引发问题

3
我有一个子域名,并将其指向了包含几个EC2实例的Amazon弹性负载均衡器。为了指向子域名,我们创建了一个CNAME记录,并将DNS名称的值放入负载平衡器中。
现在我的问题是:
您知道弹性负载平衡器的IP地址会随机更改。
所以,如果我从任何应用程序请求解析子域名的DNS,是否有可能存在DNS传播延迟问题(这可能导致返回旧的负载平衡器IP地址),如果负载平衡器的IP地址已更改?
我该等待新IP的传播吗?还是即使弹性负载平衡器更改了,新IP也会实时传播,即使DNS请求得到解决?
2个回答

0

您不需要担心ELB的IP地址以及其变化的趋势。在CNAME记录中,您只需要放置一个DNS名称(IPv4或IPv6),即ELB提供的一个名称,例如:Test-ELB-12345678.us-east-1.elb.amazonaws.com

来自ELB信息页面的引用

注意:由于与负载均衡器关联的IP地址集合随时间可能会发生更改,因此您不应创建任何特定IP地址的"A"记录。如果您想要使用友好的DNS名称来代替弹性负载平衡服务生成的名称,您应该为负载平衡器DNS名称创建CNAME记录,或使用Amazon Route 53创建托管区域。有关更多信息,请参见使用域名与弹性负载平衡


0

好像几年前有这样的担忧。您可以阅读以下有趣的文章,其中描述了一些潜在问题:弹性负载均衡器:一个弹性陷阱

  • 一个新的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 虚拟设备,然后进入不属于你的后端实例。

现在,这篇文章是来自 2009 年的,截至 2010 年 3 月,亚马逊已经部分解决了这个问题:

ELB IP 地址在从该 ELB 的 DNS 池中撤回后仍将继续将流量定向至 ELB 一个小时。

请记住,某些长时间缓存 DNS 条目的客户端仍可能会受到影响。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接