我们希望使用 Spot 队列来管理执行批处理作业的 EC2 实例扩展。激进的扩展方法会删除正在执行作业的机器,从而触发重新启 Action 业的作业恢复过程。最终的结果是工作花费了超过预期的时间来完成。 我们还希望采取积极的政策来降低总体成本。
一个可能的解决方案是控制实例的终止方式(除了价格方面)。尽管 Spot Fleet 并未正式提供与 ASG 类似的“规模保护”,但有什么办法可以解决这个问题吗?
最佳答案
您可以以编程方式请求通过消耗来减少组的大小 - 减少组大小,然后当实例自行终止时,它们不会被替换 - 通过设置超额容量终止策略不终止那些实例那么,就是产能过剩。
you can request that the Spot fleet keep the fleet at its current size, but not replace any Spot instances that are interrupted or that you terminate manually.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#modify-spot-fleet
实例可以在内部终止自身,而无需通过告诉操作系统关闭计算机电源(例如 sudohalt
)来调用 API。竞价型实例不能处于已停止
状态,因此与按需实例的默认行为(实例仅停止)不同,竞价型实例在此操作时终止。
关于amazon-web-services - 在 AWS EC2 Spot 队列中实现保护规模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41709457/