我正在为一个执行一些 CPU 密集型工作的移动应用程序编写后端。我们预计该应用程序在大多数情况下不会有大量使用,但偶尔会出现高需求高峰。我在想我们应该做的是保留几个 24/7 的服务器来处理低需求流量的稳定状态,然后根据需要添加和删除 EC2 实例来处理峰值。移动应用程序将首先访问一个简单的负载平衡服务器,该服务器在所有可用的处理服务器之间进行简单的循环用户分配。负载均衡器将处理启动新的 EC2 实例并根据需要将其关闭。
一些问题:
我以前从未写过这样的东西,这听起来像是一个好策略吗?
处理启动和关闭新 EC2 实例的最佳方式是什么?我在想我可以提前创建 X 个实例,根据需要设置它们(安装软件等),然后停止每个实例。然后负载均衡器将根据需要启动和停止实例(例如通过boto)。我认为这应该比尝试创建新实例并通过脚本或其他方式安装所有内容要快得多,也更容易。好主意?
我在这里担心的一件事是关闭并重新打开 EC2 实例的成本。我查看了 AWS 使用报告,但难以理解。我可以看到启动一个停止的实例是一项潜在的昂贵操作。但似乎因为我只是启动一个停止的实例而不是从头开始配置一个新实例,所以它应该不会太糟糕。听起来对吗?