AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 997069
Accepted
Barry Chapman
Barry Chapman
Asked: 2019-12-30 20:03:58 +0800 CST2019-12-30 20:03:58 +0800 CST 2019-12-30 20:03:58 +0800 CST

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

  • 772

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

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

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

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

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

amazon-web-services
  • 1 1 个回答
  • 4786 Views

1 个回答

  • Voted
  1. Best Answer
    MLu
    2019-12-30T20:37:05+08:002019-12-30T20:37:05+08:00

    几个选项和注释...

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

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

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

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

    5. 使用弹性 IP。那也可以解决你的问题。当附加到正在运行的实例时,它们不会产生任何费用。

    6. 使用 AWS RDS,可能是无服务器的Aurora,在不使用时几乎没有成本。所有的管理、故障转移等都将为您完成。

    • 2

相关问题

  • 与 AWS 中的其他系统相比,CentOS 报告的总内存较低

  • 如何在 Amazon Linux 服务器上升级到 Java 1.8?

  • 了解 Amazon AWS 使用数据

  • 亚马逊提供的负载均衡服务体验如何?

  • ELB 中现有节点的 AWS 自动缩放问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve