我对 AWS 总体来说还是新手,所以这可能是一个新手问题。我已经设置了一个带有 readreplica 的 RDS 实例,并通过 AWS Opsworks 将我的虚拟机连接到主数据库。理想情况下,我希望主服务器和从服务器之间的读取平衡,并且写入仅发送到主服务器。
当然,我是在代码中做到这一点的,但这会很混乱,特别是当我想添加更多的 RDS 从属或者删除一个或多个实例时。
那么我是否遗漏了什么? AWS 是否提供了一些我尚未遇到的配置,以便无缝地执行此操作?
答案1
AWS 目前不支持以这种方式对 RDS 实例进行负载平衡,因此您需要自己实现这种功能。您可以采取多种不同的方法来自己设置这样的功能:
正如您所说的,您可以在自己的代码中执行此操作,但这会有点混乱。
您可以尝试使用轮询 DNS实现基本形式的负载平衡。如果您不熟悉循环 DNS,它基本上是一种使用 DNS 为每个查询返回不同 IP 地址的方法。请参阅 Amazon 的文档加权路由有关在 Route53 中设置的更多信息。
您可以加入一个简单的代理/负载平衡器,例如HAProxy或者平衡在您现有的应用服务器之一上或单独的小型实例上,让它管理 RDS 实例之间的负载平衡。
可能还有其他选项(包括其他负载平衡应用程序),但其中一个可能是满足您需求的最简单的解决方案。