多可用区 RDS 测试故障转移和连接监控

amp*_*ito 6 monitoring failover amazon-web-services amazon-rds

我的问题有两个部分:

  1. 出于测试目的启动 RDS 故障转移的最佳方法是什么?
  2. 如何在故障转移期间监控连接以观察 AWS 将用户重新连接到备用实例所需的时间?

关于第 (1) 部分:如果我理解正确,所有实例修改都是在备用服务器上进行的,然后 AWS 通过在主服务器更新时将 CNAME 翻转到备用服务器来进行故障转移,所以如果我要创建任何类型的实例修改并选择“立即应用”,它应该会导致故障转移,对吗?

关于第 (2) 部分:我正在专门寻找一种监视 Oracle RDS 实例故障转移的方法,无论是通过 lambda 函数、bash 脚本还是其他方式。据我所知,即使我允许所有 ICMP 流量通过安全组,也不可能对 RDS 使用 ping。我可以使用 telnet 或 SQL 客户端毫无问题地进行连接。不过,我想要的是某种方式,例如在故障转移期间定期 ping 数据库以查看与连接字符串关联的 IP 何时切换以及需要多长时间。有什么建议?

Ant*_*ace 5

  1. 正确,RDS 将在故障转移实例上进行修改,然后故障转移到它。根据他们的文档

多可用区部署的可用性优势还扩展到计划维护和备份。在系统升级(如操作系统修补或数据库实例扩展)的情况下,这些操作首先应用于备用数据库,然后再进行自动故障转移。因此,您的可用性影响同样只是完成自动故障转移所需的时间。

要模拟故障转移,只需在重新启动时使用故障转移重新启动,而不是同时重新启动。从链接的文档:

当您想要模拟数据库实例的故障进行测试,或在发生故障转移后将操作恢复到原始可用区时,通过故障转移重启是有益的。

  1. 编写一个脚本,定期与 SQL 客户端连接并在您喜欢的表上执行快速选择。您可以使用它来衡量故障转移期间的真正停机时间;我们有一个与此非常相似的工具,用于在将测试 RDS 应用到生产 RDS 之前获取对测试 RDS 的修改估计时使用。我们的工具只是向控制台写入一个时间戳以及它是否每隔几秒就失败/成功。该工具会在重新启动之前写入成功,期间失败,并在切换完成后再次成功。

其他资源: