如果 AWS 自动扩展组无法使用 Spot 实例会怎样?

What happens if a spot instance isn't available for an AWS autoscaling group?

如果我有一个由按需实例和 spot 实例组成的自动扩展组,其中至少有 4 个按需实例,并且额外容量由 spot 实例组成,如果它需要扩展一个 spot 会发生什么实例,并且没有可用的现货实例(因为我出价过高,或者如果没有任何备用实例来满足现货请求)?

其他信息:

我的 Google foo 似乎让我失望了,因为我似乎无法在网上找到任何答案。如果有人能阐明这个问题,我将不胜感激。

提前致谢!

如果没有现货容量,AWS 中的 AutoScaling 组将不会故障转移到按需。这本质上是您以较低的现货实例价格获得的权衡。要解决此问题,请尝试添加更多可用区 and/or 实例类型(现在问题不大,因为支持权重并且 ALB 可以根据最少未完成请求进行路由)

如果您在 ASG 中设置了多个实例类型和可用区,这会在满足您的按需基础后发生:

1) 尝试根据您的分配策略和 spot 池数量启动 spot 实例

2) 如果所需的实例类型不可用,请尝试该 AZ 中的所有其他类型

3) 如果该 AZ 中没有可用的 spot 实例,则该启动请求将失败,它将在另一个启用的 AZ 中重试

4) 如果在您选择的任何类型中,在您在 ASG 上拥有的任何可用区中都没有 Spot 实例,则不会启动任何内容,并且 ASG 将定期重试,直到达到所需的容量.

这样想吧,他们的数据中心里只有这么多服务器。如果 spot 驱逐是因为他们需要按需实例的容量,并且每个人 运行 spot 都故障转移到该实例类型的 ondemand;该 AZ 中可能会突然出现按需实例容量问题。