当涉及SQL时,使用AmazonEC2自动伸缩

当涉及SQL时,使用AmazonEC2自动伸缩,sql,amazon-web-services,amazon-ec2,scalability,distributed,Sql,Amazon Web Services,Amazon Ec2,Scalability,Distributed,我正在构建一个白板web应用程序,其中包含运行AmazonEC2实例(目前只有一个实例)的自足“房间”客户端。命令通过WebSocket发送到PHP服务器,该服务器将所有命令存储在SQL数据库中 到目前为止,我一直在使用谷歌云SQL。我的计划是学习如何使用EC2进行扩展,并让所有实例使用相同的远程数据库。我已经了解到,由于远程SQL server的写入延迟为200毫秒,而本地SQL server的写入延迟为0.5毫秒,所以这种方法不起作用。每次命令到达时,服务器都进行写操作 我不熟悉可伸缩性和分

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

到目前为止,我一直在使用谷歌云SQL。我的计划是学习如何使用EC2进行扩展,并让所有实例使用相同的远程数据库。我已经了解到,由于远程SQL server的写入延迟为200毫秒,而本地SQL server的写入延迟为0.5毫秒,所以这种方法不起作用。每次命令到达时,服务器都进行写操作

我不熟悉可伸缩性和分布式系统。我的直觉告诉我,如果我的EC2和RDS实例位于同一个区域,我需要使用AmazonRDS并希望延迟毫秒,或者在EC2实例上本地使用SQL。我倾向于后者。我的问题是:EC2是有弹性的。当我需要删除一个实例时会发生什么

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


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

我同意user02525的说法,也许看看使用Elasticache redis,它听起来更符合您的做法

如果您关心数据库写入,您可能需要研究使用AWS Elasticache。您仍然可以使用RDMS进行存储。确实,听起来redis或memcached在这里会很有帮助。当一个人开始达到内存限制时通常会发生什么?然后我会将数据库的一部分存储到磁盘吗?或者我会寻找不同的解决方案?