迁移 - 以零停机时间更改 DNS 中 A 记录的 IP

Migration - Changing IP of A Record in DNS with Zero downtime

我正在将我的 API 从提供商迁移到 AWS。

我的 A 记录的 TTL 为 30 秒,所以我知道在 30 秒内旧的 ip 将被浏览器等获取。

我想在这 30 秒 TTL 开始时收到通知,以便停止处理新的 api 请求并使迁移成为零错误迁移。

我怎样才能知道从以前的提供商 ip 切换到 AWS ip 的确切时间?

你不能在任何实际意义上。

您误解了 DNS 的工作原理。 DNS 由一个全球复制的系统组成,该系统将 DNS 名称解析为 IP 地址(在其基本级别)。此复制需要多长时间,因人而异。最终我能指望复制吗?我能否管理或控制此复制,否。

TTL 是生存时间值。这是建议而非要求。许多 DNS 解析器不尊重此值。典型的 TTL 以小时、天或周为单位。不是秒。许多客户端会忽略一个短的 TTL。

如果您希望接近零停机时间,最佳实践方法是什么?您复制您的服务,以便旧的 DNS 条目和新的 DNS 条目都能工作。预计这需要几天而不是几秒钟。

如果您也将记录(注册)转移到 AWS,那么再增加一两天。所有注册商都会告诉您,该过程可能需要数天才能完成。还有一个风险(我曾多次从 Network Solutions 转向 Route 53)转移请求在以后被撤销。即使在支付了 AWS 费用并更新了记录之后,由于某些 "unknown" 原因,该域在数周后仍跳回了 Network Solutions。

在我的最佳实践中,我通知我的客户为关键任务系统计划 30 天。