您如何决定何时升级服务器而不是添加更多服务器?

时间:2014-04-29 16:44:17

标签: amazon-ec2 amazon cluster-computing upgrade load-balancing

我经营一家小型SAAS网站,其中包含(希望)越来越多的客户。现在,我有三个Amazon EC2实例。微实例运行Web前端(Rails),小实例运行API层(Rails),微实例运行数据层(Postgres)。请不要判断;这对我目前的需求来说已经足够了。

当我添加其他客户时,我知道最终我将不得不a)增加现有服务器的功能和/或b)负载平衡Web / API服务器并集群数据库服务器。

我的问题是 - 您如何从成本/收益的角度决定何时升级服务器(即微 - >小 - >中 - >大)与添加相同类型的其他服务器相比?我了解负载平衡有一些好处(例如在服务器崩溃或可用区出现问题时让您保持联机)。

显然,亚马逊对具有更多内存和处理能力的服务器收取更多费用,但他们也会对ELB和类似服务收费。如果我今天要增加到每层中的两台服务器,这将使我的成本加倍+ ELB的成本(不包括数据传输成本)。这似乎是早期的瓶颈,最适合升级到中型或更好的服务器。

什么时候建立而不是出局有什么好的经验法则?请记住,在处理大量数据时,我选择的软件( cough Rails)会占用大量内存。

2 个答案:

答案 0 :(得分:0)

您提到了扩展(冗余)的一些优点,但忘记了特别是更复杂的部署,并增加了开销(使用了更多的操作系统资源)。

它不仅仅是向上和向外,它是每个层的向上和向外。 db层通常希望扩展,因为它避免了群集/复制问题。应用层可以采用任何一种方式。 Web服务器可以很好地扩展,因为它们处理请求并且请求是分开的。

特别针对亚马逊及其特定定价(https://aws.amazon.com/ec2/pricing/),看起来扩展vs out大致相当,扩大到大约略有提前。

答案 1 :(得分:0)

向上扩展具有更快的CPU +更多RAM的优势,因此您的应用程序的性能可能会因此而增加。是的,有时候out out up会赢,但从我的角度来看,我们选择尽可能扩大规模(我们也在AWS上),因为我们注意到我们的应用程序的性能提升每次我们这样做,除了在我们的用户群增长时允许额外的容量。