为高性能托管而对 EC2 实例进行负载平衡?

为高性能托管而对 EC2 实例进行负载平衡?

我有一台相当重的戴尔机器,配备双四核 CPU 和 32GB 内存。

在那台机器上,我托管了一个非常繁忙的论坛,但一台机器可以完成所有事情:网络、缓存、数据库、sphinx 等。我还每晚进行全系统、无停机时间的备份。

这一切花费我每月不到 800 美元(澳大利亚的价格更高)并且我不太信任这些备份。

作为一项实验,我设置了以下内容;

  • 具有自动缩放规则的 ELB(CPU 使用率超过 20% 后 2 分钟添加新实例,CPU 使用率低于 20% 后 5 分钟删除实例。最多 5 个实例)
  • 跨可用区域的两个 EC2 实例(m3.large)。
  • 一个用于 NFS 的 m3.medium(并将向其中添加缓存和 sphinx) - 这仅存储用户上传并通过 Cloud Front 提供服务。
  • 一个 db.r3.large RDS 实例,其中已尽可能地复制了我的 my.cnf(我不是数据库专家,我的配置文件到处跟着我)

目前情况下,其费用约为每月 600 美元,最坏情况下(5 个网络实例)费用约为 1000 美元。

看起来非常,非常好的。

上次我尝试在我的网站上使用 EC2 时,由于单个实例缺乏连接支持,它在繁忙时段不断崩溃,所以这次我保持实例较小,并将 ELB 放在前面。我的机器上的 Apache Bench (-n 1000 -c 100) 似乎运行良好,每秒有 8 个以上的请求,50% 的请求在 11799 毫秒以下(100% 在 17763 毫秒以下)。

我错过了什么?这一切似乎太好了,难以置信。我可以随时安排数据库的快照,我可以在 ELB 后面放置任意数量的机器,并且我认为在当前(2 个实例)状态下,一天中 90% 的时间都可以正常工作。

请对此提供反馈,我不是系统人员,我只是喜欢 AWS 的东西,我的网站似乎非常适合基于 AWS 的托管。

谢谢。

相关内容