【问题标题】:Dynamic ip changing in amazon elastic load balancer creating issue亚马逊弹性负载均衡器中的动态 ip 更改创建问题
【发布时间】:2014-08-29 04:22:29
【问题描述】:
我有一个子域,并将其指向一个亚马逊弹性负载均衡器,其中包括一些 EC2 实例。为了指向子域,我们创建了一条 CNAME 记录并输入负载均衡器的 DNS 名称的值。
现在我的问题是:
你知道弹性负载均衡器的IP地址是随机变化的。
因此,如果我从任何应用程序请求解析我的子域的 DNS,如果负载均衡器的 IP变了。
我应该等待新IP的传播吗?或者即使在 DNS 请求被解析之前弹性负载平衡发生变化,新 IP 也会实时传播?
【问题讨论】:
标签:
amazon-web-services
dns
subdomain
amazon-elb
dyndns
【解决方案1】:
您不必担心 ELB 的 IP 地址及其更改 IP 地址的趋势。而不是 CNAME 记录中的 IP 地址,您只需输入一个 ELB 将提供的 DNS 名称(IPv4 或 IPv6) 例如:Test-ELB-12345678.us-east- 1.elb.amazonaws.com
ELB 信息页面引用
注意:因为与 LoadBalancer 关联的 IP 地址集
可能会随着时间而改变,你不应该创建一个“A”记录
特定的 IP 地址。如果您想使用友好的 DNS 名称
负载均衡器而不是 Elastic Load 生成的名称
平衡服务,您应该为
LoadBalancer DNS 名称,或使用 Amazon Route 53 创建托管区域。
如需更多信息,请参阅Using Domain Names With Elastic Load
Balancing。
【解决方案2】:
几年前似乎就有这样的担忧。您可以阅读以下描述一些潜在问题的有趣文章:Elastic Load Balancer: An Elasticity Gotcha
- 一个新的 ELB IP 被添加到您的 ELB 池中。保留旧 DNS 条目的另一个应用程序的客户端将访问您的应用程序:
问题在于 DNS 解析缓存在 Internet 上的许多层中。当 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 条目较长时间的客户端仍可能受到影响。