【问题标题】:How to scale horizontally Amazon RDS instance?如何水平扩展 Amazon RDS 实例?
【发布时间】:2015-04-07 17:36:59
【问题描述】:

如何横向扩展亚马逊 RDS 实例? EC2 和负载均衡器+自动扩展非常容易实现,但如果我想扩展亚马逊 RDS? 我可以用更强大的实例升级我的 RDS 实例,或者我可以创建一个只读副本,我可以将 SELECT 查询定向到它。但是在这种模式下,如果我有一个面向阅读的 Web 应用程序,我不会扩展任何东西。那么,我可以创建具有自动缩放功能的 RDS 只读副本并使用负载均衡器对其进行平衡吗?

【问题讨论】:

标签: amazon-web-services amazon-ec2 load-balancing amazon-rds autoscaling


【解决方案1】:

您可以使用 HAProxy 对 Amazon RDS 只读副本进行负载平衡。检查此http://harish11g.blogspot.ro/2013/08/Load-balancing-Amazon-RDS-MySQL-read-replica-slaves-using-HAProxy.html。 希望这会有所帮助。

【讨论】:

    【解决方案2】:

    注意 RDS 涵盖多个数据库引擎 - mysql、postgresql、Oracle、MSSQL。

    一般来说,您可以扩展(更大的实例)、使用只读数据库或分片。如果您使用的是 mysql,请查看 AWS Aurora。考虑以最佳方式使用数据库——也许与 memcached 或 Redis 结合使用(两者都在 AWS Elasticache 下可用)。考虑使用搜索引擎(lucene、elasticsearch、cloudsearch)。

    一些通用资源:

    【讨论】:

    • 谢谢,我正在使用 mysql。据我了解,RDS 实例不支持自动缩放器和负载平衡。我想我会使用 memcached+readonly-db。应该够了:)
    【解决方案3】:

    如果您使用的是 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

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 2019-04-03
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2014-07-18
      • 2011-08-05
      • 1970-01-01
      相关资源
      最近更新 更多