•你必须自己来管理系统。EC2有机器映像的流行的发行版如Ubuntu易被启动,而在这之后你就要来保持它的更新和安全。
•缩放水平(即启动多个应用程序实例)不像Heroku那样容易,Heroku只需移动滑块在它们的web界面。如果你想频繁的上下扩展,你最好熟悉操作流程。这似乎是一个很大的缺点,但在实践中,我们很少调整运行一个应用程序的实例的数量。
活生生的例子
比如我们有一个应用程序需要10MB的数据库存储、一个工作进程和SSL。使用Heroku,将产生以下费用:
•增加数据库存储20美元。Heroku的免费共享数据库仅提供5MB的存储。它们推出了一个新的选项,但目前还不请清楚它的规格。
•SSL端点为20美元
•35美元的工作进程
总计:每个月需要75美元
使用亚马逊则需要花费:
•一个随需应变的小型EC2实例需要57.60美元(或者一年期27.77美元;三年期17.69美元)。
从价格角度看,亚马逊可以很容易的添加或删除服务。而使用Heroku,你则要每个月额外支付一笔费用。
其他注意事项
除了成本外,你要考虑是否可以在Heroku运行你的应用程序。如果你需要运行自定义的二进制文件或从源代码编译,你就必须弄清楚如何破解Heroku。如果你需要存储临时文件,你应该知道Heroku的临时文件系统不会让这一任务很容易。你可能会下了很大的功夫,但仍然碰壁。就个人而言,我有破解法宝可以尝试找到许多Heroku具体问题的解决方法。
另一方面,如果你知道你的应用程序在限制范围内,则在Heroku上部署将是轻而易举的。web界面美观、CLI客户端大部分情况下运行良好(除了它不能管理多个Heroku账户),而且很容易通过附加软件添加其他服务。但如果你认为你的应用程序的需求增长方式不满足于简单的水平扩展,那么你应该考虑AWS。当然,你可以开始使用Heroku随后迁移到AWS,但是在这种情况下,你需要在两个环境下配置你的应用程序,并花费时间去进行迁移。
有其他选择吗?
根据我的经验,没有其他平台可以与Heroku或AWS竞争。有一些Heroku不错的替代品如Dotcloud,但它们收到了Heroku的影响,减少与第三方产品的集成并只有少数的社区支持。
Rackspace是AWS最有力的竞争者,但它缺乏丰富的API和支持。我们希望有更多的竞争对手赶上Heroku和AWS,为我们提供更多的选择。
结束语
Heroku和AWS都是优秀的平台。它们在关键领域都有很大的不同,挑选适合自己的平台才是正确的。这并没有明确的赢家,就我个人而言,我喜欢两个综合起来用:小型应用Heroku,大型应用亚马逊。最终获胜的平台将是那个最能帮助你实现你的目标,并可以长期负担的平台。