负载平衡RDS(在AWS中)

一般来说,我是AWS的新手,所以这可能是一个noob问题。 我已经使用readreplica设置了一个RDS实例,并通过AWS Opsworks将我的虚拟机连接到主数据库。 理想情况下,我希望主和从之间的读取平衡,写入只能到主。

当然,我在代码中这样做,但这将是凌乱的,尤其是如果我想添加更多的RDS从属,或者如果我删除一个或多个我的实例。

那么有什么我错过了? AWS提供的一些configuration,我还没有遇到,无缝做到这一点?

AWS目前不支持RDS实例的负载均衡,所以您需要自己实现这种事情。 你可以采取一些不同的方法来设置这样的事情:

  1. 正如你所说,你可以在你自己的代码中做到这一点,这将是一个小混乱。

  2. 您可以尝试使用循环法DNS来实现负载平衡的基本forms。 如果您不熟悉循环法DNS,则基本上是使用DNS为每个查询返回不同IP地址的一种方法。 有关加权路由的更多信息,请参阅Amazon关于在Route53中进行设置的文档。

  3. 您可以合并一个简单的代理/负载均衡器(如HAProxy) ,或者在您现有的一个应用程序服务器上或在单独的小型实例上平衡,并让它pipe理RDS实例之间的负载均衡。

有可能的其他选项(包括其他负载平衡应用程序),但其中一个可能会成为您的需求最简单的解决scheme。