在 AWS EC2 Spot 队列中实施保护规模
Implement scale in protection in AWS EC2 Spot fleet
我们想使用 Spot Fleet 来管理执行批处理作业的 EC2 实例扩展。一种激进的规模化方法被证明可以移除正在执行作业的机器,从而触发重新启动作业的作业恢复过程。最终结果是完成工作所花的时间超过预期。
我们还希望采取积极的政策规模来降低总体成本。
一个可能的解决方案是控制实例的终止方式(除了价格方面)。尽管 Spot Fleet 并未正式提供与 ASG 类似的 "scale in protection",但有什么解决办法吗?
您可以以编程方式请求通过减员减少组的大小——减少组的大小,然后当实例自行终止时,它们不会被替换——通过将超额容量终止策略设置为不终止容量过剩的实例。
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
实例可以在不调用 API 的情况下通过告诉 OS 关闭机器(例如 sudo halt
)来在内部自行终止。 Spot 实例不能处于 Stopped
状态,因此与按需实例的默认行为(实例仅停止)不同,Spot 实例在此操作时终止。
我们想使用 Spot Fleet 来管理执行批处理作业的 EC2 实例扩展。一种激进的规模化方法被证明可以移除正在执行作业的机器,从而触发重新启动作业的作业恢复过程。最终结果是完成工作所花的时间超过预期。 我们还希望采取积极的政策规模来降低总体成本。
一个可能的解决方案是控制实例的终止方式(除了价格方面)。尽管 Spot Fleet 并未正式提供与 ASG 类似的 "scale in protection",但有什么解决办法吗?
您可以以编程方式请求通过减员减少组的大小——减少组的大小,然后当实例自行终止时,它们不会被替换——通过将超额容量终止策略设置为不终止容量过剩的实例。
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
实例可以在不调用 API 的情况下通过告诉 OS 关闭机器(例如 sudo halt
)来在内部自行终止。 Spot 实例不能处于 Stopped
状态,因此与按需实例的默认行为(实例仅停止)不同,Spot 实例在此操作时终止。