涉及SQL时,使用Amazon EC2自动扩展

时间:2014-01-07 02:13:12

标签: sql amazon-web-services amazon-ec2 scalability distributed

我正在构建一个白板Web应用程序,其中包含运行Amazon EC2实例的客户端的自包含“房间”(目前只有一个)。命令通过websockets发送到PHP服务器,该服务器将所有命令存储在SQL数据库中。

到目前为止,我一直在使用Google Cloud SQL。我的计划是学习如何使用EC2进行扩展,并让所有实例都使用相同的远程数据库。我已经知道,由于远程SQL服务器的200毫秒写入延迟与本地SQL服务器的0.5毫秒写入延迟,这将无法工作。每次命令到达时,服务器都会写入。

我是可扩展性和分布式系统的新手。我的直觉告诉我,如果我的EC2和RDS实例位于同一区域,或者在EC2实例上本地使用SQL,我需要使用Amazon RDS并希望毫秒级延迟。我倾向于后者。这是我的问题:EC2是弹性。当我需要摆脱一个实例时会发生什么?

我现在能够想到的是以某种方式将每个EC2实例的SQL数据复制到主实例(甚至可能是Google Cloud SQL!)。换句话说,每个“房间”的所有读/写都在本地发生,并最终复制到主服务器以进行长期存储。如果一周后重新打开“房间”,则另一个EC2实例可以从主服务器获取数据,在本地使用它,并在销毁之前复制更改。

我的方法听起来是否正确 - 复制正确的概念在这里?如果是这样,那么我正在尝试做的事情已经存在多少支持?也就是说,我是否需要设置一个管理EC2实例的主服务器并手动分发/收集SQL数据(100%自定义实现),或者是否存在SQL的现有库/机制,甚至可能是EC2实例复制/管理?如果我的方法是错误的,那么更好的方法是什么?这是我不知道自己要研究什么的时候之一。谢谢!

1 个答案:

答案 0 :(得分:0)

我同意user02525或许看看使用Elasticache redis,听起来更符合你正在做的事情。