负载平衡 RDS(在 AWS 中)

Ram*_*eya 5 amazon-web-services rds

我一般是 AWS 的新手,所以这可能是一个菜鸟问题。我已经设置了一个带有只读副本的 RDS 实例,现在通过 AWS Opsworks 将我的 VM 连接到主数据库。理想情况下,我希望主机和从机之间的读取平衡,而写入只能转到主机。

当然,我在代码中执行此操作,但这会很麻烦,尤其是如果我想添加更多 RDS Slaves 或删除一个或多个实例时。

那么我错过了什么吗?AWS 是否提供了一些我还没有遇到过的配置来无缝地做到这一点?

Bru*_*e P 4

AWS(目前)不支持以这种方式实现 RDS 实例的负载平衡,因此您需要自己实现此类操作。您可以采取多种不同的方法来自行设置类似的内容:

  1. 正如您所说,您可以在自己的代码中执行此操作,这会有点混乱。

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

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

可能还有其他选项(包括其他负载平衡应用程序),但其中之一可能是满足您需求的最简单的解决方案。