我正在尝试将运行许多作业的单一大型服务器转移到使用自动缩放来构建更多服务器的设计,因为运行更多作业。我在测试中发现的问题是,当默认的任务规模发生时,它终止了运行任务的服务器。
服务器是否可以告诉 AWS 它正在工作并且需要保持正常运行?或者能够在“可以终止”和“工作”之间切换,就好像它得到了一份新工作一样?
工作可能需要几分钟或几小时,因此一个扁平的冷却计时器无法提供正确的保护。
我正在尝试将运行许多作业的单一大型服务器转移到使用自动缩放来构建更多服务器的设计,因为运行更多作业。我在测试中发现的问题是,当默认的任务规模发生时,它终止了运行任务的服务器。
服务器是否可以告诉 AWS 它正在工作并且需要保持正常运行?或者能够在“可以终止”和“工作”之间切换,就好像它得到了一份新工作一样?
工作可能需要几分钟或几小时,因此一个扁平的冷却计时器无法提供正确的保护。
EC2 AutoScaling 具有称为“保护扩展”的功能,其中不会选择实例来终止扩展事件(通常是由所需容量下降引起的,但也可能适用于实例刷新之类的事情)。
如果您有大量实例,请注意 API 限制,以避免限制这些是一些最佳实践
或者,您可以仅将扩展策略用于扩展,然后让实例自己控制扩展。使用与上述相同的逻辑,但是当实例准备好因无工作而终止时,让它调用终止实例-in-auto-scaling-group 命令本身。如果您不希望 ASG 降至 0 个实例,此方法可能并不理想。