如何横向扩展亚马逊RDS实例? EC2和负载均衡器+自动缩放极易实现,但如果我想扩展亚马逊RDS? 我可以用更强大的实例来升级我的RDS实例,或者我可以创建一个只读副本,我可以将SELECT查询引导到它。但是在这种模式下,如果我有一个面向读取的Web应用程序,我就不会扩展。那么,我可以使用自动缩放创建RDS只读副本并使用负载均衡器进行平衡吗?
答案 0 :(得分:6)
您可以使用HAProxy对Amazon RDS只读副本进行负载平衡。检查此http://harish11g.blogspot.ro/2013/08/Load-balancing-Amazon-RDS-MySQL-read-replica-slaves-using-HAProxy.html。 希望这会有所帮助。
答案 1 :(得分:2)
如果您使用的是PostgreSQL,并且工作负载可以通过某个密钥进行分区,并且不需要复杂的事务处理,那么您可以查看pg_shard扩展名。 pg_shard允许您创建跨多个服务器分片的分布式表。分布式表上的查询将透明地路由到正确的分片。
即使RDS没有安装pg_shard扩展,您也可以使用pg_shard扩展在EC2上设置一个或PostgreSQL服务器,并使用RDS节点作为工作节点。 pg_shard节点只需要存储一小部分元数据,这些元数据可以在其中一个工作节点中备份,因此它们的维护成本相对较低,可以扩展以适应更高的查询速率。
有一个指向CloudFormation模板链接的指南可自动设置所有内容,请访问:https://www.citusdata.com/blog/14-marco/178-scaling-out-postgresql-on-amazon-rds-using-masterless-pg-shard
答案 2 :(得分:1)
注意RDS涵盖了几个数据库引擎 - mysql,postgresql,Oracle,MSSQL。
一般来说,您可以扩展(更大的实例),使用只读数据库或分片。如果您使用的是mysql,请查看AWS Aurora。考虑以最佳方式使用数据库 - 可能与memcached或Redis结合使用(均可在AWS Elasticache下使用)。考虑使用搜索引擎(lucene,elasticsearch,cloudsearch)。
一些一般资源: