Amazon EC的架构决策:小型实例还是大型实例?

时间:2010-07-07 01:17:25

标签: cloud amazon-ec2

我准备在亚马逊的EC2上推出我们公司的网站,并且有一个相当简单的架构问题:我应该为Web /应用程序层或大型实例数组使用一组Small实例吗?

这是一个相当广泛的问题,我意识到。所以要添加一些澄清细节:

  • 我们的应用程序是面向公众的电子商务系统。除了典型的动态网站之外,没有发生大量的计算
  • 我们的应用程序是用ASP.NET MVC编写的
  • 数据库位于单独的服务器上

我希望做出决定,这会影响这些非常不同的实例类型的性能和成本。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这个问题很难回答,因为问题不应该是“我应该在哪个实例类型上构建我的网站?”而是“我应该如何扩展我的网站?”。

EC2背后的概念是,您可以流畅地扩展网站,而无需重新配置您的应用程序。在负载平衡器后面有一个大型小型实例集群可以让您拥有更高的可靠性和更均匀的负载,尽管您可以使用较少数量的较大服务器来实现相同的目标(尽管性能可能不会给您带来太多帮助)由于项目规模而带来的好处)。

严格来说,前端Web服务器不应该是强大的。我通过在Linode的一个20美元/星期一盒子推出每月500万次点击(尽管我已经推出了超过1500万次,没有任何问题)。我可以在我的架构上投入更多资金吗?当然,我可以通过添加更多镜像盒来增加冗余,我可以通过在更多数据中心添加盒子来提高性能,并且我可以通过添加更多内存和CPU来增加我拥有的盒子。

我的观点是,如果你有大盒子并且你没有完全使用它们,那么你就是在浪费你的资源。如果您有小盒子并打开和关闭它们以适应您的需求,那么您就可以更好地利用您的资源。

对于您指定的体系结构,您似乎希望在负载均衡器后面在线获得一些(小型)前端Web服务器。从小站点开始,随着站点的需要启动更多。至于你的数据库,我建议一个更大的中档实例。确保您的数据被推送到EBS而不是实例存储本身。添加您复制到的辅助从属DB服务器(为了冗余)也可能是值得的。

关键是要非常仔细地监控您的资源。在服务器上花费大量资金似乎是合理的,但支付未使用的EC2实例是不明智的。

希望这有帮助!

答案 1 :(得分:0)

最佳答案是进行一些负载测试,并根据您的应用程序了解什么能为您提供更好的性能/ $。

EC2的优点在于您可以快速设置测试环境几个小时,然后尝试一下。

一旦您的应用程序投入生产,根据监控实际利用率和使用情况配置文件,根据需要更改实例大小应该不是什么大问题。

答案 2 :(得分:0)

我认为你正在呼唤EC2的一大好处......节省你的钱并在一个小实例上运行应用程序。如果您发现没有足够的功率而不是故障转移到更大的实例。