EC2 服务器,大量的微型实例还是更少的大型实例?

Posted

技术标签:

【中文标题】EC2 服务器,大量的微型实例还是更少的大型实例?【英文标题】:EC2 server, lots of micro instances or fewer larger instances? 【发布时间】:2012-02-25 16:32:31 【问题描述】:

我想知道哪个更好,在 EC2 上托管一个具有许多微型实例的站点,或者更少的大型实例,例如 m1.large。所有这些都将作为负载平衡器坐在一个或几个更大的实例后面。我就说一下我的理解,有错的可以补充或者指正

选择微实例的主要原因是成本。一个微型实例平均以 0.02 美元/小时的价格提供大约 0.35 个 ECU,而一个小型实例以 0.085 美元的价格提供 1 个 ECU。如果您计算 $/ECU/小时,微型实例的计算结果为 0.057 美元/ECU/小时,而对于小型实例,则为 0.085 美元/ECU/小时。所以对于同样的平均计算能力,选择 100 个微实例会比 35 个小实例便宜。

微型实例的主要问题是性能波动更大,但我不确定当您有很多实例时这是否会减少问题。

那么有没有人有过这样的设置的经验,并看到了优点和缺点?请让我知道,因为我正在尝试选择哪种方式,谢谢!

PS:一篇关于该主题的文章,http://huanliu.wordpress.com/2010/09/10/amazon-ec2-micro-instances-deeper-dive/

【问题讨论】:

【参考方案1】:

小心微型实例,它们可能会咬你。我们在微实例上都有测试环境。由于它们只是功能测试环境,因此可以顺利运行。然而,我们碰巧更新了一些应用程序(嗯,Jetty 7.5.3),这些应用程序已知会导致 CPU 使用率升高。这使得这些实例变得无用,因为亚马逊将可用 CPU 限制为 2%。

此外,微型实例由 EBS 支持。对于像 Cassandra or the likes 所需的高 IO 操作,EBS 建议使用(超过实例存储)。

如果您想省钱并且您的软件是architected to handle interruptions,您可以选择现场实例。他们通常 cost less than on-demand ones.

如果所有这些对你来说都不是问题,我会说,微实例是要走的路! :)

Basics questions about micro instances performance CPU pattern for micro Stolen CPU on micro

【讨论】:

【参考方案2】:

我想说:取决于您的应用将拥有什么样的架构以及它需要有多可靠:

AWS 负载均衡器不提供即时(也许实时是一个更好的词?) 与故障转移概念不同的自动缩放。它适用于 不时进行健康检查,并且延迟很小,因为它 通过 http 请求完成(如果您选择 https,则开销更大)。 如果您根据体系结构选择更多实例,则会出现更多故障点。为避免这种情况,您的应用需要在实例之间保持异步。 如果您选择更多,则必须对您的应用程序进行更多基准测试和测试 实例,以确保这些突发事件不会对您的应用产生太大影响。

这是我的观点,这将是有经验的人之间非常愉快的讨论。

【讨论】:

感谢您的回复。我不知道 ELB 是如何工作的(我从其他人那里听说过一些不太好的经验),但我使用 HAProxy,并且故障转移通常是实时的(使用 500 或 1000 毫秒检查) .检查也是通过 HEAD 或 OPTION 请求完成的,因此开销不应该那么大,但肯定存在。另外我主要是在谈论应用服务器,数据库在其他地方,所以应用服务器本身是独立的,我认为其中一些失败应该不是问题,但是启动替换实例确实需要时间,这肯定会影响性能.

以上是关于EC2 服务器,大量的微型实例还是更少的大型实例?的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon EC2 微型实例上从 Apache 切换后 uWSGI/nginx/Django 性能不佳

Amazon EC2 微型实例 - 空间不足? [关闭]

在弹性 beantalk 部署上的 ec2 微型实例上创建交换文件/驱动器

ec2将实例从中型升级到大型,我的临时存储会发生啥

播放不断写入光盘?在 Amazon ec2 上导致更高的账单

如何按计划扩大或缩小 Azure 应用服务实例的大小?