eri*_*icn 0 mysql website wordpress amazon-ec2 amazon-rds
我有 6 个 WordPress 网站在 1 个 EC2 实例上运行。所有网站都连接到 1 个相同 RDS 实例中的数据库。
今天早些时候,最大网站的流量达到顶峰,RDS 实例陷入瓶颈——CPU 利用率在一个多小时内达到 100%。它影响了我所有的网站,因为它们需要永远加载。
为了防止此类问题再次发生,以下哪项最重要,因此我首先要投入时间和精力?
(我将在以后工作,我现在只需要优先考虑)
对我网站的用户体验有何影响?一些快速搜索表明我应该限制到我的 Web 服务器的并发连接数,但这不会阻止用户访问我的网站吗?
更多背景:
我已经做了什么:
我是在浪费资源,还是根本没有足够的资源用于我的网站——或者更确切地说,我如何自己回答这个问题?
在单个 EC2 实例上运行所有内容违背了基于云的部署的全部意义:自动扩展和自我修复的能力。正如我之前所写,自动缩放是 AWS 的核心和灵魂,如果您不使用它,最好使用传统的 co-lo 服务器或 VPS。它既便宜又耐用。
我刚刚完成了一个与您的需求非常相似的 AWS 部署。客户端运行三个相当大容量的 Wordpress 站点(比您的站点流量多一点)。配置如下所示:
这种设计没有任何单点故障*,在实例死亡时会自动自我修复,并且足够智能,可以根据资源需求进行扩展或缩减。总成本:约 200 美元/月。如果您选择购买 1 年期预留实例。
我正在将此配置放入 CloudFormation 模板和 cloud-init/Python 脚本的组合中,这些脚本在启动时自动从 Github 中提取。基本上,它几乎允许任何人按下按钮,等待大约一个小时,然后回来,整个环境都将等待。我希望在年底前完成这项工作。如果您有兴趣获得模板的副本,请在我的个人资料中列出的网站上向我发送电子邮件至“jamie”。
* NAT 实例是 SPoF,但这主要是 VPC 的设计限制。它是一个非关键组件,可能会发生故障并且不会影响应用程序。