Spot 实例的工作原理 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Spot 实例的工作原理

要启动 Spot 实例,您可以创建Spot 实例请求,或者 Amazon EC2 代表您创建 Spot 实例请求。Spot 实例在满足 Spot 实例请求时启动。

您可以使用多种不同的服务启动 Spot 实例。有关更多信息,请参阅 Amazon EC2 Spot 实例入门。在本用户指南中,我们介绍了以下使用 EC2 启动 Spot 实例的方法:

  • 您可以创建 Spot 实例请求 有关更多信息,请参阅创建 Spot 实例请求

  • 您可以创建 EC2 实例集,在其中指定所需数量的 Spot 实例。Amazon EC2 代表您为 EC2 实例集中指定的每个 Spot 实例创建一个 Spot 实例请求。有关更多信息,请参阅创建 EC2 队列

  • 您可以创建 Spot 实例集请求,在其中指定所需数量的 Spot 实例。Amazon EC2 代表您为 Spot 实例集中指定的每个 Spot 实例创建一个 Spot 实例请求。有关更多信息,请参阅创建 Spot 队列请求

Spot 实例请求中必须包含您每小时愿意为每个实例支付的最高价格。如果您未指定价格,将默认采用按需价格。请求中可以包含其他约束,例如实例类型和可用区。

如果您愿意支付的最高价格超过 Spot 价格,并且有可用的容量,您的 Spot 实例将会启动。如果您愿意支付的最高价格低于 Spot 价格,您的实例将不会启动。但是,由于 Amazon EC2 会根据 Spot 实例的长期供求趋势逐步调整 Spot 价格,因此您愿意支付的最高价格可能最终会超过 Spot 价格,在这种情况下,您的实例将会启动。

您的 Spot 实例会一直运行,直到您停止或终止它,或者 Amazon EC2 中断它(称为 Spot 实例中断)。

当您使用 Spot 实例时,您必须为中断做好准备。在 Spot 实例需求增加、Spot 实例供应减少或 Spot 价格超过您的最高价时,Amazon EC2 可能会中断您的 Spot 实例。在 Amazon EC2 中断 Spot 实例时,将提供 Spot 实例中断通知,这会在 Amazon EC2 终止该实例之前为其提供两分钟的警告。无法为 Spot 实例启用终止保护。有关更多信息,请参阅Spot 实例中断

您可以停止、启动、重启或终止由 Amazon EBS 支持的 Spot 实例。Spot 服务可以在中断 Spot实例时可使实例停止、终止或休眠。

在启动组中启动 Spot 实例

在 Spot 实例请求中指定启动组,可以通知 Amazon EC2 只有在可以全部启动一组 Spot 实例时才启动该组。此外,如果 Spot 服务必须终止启动组中的某个实例 (例如,如果 Spot 价格超过您的最高价),它必须终止所有实例。不过,如果由您终止启动组中的一个或多个实例,Amazon EC2 不会终止该启动组中的剩余实例。

尽管此选项有用处,但是添加此约束会减少完成 Spot 实例请求的几率并且增加 Spot 实例被终止的几率。例如,启动组包括多个可用区中的实例。如果其中一个可用区中的容量减少且不再可用,则 Amazon EC2 会终止启动组的所有实例。

如果您创建了另一个成功的 Spot 实例请求并指定与之前成功请求相同(现有)的启动组,则新实例将添加到该启动组中。以后,在该启动组的一个实例终止时,启动组中的所有实例均会终止,这包括第一次请求和第二次请求启动的实例。

在可用区组中启动 Spot 实例

在 Spot 实例请求中指定可用区组,可以通知 Spot 服务在同一可用区中启动一组 Spot 实例。Amazon EC2 无需同时中断可用区组中的所有实例。如果 Amazon EC2 必须中断可用区组中的某个实例,剩余的实例仍保持运行。

虽然此选项非常有用,但添加此约束会减少完成您的 Spot 实例请求的几率。

如果您指定了可用区组,但未在 Spot 实例请求中指定可用区,则具体结果将取决于您所指定的网络。

默认 VPC

Amazon EC2 使用指定子网的可用区。如果您未指定子网,它会为您选择一个可用区及其默认子网,但不一定是价格最低的可用区。如果您删除了可用区的默认子网,则必须指定其他子网。

非默认 VPC

Amazon EC2 使用指定子网的可用区。

在 VPC 中启动 Spot 实例

按照为 按需实例 指定子网的相同方法,为您的 Spot 实例 指定子网。

  • 您应该使用默认最高价 (按需价格),或者根据 VPC 中的 Spot 实例的 Spot 价格历史记录指定最高价。

  • [默认 VPC] 如果希望在特定的低价格可用区中启动您的 Spot 实例,您必须在 Spot 实例请求中指定对应的子网。如果您没有指定子网,则 Amazon EC2 将为您选择一个子网,而该子网的可用区中的 Spot 价格不一定是最低的。

  • [非默认 VPC] 您必须为您的 Spot 实例指定子网。