AWS:使用单个RDS实例进行多区域设置

我试图在多区域scheme中扩展我们的Web应用程序(PHP,MySQL,memcache)。 目前,我们正在使用ELB背后的两个EC2实例和一个RDS实例的设置,所有这些实例都在US-EAST(Virginia)地区。

我们也希望在欧盟(爱尔兰)地区有一席之地。 这意味着至less有一个新的EC2实例(与其他服务相同的应用程序相同)。

我复制了所需的AMI,设置新的实例,在Route53中设置相同的ELBconfiguration(SSL终止所需的)和configuration的基于延迟的路由。 它按照build议工作。

但是,来自欧盟的客户有速度问题。 这是由于欧盟EC2实例连接到美国的RDS实例。 据我所知,亚马逊还没有启用RDS多区域复制。

对于如何在使用单个RDS实例时如何正确加速整个设置有什么build议吗?

另外,有关如何扩大规模的一般想法? 理想情况下,我们希望继续使用RDS技术的各种原因。 不过,我接受build议(我猜接下来的想法是托pipe我们自己的MySQL服务器)。

由于低延迟,RDS对于单区域部署非常有用,但当您开始向不同地区扩展时,它将成为一个不同的故事。 如果你想保留RDS实例,你可以在EU地区build立自己的MySQL服务器并进行复制。 这样,速度将会更加可以接受。

你应该仔细考虑为什么你需要在美国和欧盟有相同的数据。 毕竟这些是不同的用户。

在多地区环境下运行要复杂得多,通常由于美国和欧盟之间固有的延迟而回报业绩。

即使您退出RDS并尝试在区域之间复制数据,无论是asynchronous还是同步,您都将遇到延迟问题,从而给用户造成不良影响。

最简单的方法是在欧盟build立一个专用的RDS服务器,在这些实例之间不分配任何东西。

最近,AWS通过宣布跨区域RDS只读副本 ,朝我之前询问的方向迈进了一步。 然而,这只是向真正的多区域设置迈出的一小步。

我相信这是你想要的。 RDS复制到EC2在不同的区域运行mysql。

https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/

提高延迟的一个可能的解决scheme是使用Amazon ElastiCache(基本上是Memcached)。

您必须在每个区域(US-EST和EU)中创build一个ElastiCache节点,并尽可能让您的应用程序逻辑(EC2)使用caching节点。 如果你走这条路线,你将不得不重新构build你的应用程序1)知道要caching什么,什么时候和2)尽可能地从本地ElastiCache节点获取。