Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Spot 实例运行方式

要使用 Spot 实例,请创建一个 Spot 实例请求 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 实例会导致 Spot 实例终止。这种情况无法改变。

在启动组中启动 Spot 实例

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

虽然该选项非常有用,但添加此限制会减少完成您的 Spot 实例请求的几率。这还会增加您的 Spot 实例被终止的几率。

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

在可用区组中启动 Spot 实例

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

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

如果您在 Spot 实例请求中指定了可用区组,但没有指定可用区,则 Spot 服务所采取的操作将取决于您指定的是 EC2-Classic 网络、默认 VPC 还是非默认 VPC。有关更多信息,请参阅 支持的平台

EC2-Classic

Amazon EC2 在区域中查找最低价格的可用区;如果该组的最低价格高于该可用区中的当前 Spot 价格,则在该可用区中启动您的 Spot 实例。Amazon EC2 将等到具有足够的容量以同时启动您的 Spot 实例,但前提是 Spot 价格始终低于该组的最低价格。

默认 VPC

Amazon EC2 使用指定子网的可用区,如果您没有指定子网,则 Spot 服务将选择一个可用区及其默认子网,但这可能不是最低价格的可用区。如果您删除了可用区的默认子网,则必须指定其他子网。

非默认 VPC

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

在 VPC 中启动 Spot 实例

如果您想在使用 Spot 实例时利用 EC2-VPC 的功能,请在您的 Spot 请求中将您的 Spot 实例指定为在 VPC 中启动。按照您为按需实例指定子网的相同方法,为您的 Spot 实例指定子网。

对于在 VPC 中启动 Spot 实例的 Spot 实例请求,其提交过程与在 EC2-Classic 中启动 Spot 实例的 Spot 实例请求相同,但有以下区别:

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

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

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