![跨区域的 RDS 复制](https://linux22.com/image/588897/%E8%B7%A8%E5%8C%BA%E5%9F%9F%E7%9A%84%20RDS%20%E5%A4%8D%E5%88%B6.png)
我们正在使用 Amazon AWS 提供网络服务,但考虑到其基础设施近期的不稳定性,我们正在尝试弄清楚如何跨多个区域运行我们的应用程序以获得额外的冗余。
理想情况下,我们会在多个区域中以主动-主动配置运行整个应用程序,但我们主要担心的是我们正在使用 RDS,据我所知它无法跨区域复制。
一种可能的解决方案(虽然我们还没有尝试或证明它会起作用)是mysqldump
每小时左右进行一次 EBS 快照,但这意味着我们将被迫以主动-被动配置运行。我们的数据最多会落后一个小时。当我们进行故障转移并且主服务器恢复时,这会带来数据同步方面的问题,因此这不是最好的解决方案。
有没有经过验证的跨区域复制 RDS 的解决方案?
答案1
我想简短的回答是:不能这样做。
如果要这样做,您需要运行自己的 MySQL 实例,而不是使用 RDS。答案很蹩脚,我很惊讶亚马逊决定不支持多区域复制,因为他们据称致力于可扩展、冗余和容错基础设施。
那好吧 :\
答案2
查看多可用区复制功能。我认为这可以满足您的需求,尽管它是一个主备模式,但至少它是一个热备用模式:http://aws.amazon.com/rds/mysql/#features
更新:
我发帖有点仓促。这将是您希望实现的冗余级别与您愿意花费的金钱之间的问题。如果钱不是问题,那么基于区域的复制很可能是最好的,但是您还需要考虑您的应用程序层。如果成本不是那么大的问题,那么多可用区可能更简单,并且根据亚马逊最新的中断报告,只有 2.5% 的多可用区 RDS 没有自动故障转移到其辅助节点,相比之下,所有其他单可用区节点几乎完全故障。
除非您运行具有多区域集群或复制的完整 MySQL 实例,否则 RDS 似乎不支持任何跨区域复制。