多个微型实例与一个大型 EC2 实例

Mic*_*ich 3 amazon-ec2 amazon-web-services

我们的网站变得越来越慢,我们需要升级。我们目前使用的是 AWS,拥有 1 个微型 EC2 实例,事实证明,当我们的网站流量较少时,该实例是有效的。现在,当我们的流量增加时,我们的网站速度就会变得越来越慢。

我们似乎无法解决争论。哪个会更好:

  1. 添加多个额外的微型/小型实例,并由 nginx 或亚马逊云计算管理它们

或者

  1. 将我们的微型实例升级为大型/超大实例。

考虑到服务器要执行的任务很简单,并且考虑到 RAM 总量和处理能力类似,这会更有效。1个大的,还是很多个小的?

谢谢

E.J*_*nan 7

很难说——

选项 #2 将是最容易做的,关闭服务器,调整其大小,然后重新打开,只需支付更多的钱即可获得更多的容量。很容易做到,但可能不是最好的长期解决方案。当流量持续增加(持续增加或在特定时间增加)并且仅通过选择更大的盒子无法获得更多收益时,您会怎么做?

选项#1 需要做更多的工作,但最终可能是一个更好的策略。

首先,您没有说您是否持续需要更高的吞吐量,或者是否在一天/周/月/年的某些时间需要容量 - 如果是这种情况,则需要使用多个 EC2 实例自动缩放组设置为响应需求的增加和减少,方法是根据需要打开额外的实例,然后在需求减少时关闭它们,这是一种经济高效的选择。

此外,运行多个实例(最好在不同的可用区中运行)可以为您提供容错能力 - 当 #1 中的大型实例出现故障时,您的网站也会出现故障 - 如果您有许多小型实例跨 2 或 3 个可用区运行,您如果一个或多个实例出现故障,即使 AWS 可用区脱机(很少见,但确实会发生),也可以继续运行。

除了上述选项之外,在不了解有关您的应用程序的任何信息的情况下 - 您可以做的其他事情 - 将一些静态资产移动到 S3 和/或使用 AWS cloudfront(或其他 CDN)来卸载一些工作 - 这通常是一种廉价且简单的方法从现有的盒子中获得更多的东西。