似乎我的数据库实例在半夜发生了故障转移并更改了 IP 地址。我的网络服务器远程连接到它。从包含其内部 IP 的 Amazon DNS 服务中找到的 IP 地址似乎没有更新为该新地址。但是,如果我从本地计算机连接,则会返回正确的 IP,我可以连接,而且如果我使用网络服务器上的 IP 而不是主机名,它也可以正常连接。
如何让 Amazon 的 DNS 向我的网络服务器返回正确的外部 IP?
答案1
如果您在 AWS 中运行 RDS 实例,则会在该实例的属性中为您提供一个“端点”地址。因此,在运行多可用区 RDS 的情况下,每当您进行故障转移时,指针都会转移到另一个可用区中的故障转移节点。但是,当您的应用程序指向该端点时,您不必更新它们。
但是如果您查询端点的 IP 并将应用程序发送到该 IP,那么您注定会在未来的某个时候遇到问题;该 IP 不仅可能在故障转移的情况下发生变化,而且甚至可能在常规维护时段内发生变化,或者在您的实例重新启动或迁移到 AWS 架构内的其他 Xen 主机时也可能会发生变化。
据我所知,端点本质上就是一个 ELB 地址本身。当您的 RDS 中发生严重错误时,AWS 系统将发现您的不健康实例,将其从 ELB 中删除,并添加您的故障转移节点,以及启动一些脚本来提升该节点,我确信如此。
你可能还想看看这个答案:如果实例发生故障,Amazon RDS 终端节点会发生变化吗?