具有自动服务启动的冷备用的高可用性负载平衡

我正在尝试在AWS中为正在运行的应用程序设置高可用性群集。 该应用程序位于Oracle RDS前面的EC2实例上。 如果我使用传统的负载均衡,并且同时运行两个实例,那么数据库就会损坏,因为这两个实例将对数据库进行更改,但不会彼此识别,所以我需要执行主动/被动负载平衡。

我的问题是,如果被动实例正在运行应用程序,即使没有stream量进入,它也会在0.1%左右的时间内对数据库进行更改。 这意味着我需要确保当主节点健康时应用程序服务没有在备份节点上运行。

我的理想场景是运行主动/被动故障转移,可以执行以下操作:

  1. 运行状况检查主节点
  2. 如果主节点健康,则将stream量转发到主节点
  3. 如果主节点不健康,请运行启动服务的脚本,然后将stream量转发到辅助节点

我一直在研究HAProxy,但是我还没有看到在主节点出现故障的情况下让HAProxy在备份服务器上运行任意脚本的方法。

我见过关于使用keepalived的一些讨论。 我在Keepalived中build议可能吗? 还有什么可以做到的吗?