Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Spot 实例

Spot 实例是一种未使用的 EC2 实例,以低于按需价格提供。由于 Spot 实例 允许您以极低的折扣请求未使用的 EC2 实例,这可能会显著降低您的 Amazon EC2 成本。Spot 实例的每小时价格称为 Spot 价格。每个可用区中的每种实例类型的 Spot 实例的价格是由 Amazon EC2 设置的,并根据 Spot 实例 的长期供求趋势逐步调整价格。只要容量可用,并且请求的每小时最高价超过 Spot 价格,Spot 实例就会运行。

如果能灵活控制应用程序的运行时间并且应用程序可以中断,Spot 实例就是经济实惠之选。例如,Spot 实例非常适合数据分析、批处理作业、后台处理和可选的任务。有关更多信息,请参阅 Amazon EC2 Spot 实例

主题

概念

在开始使用 Spot 实例之前,应该熟悉以下概念:

  • Spot 实例 池 – 一组未使用的 EC2 实例,它们具有相同的实例类型(例如 m5.large)、操作系统、可用区和网络平台。

  • Spot 价格 – Spot 实例 的当前每小时价格。

  • Spot 实例 请求 – 提供您愿意为 Spot 实例 支付的每小时最高价。如果未指定最高价,则默认最高价为按需价格。如果具有可用的容量,并且您的请求的每小时最高价超过 Spot 价格,Amazon EC2 将完成您的请求。Spot 实例 请求可以是一次性持久性 请求。Amazon EC2 会在与持久性 Spot 请求关联的 Spot 实例 终止之后自动重新提交该请求。Spot 实例 请求可选择为 Spot 实例 指定一个持续时间。

  • Spot 队列 – 一组基于指定条件启动的 Spot 实例。Spot 队列 选择满足您的需要的 Spot 实例 池,并启动 Spot 实例 以满足队列的目标容量。默认情况下,在队列中的 Spot 实例 终止之后,系统会启动替换实例以保持 Spot 队列 的目标容量。您可以将 Spot 队列 作为一次性请求 来提交,这种请求在实例终止后不会被保留。您可以在 Spot 队列 请求中包含 个按需实例 请求。

  • Spot 实例 中断 – 如果 Spot 价格超过您的请求的最高价,或者不再具有可用的容量,Amazon EC2 将终止、停止或休眠您的 Spot 实例。Amazon EC2 将提供 Spot 实例 中断通知,这会在实例中断之前为其提供两分钟的警告。

Spot 实例 与 按需实例 的主要区别

下表列出了 Spot 实例 与 按需实例 之间的主要区别。

Spot 实例 按需实例

启动时间

只有 Spot 请求处于活动状态并且有可用容量时才能立即启动。

只有发出手动启动请求并且有可用容量时才能立即启动。

可用容量

如果没有可用容量,则 Spot 请求会继续自动发起启动请求,直到有可用容量为止。

如果在发出启动请求时没有可用容量,您会收到容量不足错误 (ICE)。

每小时价格

Spot 实例的每小时价格根据需求而有所不同。

按需实例的每小时价格是静态的。

实例中断

您无法停止和启动由 Amazon EBS 支持的 Spot 实例;只有 Amazon EC2 Spot 服务可以执行该操作。如果容量不再可用、Spot 价格超出您的最高价或者对 Spot 实例 的需求增加,Amazon EC2 Spot 服务可以中断个别 Spot 实例。

您可以决定何时中断个按需实例 (停止或终止)。

有关使用 Spot 实例 的策略

一种为应用程序维护最低级别的保障计算资源的策略是,启动一组核心 按需实例,再适机通过 Spot 实例 来进行补充。


					按需实例与 Spot 实例 的比较

另一个策略是启动具有指定持续时间(也称为 Spot 型限制)的 Spot 实例,这些实例不会中断并且会在您选择的持续时间内连续运行。在极少数情况下,Spot 型限制会由于 Amazon EC2 的容量需求而中断。在这种情况下,我们将在终止实例前提供两分钟的警告,即使您使用了此已终止的实例,也无需为其支付费用。有关更多信息,请参阅 指定 Spot 实例的持续时间

