我正在使用一个使用AWS RDS数据库的web应用程序,目前,它只在印度(孟买原产地)上可用,从现在起,我想让它在多个地区(美国-俄亥俄州和孟买都)可用。在这种情况下,是否可以针对以下方案配置我的RDS
请求来自美国-俄亥俄州,由俄亥俄地区的RDS实例提供服务,请求来自印度,数据将由孟买地区的RDS实例提供服务,两个RDS实例相互复制,这意味着两个实例充当单个数据库
提前感谢
发布于 2020-01-22 14:38:35
典型的(单服务器)数据库将所有信息保存在一个位置(如孟买)。
您可以在另一个地区(例如俄亥俄州)添加一个 replica。这会将信息复制到俄亥俄州,但俄亥俄州的副本只能用于查询(读取)数据。所有更新都需要对孟买的主数据库进行。这使得查询速度更快,而不需要“多个母版”。
来自Working with Amazon Aurora Global Database
Aurora全局数据库由一个主控数据的AWS主区域和最多五个只读的辅助AWS区域组成。Aurora将数据复制到辅助AWS区域,典型的延迟不到一秒。您可以直接向主要AWS区域中的主要数据库实例发出写入操作。Aurora全局数据库使用专用的基础架构来复制您的数据,使数据库资源完全可用于服务应用程序工作负载。覆盖全球的应用程序可以使用辅助AWS区域中的读卡器实例进行低延迟读取。如果您的数据库在AWS区域中发生降级或隔离,您可以在一分钟内提升其中一个辅助AWS区域以承担全部读写工作负载。
主控数据所在的主要AWS区域中的Aurora集群同时执行读写操作。辅助地域的集群支持低延迟读取。您可以通过添加一个或多个数据库实例(Aurora副本)来独立扩展辅助群集,以服务于只读工作负载。对于灾难恢复,您可以删除并升级其中一个辅助群集,以允许完整的读写操作。
更进一步,您可以在所有DB实例都具有读写功能的情况下使用Work with Amazon Aurora Multi-Master Clusters:
在多主体集群中,所有DB实例都可以执行写操作。单个读写主实例和多个只读Aurora副本的概念不适用。当一个编写器数据库实例变得不可用时,不会有任何故障转移,因为另一个编写器数据库实例立即可用来接管失败实例的工作。我们将这种类型的可用性称为连续可用性,以区别于单主集群提供的高可用性(在故障转移期间具有短暂的停机时间)。
每个选项都是性能、成本和复杂性之间的权衡。Read Replica或全局数据库很可能足以满足您的需求,因为大多数数据库操作都是查询,而不是更新。
您应该尝试每个选项,并在应用程序上运行性能测试,以确认您正在实现所需的性能。此外,还审查了相关成本(由于拥有多个服务器,可能会翻倍,另外两个区域之间的数据传输还会有额外成本)。
此外,请注意,以上功能将根据您选择的数据库引擎而有所不同。(以上内容适用于运行MySQL的亚马逊极光。)
https://stackoverflow.com/questions/59853649
复制相似问题