当 IP 改变时,是否可以强制更新 AWS 中的 Route53 DNS 解析器缓存?

当 IP 改变时,是否可以强制更新 AWS 中的 Route53 DNS 解析器缓存?

我在 AWS 中设置了多个 VPC,并且所有实例都使用预配置的 IP 地址,即 -不是使用Elastic IP Addresses

当任何给定实例启动时,它都会在机器上执行一个脚本(发布网络),该脚本获取实例​​ ID、区域 ID(来自本地配置)和区域等 - 一旦获得这些信息,它就会更新Route 53这些实例的私有托管区域中的 DNS 信息。

这样做的原因基本上是为了我可以使用 DNS 作为服务器连接字符串。我的 Web 服务器和数据库服务器位于私有子网中,当 Web 服务器连接到数据库时 - 它只使用映射staticdns.mydomain.private到实例私有 IP 地址的 IP 地址。这样,当实例重新启动或 IP 由于其他原因发生变化时,就不需要进行大量重新配置。

这一切都很好,而且它有效 - 但有一个警告。解析新的 DNS 映射时会有延迟,我不确定它有多长 - 它不是很长,但它似乎有点随机(可能是 TTL?)。在这段时间内,解析器具有老的IP 缓存,我们将遇到从 Web 服务器到数据库的连接失败。我更希望这个缓存在更新时被释放,但我不知道在哪里可以找到它。

有人知道是否有办法刷新 Route 53 中私有区域内的 DNS 解析器缓存吗?我nscd也尝试在服务器上使用,但似乎没有帮助。

答案1

一些选项和注释...

  1. 如果服务器位于同一 VPC 或对等 VPC 中,则使用其私有 IP 进行通信,而不是使用公共 IP。实例停止/重新启动时,私有 IP 保持不变。

  2. 旧记录缓存在主机上,而不是 Route 53 中。nscd一旦一个 IP 发生变化,您就必须刷新所有其他主机的缓存,这需要大量自动化工作。此外,一些应用程序和框架还会将记录缓存在 nscd 之外,因此在需要时很难刷新所有内容。

  3. 您可以将 DNS 记录的 TTL 降低到 60(= 1 分钟),这意味着解析的记录将不会缓存超过一分钟。这与 AWS RDS 用于故障转移机制的方法相同。

  4. 使用网络负载均衡器 (NLB)- 即使服务器的实际 IP 发生变化,它也会为您的服务器提供稳定的 IP。然而,这有点过头了。

  5. 使用弹性 IP。这也能解决您的问题。当它们附加到正在运行的实例时,它们不花费任何费用。

  6. 可能使用 AWS RDS无服务器 Aurora不使用时几乎不产生任何费用。所有管理、故障转移等工作都将由我们为您完成。

相关内容