亚马逊AWS:多个实例,相同的数据库

时间:2012-10-26 09:50:25

标签: database amazon-s3 amazon-web-services webserver amazon-ebs

在亚马逊AWS设置中,两个克隆实例(在不同区域)如何引用和共享相同的“基本”动态Web服务器文件以及从同一主数据库读取/写入?

我们当前的AMI实例目前正在EBS支持的卷上。然而,显然试图在两个实例之间共享EBS卷是一个坏主意。我从 this older 2009 answer 收集了很多,但除了Amazon S3之外,它没有分解可能存在的替代方案。或者S3是唯一的选择吗? OP的推理在3年后仍然有效吗?我们有多个实例实时共享数据库数据的存储选项是什么?

  
    

如果您需要共享数据,可以设置所有实例都可以访问的服务器。如果您想为所有实例创建一个简单的存储区域,可以使用Amazon的S3存储服务来存储分布式和可扩展的数据。

         

迁移到云端,您可以使用完全相同的设置,但您可以使用S3替换文件服务器,或者让所有实例连接到您的文件服务器。

  

3 个答案:

答案 0 :(得分:3)

确认:您想要共享a)相同的数据库和b)两个实例之间的相同文件,每个实例位于不同的区域(不同的可用区域)?

跨多个地区共享同一个数据库并不容易。您最好的选择是异步,多主复制或手动分片策略。但是,要安全有效地执行这些操作,必须仔细规划,并且必须在编写此应用程序时编写应用程序。 This article将为您提供与使用MySQL进行多主复制相关的警告的概述。

跨区域共享文件也可能是一个挑战,因为您有很多选项,但它通常比对SQL数据库执行相同操作更容易。变量包括:

  • 可以接受多少复制延迟?
  • 你打算写两个地方吗?
  • 您在本地需要什么样的I / O性能?
  • 文件的更改频率如何?

GlusterFS通常是大多数用例的妥协。然而,就在昨天,AWS宣布了一项新功能allows inter-region copies of EBS snapshots。根据您的需要,这也值得研究。

答案 1 :(得分:2)

如果您有EBS支持的AMI,那么每个服务器实例将拥有自己存储在AMI中的EBS卷数据的“副本”,它们将不会共享完全相同的物理卷。这与您使用实例存储AMI然后将特定EBS卷安装到每个实例的情况不同。

答案 2 :(得分:0)

要点1)GlusterFS是多区域和多区域复制的理想选择。在跨区域复制期间会有一些复制滞后,请在您的架构中注意这一点

第2点)如果您的EBS快照大小较小,并且您可以使用几小时的复制延迟,则可以使用Amazon EBS快照复制功能。但这需要在目标区域上分离/附加卷。

第3点)S3仍然是此用例的选项