如果AWS ELB没有静态IP,这不意味着如果IP在客户端的DNS记录到期之前更改,客户端将无法访问ELB所指向的资源吗?
或者它是否实际上保留了最长24小时的旧IP (最大DNS TTL),以便永远不会发生这种情况?
编辑:需要澄清:
DNS记录缓存在客户端。例如:当客户端第一次查询*.elb.amazonaws.com时,它返回12.34.56.78。对于对*.elb.amazonaws.com的后续查询,它只需使用12.34.56.78,而不是执行另一个DNS查找(除非DNS记录按照TTL的指示过期)。
那么,如果ELB的内部IP发生变化,但DNS记录仍然指向旧的IP,那么它将无法访问资源?
发布于 2017-12-17 00:01:38
对杜桑的链接的信任:用户控制的权威名称服务器只能为CNAME record api.example.com to *.elb.amazon.com指定TTL (可以持续数年),这不会更改。
将*.elb.amazon.com解析为实际的IP 12.34.56.78是由亚马逊的名称服务器完成的,该服务器的TTL为60秒。
因此,Amazon只需保留60秒的旧IP,以确保所有缓存的ELB IP记录都是有效的。
发布于 2017-12-16 02:16:22
弹性负载均衡器服务旨在自动检测和从弹性负载均衡器本身的任何组件的故障中恢复(该恢复的一部分可能需要替换负载均衡器并使用新的IP地址)
因此,建议使用CNAMES分配DNS,如果DNS提供者不支持CNAMEs,您可以查看53号公路。
CNAME代表规范名称。CNAME记录可用于将一个名称化名为另一个名称。弹性负载均衡器公开DNS名称,AWS将做内部IP地址更新ELB等。
发布于 2017-12-16 02:19:32
AWS ELB提供一个DNS名称,而不是IP地址,因为在AWS内部管理的场景后面有多个ELB运行,以实现高可用性和容错。
如果内部服务器发生更改,AWS将确保内部DNS映射立即发生。
当您想要将自定义域名映射到弹性负载均衡器时,这就是为什么您需要使用CNAME而不是IP地址,因为这些内部复杂性。
https://stackoverflow.com/questions/47841500
复制相似问题