使多个Amazon EC2实例写入单个数据库

时间:2013-01-01 16:05:28

标签: amazon-ec2

我有一个网站,周末可以获得大量流量。访问者在这个网站上做的是 - 他们回答测验问题并尽快提交。

当javascript尝试从服务器提取问题以及他们尝试提交到数据库时,我的服务器会获得大量流量。

使用mysql和PHP创建应用程序。当我的访问者提交时,我希望他们能够提交到单个数据库而不是多个数据库,因为EBS卷只能附加到一个EC2实例。

流量很大,所以我需要更多实例来支持流量高峰期间任何正在运行的实例。我能做些什么来实现如此高的可用性,为我的访问者提交的所有答案提供单一存储库?谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用Amazon RDS。基本上,它是没有硬盘的实例外的数据库。您可以设置多个实例以连接到RDS。

您还可以为水平缩放添加ec2实例,以解决流量峰值问题。

答案 1 :(得分:0)

您可以使用不同的选项来扩展应用程序:

  1. 如果现在所有内容都在单个实例上运行,您可以将它们分成两个实例:一个用于Web服务器,另一个用于数据库。使用EC2,您可以使用安全组来允许从Web服务器访问数据库。
  2. 如果Web服务器成为瓶颈,请添加更多实例并使用Amazon的ELB在各种实例之间进行负载平衡。您甚至可以使用自动扩展来根据流量动态增加和减少正在运行的实例数。
  3. 如果数据库是瓶颈,您可以先将其移动到更大的实例类型。您还可以将Amazon的RDS服务用于托管的mysql服务。
  4. 要进一步增加容量,您可以使用只读副本(如果应用程序是读取密集型的)来分配负载。
  5. 直到上述第4点,您应该可以在不修改应用程序的情况下完成所有操作。要进一步扩大规模,还有很多事情需要关注:

    • 添加缓存:使用memcached或Amazon的Elasticache。这可能会大大增加。
    • 转移到亚马逊的DynamoDB,您可以根据需要轻松添加读写容量。
    祝你好运!