如果AWS ELB没有静态IP,这是否意味着如果IP在客户端的DNS记录到期之前发生变化,客户端将无法访问ELB指向的资源?
或者它实际上是否保留旧IP最多24小时(最大DNS TTL),以便永远不会发生这种情况?
编辑:澄清:
DNS记录缓存在客户端。例如。当客户端首次查询*.elb.amazonaws.com
时,它会返回12.34.56.78
。对于*.elb.amazonaws.com
的后续查询,它只使用12.34.56.78
而不是进行另一次DNS查找(除非DNS记录过期,如TTL所示)。
因此,如果ELB的内部IP发生变化但DNS记录仍指向旧记录,那么它无法访问该资源吗?
答案 0 :(得分:1)
致Dusan link的信用:用户控制的权威名称服务器只能为CNAME
记录api.example.com
指定TTL(最长可达数年) *.elb.amazon.com
,不会发生变化。
将*.elb.amazon.com
解析为实际的IP 12.34.56.78
是由亚马逊的名称服务器完成的,其TTL为60秒。
因此亚马逊只需要保留旧IP 60秒,以确保所有缓存的ELB IP记录都有效。
答案 1 :(得分:0)
Elastic Load Balancer服务旨在自动检测Elastic Load Balancer本身任何组件的故障并从中恢复(部分恢复可能需要更换负载均衡器并使用新的IP地址)
因此建议使用CNAME分配DNS, 如果您的DNS提供商不支持CNAMES,您可以查看Route 53。
CNAME代表Canonical Name。 CNAME记录可用于将一个名称别名为另一个名称。 Elastic Load Balancer会公开DNS名称,AWS将对ELB的内部IP地址进行更新等。
答案 2 :(得分:0)
AWS ELB提供DNS名称而不是IP地址,因为AWS内部管理的场景后面有多个ELB用于高可用性和容错。
如果内部服务器发生更改,AWS将确保内部DNS映射即时发生。
如果要将自定义域名映射到Elastic Load Balancer,那么由于这些内部复杂性,您需要使用CNAME而不是IP地址。