您将要设置自动缩放策略,本文档为您提供了一个非常好的过程概述。
http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-using-sqs-queue.html
有一点要记住然而,活动最终可能会在60秒后关闭EC2实例你花费比保持它运行所有的时间更多。
作为一个例子:
假设工作负载是这样的,一个新的项目进入队列每2分钟,并且它们每一个需要45秒来处理。
在这种情况下,将发生的事情是,您将旋转一个实例,它将工作45秒,等待60秒,然后关闭,因为SQS队列为空。 15秒钟后,新实例将启动以处理从第一个2分钟到达的队列项目。
因此,您的政策最终将在一个小时内跳出总共30个新实例,并且因为每次您启动一个实例,您会在整整一个小时内收到帐单,您将为每个实例支付30小时的实例时间1小时的工作 - 可能不是你想要的。
所以,你想做什么是可能的,但可能不是一个好主意,这取决于你的工作量。请记住 - 当你需要它们时快速旋转实例,并且因为你已经支付了整整一个小时而慢慢关闭它们。
你真的需要弄清楚工作到达队列的可能模式,然后围绕这个模式设计解决方案。总是有一个实例运行,即使是一个小实例,最终可能会更便宜,并且如果SQS队列备份超过某个点(并且您仍然要确保不启动并经常停止第二个实例)。
在我的情况下,它每次加载50'000条消息,但每周只能加载几次或每天最多加载一次。所以我认为在我的具体情况下,这不会是一个问题。 –