Amazon EC2 为什么会终止我的 Spot 实例?

1 分钟阅读
0

我启动了一个 Spot 实例,但现在无法在 Amazon Elastic Compute Cloud(Amazon EC2)控制台中找到它。或者,我的 Amazon EMR 节点 Spot 实例已终止。

解决方法

如果出现以下原因,Amazon EC2 可能会在两分钟内随时中断您的 Spot 实例:

  • Spot 容量不足:Amazon EC2 可能会在需要容量时中断您的 Spot 实例。Amazon EC2 通常会回收您的实例以重新利用容量。Amazon EC2 还可能因主机维护或硬件停用等问题而终止您的 Spot 实例。
  • **Amazon EC2 无法满足您的 Spot 实例请求约束:**某些 Spot 请求包含约束,例如启动组或特定可用区组。无法再满足约束时,Spot 实例将作为组终止。
  • Spot 价格高于您设置的最高价格:请求 Spot 实例时,您可以指定实例的最高价格。默认情况下,此最高价格等于该实例类型的按需定价。当 Spot 价格上涨超过设定的最高价格时,您的 Spot 实例将被中断。如果您将中断行为设置为“stop”(停止)或“hibernate”(休眠),则当 Spot 价格降至低于您的最高价格时,您的 Spot 实例将会重新启动。设置较高的最高价格并不意味着 Spot 实例一定可用。有关更多信息,请参阅 Spot 实例工作原理

由于存在这些中断,最佳实践是将 Spot 实例用于无状态、容错且足够灵活以承受中断的工作负载。

注意:当 Amazon EC2 中断 Spot 实例时,默认情况下 Spot 实例将会终止。您可以将此默认行为更改为 hibernate(休眠)或 stop(停止),而不是终止实例。有关更多信息,请参阅 Spot 实例中断

要确定 Amazon EC2 中断 Spot 实例的原因,请执行以下操作:

  1. 打开 Amazon EC2 控制台,然后选择 Spot Requests(Spot 请求)。
  2. 选择已终止的 Spot 实例的 Request ID(请求 ID)。
  3. 查看 Description(描述)部分下的 Status(状态)字段,以查看实例终止的原因代码。例如,如果 Amazon EC2 的 Spot 容量不足,则 Status(状态)字段将显示“instance-terminated-no-capacity”。有关原因代码的完整列表,请参阅 Spot 请求状态代码

您可以使用 Spot 实例中断通知来绕过潜在的中断问题。有关更多信息,请参阅 Taking advantage of Amazon EC2 Spot Instance interruption notices


相关信息

Spot 请求状态

Spot 实例最佳实践

为什么即使我的最高价格高于 Spot 价格,我的 Spot 实例仍然终止?

什么时候应该使用 Spot 实例:Amazon EMR 文档

AWS 官方
AWS 官方已更新 3 个月前