我已经跟踪了AWS docs to use a subdomain without migrating the parent domain.父域NS记录(朝向AWS DNS)的TTL为3600.在Route 53中,我已经设置了一个带有别名的A记录到堆栈中的负载均衡器(我无法设置TTL)这里).
我无法从AWS控制台输入别名记录的TTL.然而,一些消息来源称,这一变化可能需要60 seconds.
我刚刚在本地进行了一些测试,以检查DNS获取新堆栈所需的时间.这是更新Route 53中的别名DNS记录和能够在浏览器中访问新堆栈之间的时间:
>尝试#1:~4分钟
>尝试#2:~9分钟
>尝试#3:~7分钟
>尝试#4:~15分钟
这不应该在60秒内吗?所有客户可以承受的最长时间是多少?可以减少这个时间吗?什么是删除旧堆栈的安全时间?
解决方法
如果新访问者之前从未访问过您的网站并且其DNS解析程序未缓存您的记录(或者在很长时间之前访问过缓存已过期),他们将立即看到新记录.
Shouldn’t this be under 60 seconds?
它应该,但只有当您的客户尊重TTL时才会这样.一些客户端具有最小TTL,并且一些网络还具有DNS解析器,其可以是缓存结果.
Is it possible to reduce this time?
您必须记住,大多数访问者(假设这是一个公共站点)不会像您一样每隔几秒就坐在那里加载您的网站.大多数访问者最近可能不会访问该网站,并且他们的DNS解析程序可能没有缓存中的记录.大多数DNS解析器应该尊重你的TTL,但你不能保证这一点.
What is a safe time to delete the old stack?
你最好通过旧堆栈而不是DNS TTL来处理流量来判断这一点.如果您正在使用ELB,那么您应该能够查看旧版ELB在cloudwatch中每秒请求的请求数.等到它降到可接受的水平以下然后将其删除.
为了在切换后立即查看新堆栈,我建议只需手动刷新本地DNS缓存.让自己的客户自然地过期记录,以便看到它需要多长时间可能不会表明其他客户需要多长时间.
编辑,我注意到谷歌的公共DNS有一个工具,让你刷新缓存:
https://developers.google.com/speed/public-dns/cache
这可能会加快速度,因为很大一部分客户可能正在使用它.