如何开始

您需要做的第一件事是为使用 Amazon EC2 进行设置。在启动 Spot 实例 之前,若拥有启动 按需实例 的经验也会有所帮助。

您可以直接使用 Amazon EC2 预置 Spot 实例。也可以使用其他 AWS 服务预置 Spot 实例。有关更多信息,请参阅以下文档。

Amazon EC2 Auto Scaling 和 Spot 实例

您可以用自己愿意支付的最高价创建启动模板或配置,以便 Amazon EC2 Auto Scaling 可以启动 Spot 实例。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南 中的在您的 Auto Scaling 组中启动 Spot 实例使用多个实例类型和购买选项

Amazon EMR 和 Spot 实例

有时候,在 Amazon EMR 集群中运行 Spot 实例 会非常有帮助。有关更多信息,请参阅Amazon EMR 管理指南中的 Spot 实例什么时候应该使用 Spot 实例

AWS CloudFormation 模板

AWS CloudFormation 使您能够使用 JSON 格式的模板来创建和管理 AWS 资源集合。AWS CloudFormation 模板可能包含您愿意支付的最高价。有关更多信息,请参阅 EC2 Spot 实例 更新 - Auto Scaling 和 CloudFormation 集成

AWS SDK for Java

可以使用 Java 编程语言来管理 Spot 实例。有关更多信息,请参阅教程:Amazon EC2 Spot 实例教程:高级 Amazon EC2 Spot 请求管理

适用于 .NET 的 AWS 开发工具包

可以使用 .NET 编程环境来管理 Spot 实例。有关更多信息,请参阅教程:Amazon EC2 Spot 实例

定价和节省

您可以为 Spot 实例 支付 Spot 价格,该价格由 Amazon EC2 设置,并根据 Spot 实例 的长期供求趋势逐步进行调整。如果具有可用的容量,并且您的请求的最高价超过当前 Spot 价格,Amazon EC2 将完成您的请求。您的 Spot 实例 将一直运行,直到您终止这些实例、不再具有可用的容量、Spot 价格超过您的最高价或您的 Amazon EC2 Auto Scaling 组在缩减期间终止这些实例。

具有预定义持续时间的 Spot 实例 使用的固定每小时价格在 Spot 实例 运行时仍然有效。

如果您或 Amazon EC2 中断正在运行的 Spot 实例,您将按使用的秒数或整个小时付费,或者您不收取任何费用,具体取决于所使用的操作系统以及 Spot 实例的中断方。有关更多信息,请参阅 中断的 Spot 实例 的计费

查看价格

要查看各个 AWS 区域和实例类型的当前(每 5 分钟更新一次)最低 Spot 价格,请参阅 Spot 实例定价页面。

要查看过去三个月的 Spot 价格历史记录,请使用 Amazon EC2 控制台或 describe-spot-price-history 命令 (AWS CLI)。有关更多信息,请参阅Spot 实例定价历史记录

我们将可用区独立地映射到每个 AWS 账户的代码。因此,不同账户的相同可用区代码 (如 us-west-2a) 可能会返回不同的结果。

查看节省

您可以查看单个 Spot 队列或所有 Spot 实例通过使用 Spot 实例节省的费用。您可以查看过去一小时或过去三天的节省,还可以查看每 vCPU 小时和每内存 (GiB) 小时的平均费用。节省是估算的,因为未算入您使用期间的计费调整,所以可能与实际的节省有所差异。有关查看节省信息的更多信息,请参阅通过购买 Spot 实例 实现节省

查看账单

要查看您的账单,请转至 AWS 账户活动页面。您的账单中包含了提供您的账单详情的使用情况报告的链接。有关更多信息,请参阅 AWS Account Billing

如果您有关于 AWS 账单、账户和事件的问题,请联系 AWS Support