我正在为执行一些cpu密集型工作的移动应用程序编写后端。我们预计该应用在大多数情况下不会有大量使用,但会偶尔出现高需求高峰。我在想,我们应该做的是预留几台24/7服务器来处理低需求流量的稳定状态,然后根据需要添加和删除EC2实例来处理峰值。移动应用程序将首先击中一个简单的负载均衡服务器,在所有可用的处理服务器中执行简单的循环用户分配。负载平衡器将处理新的EC2实例,并根据需要将其恢复。用于处理需求峰值的EC2
一些问题:
我没写过这样的事情之前,这听起来是个不错的策略?
处理新的EC2实例的最佳方法是什么?我想我可以提前创建X实例,根据需要设置它们(安装软件等),然后停止每个实例。然后,负载均衡器将根据需要启动和停止实例(例如通过boto)。我认为这应该比创建新实例并通过脚本或其他东西安装所有内容更快更容易。好主意?
我在这里关心的一件事是关闭EC2实例并重新开启的成本。我查看了AWS使用情况报告,并且很难解释它。我可以看到启动停止的实例是一项潜在的昂贵操作。但是,似乎是因为我刚开始一个停止的实例,而不是从头开始一个新的实例,它应该不会太糟糕。这听起来是对的吗?
我想补充有关原帖一些更多的信息。当您使用Auto Scaling时,您不会停止并启动将要启动和终止的服务器。不同的是,您的服务器上的数据都不会被保存,并且EBS存储没有成本,因为它不存在。如果您拥有根设备以外的EBS卷,则取决于配置,实例终止后可能会留下这些卷。 – bwight 2012-08-16 22:14:58