3

我有一个周末访问量很大的网站。访问者在此站点上所做的是 - 他们回答测验问题并尽快提交。

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

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

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

4

2 回答 2

1

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

您还可以添加 ec2 实例以进行水平扩展,以解决您的流量高峰问题。

于 2013-01-02T09:28:22.707 回答
1

您有不同的选项来扩展您的应用程序:

  1. 如果现在一切都在一个实例上运行,您可以将它们分成两个实例:一个用于 Web 服务器,一个用于数据库。使用 EC2,您可以使用安全组来允许从 Web 服务器访问数据库。
  2. 如果 Web 服务器成为瓶颈,请添加更多实例并使用 Amazon 的 ELB 在各个实例之间进行负载平衡。您甚至可以使用自动缩放来根据流量动态增加和减少正在运行的实例的数量。
  3. 如果数据库是瓶颈,您可以首先将其移至更大的实例类型。您还可以将 Amazon 的 RDS 服务用于托管 mysql 服务。
  4. 要进一步增加容量,您可以使用只读副本(如果应用程序是读取密集型的)来分配负载。

直到上面第 4 点,您应该能够在不修改应用程序的情况下完成所有操作。为了进一步扩大规模,还有几件事需要注意:

  • 添加缓存:使用 memcached 或 Amazon 的 Elasticache。这可能会增加很大的推动力。
  • 转移到 Amazon 的 DynamoDB 之类的东西,您可以在其中轻松地根据需要添加读写容量。

祝你好运!

于 2013-01-02T09:45:37.337 回答