重温 2024 年亚马逊云科技 re:Invent 的精彩瞬间,一键查看主题演讲及创新讲座的精彩回放

 ✕

Amazon EC2 Spot 常见问题

问:什么是 Spot 实例?

Spot 实例是备用 EC2 容量,最多能够为您节省 90% 的按需价格,此类实例可由 亚马逊云科技通过 2 分钟通知予以中断。Spot 实例使用与按需和预留实例相同的底层 EC2 实例,最适合具有容错能力且灵活的工作负载。Spot 实例为获得计算容量提供了另一种选项,并且能够与按需和预留实例搭配使用

问:Spot 实例与按需实例或预留实例有何区别?

在运行时,Spot 实例与按需或预留实例完全相同。主要区别在于,Spot 实例通常会提供大幅按需价格折扣;您的实例可由 Amazon EC2 通过 2 分钟通知根据容量需求予以中断;Spot 价格会根据长期供应和对备用 EC2 容量的需求进行逐步调整。请查看此处了解详细信息。

问:如何购买和启动 Spot 实例?

启动 Spot 实例所用的工具与您当前启动实例所用的工具相同,其中包括 亚马逊云科技管理控制台、Auto-Scaling 组、运行实例和 Spot 队列。此外,许多 亚马逊云科技产品均支持启动 EMR、Cloudformation 等 Spot 实例。

Spot 实例非常容易启动。向启动按需实例所用的同一 API 中添加一个参数即可启动 Spot 实例,前提是有可用容量。

有关如何请求 Spot 实例的更多详细信息,请参阅此处

问:EC2 Spot 限制有哪些变化?

Amazon EC2 的 Spot 实例限制正从当前基于实例的限制过渡到基于 vCPU 的新限制,从而简化客户的限制管理体验。对基于 vCPU 的限制,使用量将根据 Amazon EC2 实例类型启动符合您的应用程序需求的任意实例类型组合所需的 vCPU(虚拟中央处理单元)数量来衡量。

问:什么是基于 vCPU 的限制?

Amazon EC2 基于您的 亚马逊云科技账户中分配给 Spot 实例的 vCPU 总数量衡量对每个限制的使用量。下表显示了每个实例大小的 vCPU 数量。有些实例类型的 vCPU 映射可能会有不同;有关详细信息,请参阅 Amazon EC2 实例类型。 

实例大小 vCPU
nano 1
micro 1
small 1
medium 1
large 2
xlarge 4
2xlarge 8
3xlarge 12
4xlarge 16
8xlarge 32
9xlarge 36
10xlarge 40
12xlarge 48
16xlarge 64
18xlarge 72
24xlarge 96
32xlarge 128

问:我可以运行多少个 Spot 实例?

有六个基于 vCPU 的实例限制,分别定义了您可用于指定实例系列组的容量。指定系列组中的实例的所有使用情况,无论属于第几代、大小或配置变体(例如磁盘、处理器类型)如何,都将累计到该组的 vCPU 总限制中,详见下表。对于新创建的 亚马逊云科技账户,一开始的限制数量可能比此处所述的更低。

Spot 实例限制名称 默认 vCPU 限制
请求的 Spot 标准(A、C、D、H、I、M、R、T 和 Z)实例 1440 个 vCPU
请求的 Spot F 实例 11 个 vCPU
请求的 Spot G 实例 11 个 vCPU
请求的 Spot Inf 实例 64 个 vCPU
请求的 Spot P 实例 16 个 vCPU
请求的 Spot X 实例 21 个 vCPU

问:这些 Spot 实例基于 vCPU 的限制是否存在区域性?

是,亚马逊云科技账户的 Spot 实例限制是按区域设置的。

问:这些限制是否会随着时间推移而变化?

是,限制可能会随着时间的推移而变化。Amazon EC2 会持续监控您在每个区域中的使用情况,并根据您对 EC2 的使用情况自动增加您的限制。

问:如何申请提高限制?

即使 EC2 会根据您的使用情况自动增加您的 Spot 实例限制,您仍可以在需要时从 Amazon EC2 控制台的“限制”页面申请增加限制。

问:如何计算我的新 vCPU 限制?

您可以找到每种 Amazon EC2 实例类型的 vCPU 映射,来计算您的 亚马逊云科技账户的总 vCPU 限制要求。

问:购买预留实例或请求按需实例时,Spot vCPU 限制是否适用?

否,基于 vCPU 的限制仅适用于请求的 Spot 实例。按需实例具有独立的基于 vCPU 的限制。

问:我可以如何查看当前 Spot 实例限制?

您可以在 Amazon EC2 控制台的“EC2 服务限制”页面上找到您当前的 Spot 实例限制。

问:这会影响正在运行的实例吗?

否,基于 vCPU 的限制不会影响任何正在运行的实例。

问:我是否仍然可以启动相同数量的实例?

是的,基于 vCPU 的实例限制允许您启动的实例数量至少与之前的基于实例的限制相同。

问:vCPU 限制会影响我的月度账单吗?

不会。EC2 使用量仍然按小时或秒计算,具体取决于您运行的 AMI 以及您启动的实例类型和大小。

问:vCPU 限制是否适用于所有区域?

基于 vCPU 的实例限制已同时在由光环新网运营的 亚马逊云科技中国(北京)区域和由西云数据运营的 亚马逊云科技中国(宁夏)区域推出。

问:我需要按什么价格支付 Spot 实例费用?

自每个实例运行时起,您便需要按小时的 Spot 价格支付费用。如果 Spot 价格在您启动实例之后发生变化,那么这之后您对实例的使用将按新价格收费。

问:什么是 Spot 容量池?

Spot 容量池是一组未使用的 EC2 实例,它们具有相同的实例类型、操作系统、可用区和网络平台(EC2-Classic 或 EC2-VPC)。每个 Spot 容量池的价格都不同,具体取决于供需情况。

问:使用 Spot 实例的最佳实践是什么?

我们强烈建议使用多个 Spot 容量池来最大限度地增加可用的 Spot 容量。EC2 内置有自动化功能,可以使用 Spot 队列从多个 Spot 容量池中找到最经济高效的容量。有关更多信息,请参阅使用 Spot 实例

问:如何确定 Spot 请求的状态?

您可以通过 Spot 请求状态代码和消息来确定 Spot 请求的状态。您可以在 亚马逊云科技管理控制台上 EC2 控制台的“Spot 实例”页面访问 Spot 请求状态信息,也可以通过 API 和 CLI 进行查看。要了解更多信息,请访问 Amazon EC2 开发人员指南

问:Spot 实例是否适用所有实例系列和大小,并在所有区域中可用?

Spot 实例可在所有公共 亚马逊云科技区域使用。Spot 实例几乎适用于所有 EC2 实例系列和大小,包括最新的计算优化型实例、加速图形、FPGA 和新的裸机实例类型。

问:哪些操作系统可作为 Spot 实例提供?

Linux/Unix 和 Windows Server 可作为 Spot 实例提供。搭载 SQL Server 的 Windows Server 目前不能作为 Spot 实例提供。

问:是否可以将 Spot 实例与针对第三方软件(如 IBM 软件包)的付费 AMI 结合使用?

目前不可以。

问:Spot 实例何时会中断?

在过去 3 个月里,92% 的 Spot 实例中断均来自客户,客户之所以手动终止实例,是因应用程序已完成其任务。如果 EC2 需要收回您的 Spot 实例,则可能有两个原因,其中主要原因是 Amazon EC2 容量需求(如使用按需或预留实例)。其次,如果您已选择设置“最大 Spot 价格”,而实际 Spot 价格高于这一价格,EC2 便会通过两分钟通知收回您的实例。此参数决定了您愿意按小时为 Spot 实例支付的最高价格,并默认设置为按需价格。与之前一样,在实例运行时,您将以每秒为增量继续按 Spot 市场价格(而非最高价格)支付相关费用。

问:如果我的 Spot 实例中断,我将如何付费?

如果 Spot 实例在第一个实例小时内被 Amazon EC2 终止或停止,那么您无需支付使用费。但是如果您自己终止了实例,您就需要按使用时间(精确到秒)付费。如果 Spot 实例在第一个实例小时后的任何时间被 Amazon EC2 终止或停止,那么您需要按使用时间(精确到秒)付费。如果您在 Windows 上运行并且自己终止了实例,您就需要支付一整个小时的费用。

问:如果 Spot 价格在我的实例运行期间发生变化,我将如何付费?

您将按每个实例小时开始时设置的实例小时价格支付整个小时的费用,精确到秒。

问:在哪里可以查看我的 Spot 实例使用历史记录,以及记入账单的费用?

亚马逊云科技管理控制台中提供了详细的账单报告,其中显示了所有实例的 Spot 实例启动和终止/停止时间。客户可以通过 API 将账单报告与历史 Spot 价格进行对比检查,以验证记入账单的 Spot 价格是否正确。

问:Spot 数据块(固定期限 Spot 实例)是否会中断?

Spot 数据块被设计为不会中断,无论 Spot 市场价格如何,都会在您选择的期限内不间断运行。在极少数情况下,Spot 数据块会因 亚马逊云科技的容量需求而被中断。在这些情况下,我们将在终止您的实例前提供一条两分钟的警告(终止通知),您无需为受影响的实例支付费用。

问:Spot 队列是什么?

借助 Spot 队列,您可以自动请求并管理多个为集群或应用程序提供最低单位容量价格的 Spot 实例,如批处理作业、Hadoop 工作流或 HPC 网格计算作业等。您可以添加应用程序能够使用的实例类型。您可以根据应用程序需求(按实例、vCPU、内存、存储或网络吞吐量等)定义目标容量,并在队列启动后更新目标容量。借助 Spot 队列,您可以启动和维持目标容量,并自动请求资源来替换任何中断或手动终止的资源。了解有关 Spot 队列的更多信息

问:提交 Spot 队列请求是否存在任何额外费用?

不存在, Spot 队列请求没有任何额外费用。

问:Spot 队列请求存在什么限制?

请参阅 Amazon EC2 用户指南的 Spot 队列限制部分,了解适用于您的 Spot 队列请求的限制。

问:如果我的 Spot 队列请求尝试启动 Spot 实例,但超过区域 Spot 请求限制该怎么办?

如果您的 Spot 队列请求超过区域 Spot 实例请求限制,单个 Spot 实例请求将失败,并显示“Spot request limit exceeded bid status”。Spot 队列请求的历史记录将显示队列请求收到的任何 Spot 请求限制错误。请参阅《Amazon EC2 用户指南》的监控 Spot 队列部分,了解如何描述您的 Spot 队列请求历史记录。

问:是否可以保证满足 Spot 队列请求?

不可以。通过 Spot 队列请求,您可以同时提交多个 Spot 实例请求,但其受可用性和价格的影响程度与单一 Spot 实例请求相同。例如,如果您的 Spot 队列请求中列出的实例类型没有可用的资源,那么我们可能无法满足您的部分或全部请求。我们建议您将可能适合工作负载的所有实例类型和可用区都添加到 Spot 队列中。

问:我能否提交多可用区队列请求?

能。请参阅《Amazon EC2 用户指南》的 Spot 队列示例部分,了解如何提交多可用区 Spot 队列请求。

问:我能否提交多区域 Spot 队列请求?

不能,我们不支持多区域队列请求。

问:Spot 队列如何跨启动说明中指定的各种 Spot 实例池分配资源?

RequestSpotFleet API 提供以下两种分配策略:lowestPrice 和 diversified。借助 lowestPrice 策略,您可以在请求时单位容量价格最低的实例池中预置您的 Spot 队列资源。借助 diversified 策略,您可以跨多个 Spot 实例池预置 Spot 队列资源。这样,您既能维持队列的目标容量,又能随着 Spot 实例容量的波动提高应用程序的可用性。

跨不同的 Spot 实例池运行您应用程序的资源还可以进一步降低您队列的累计运营成本。有关更多信息,请参阅 Amazon EC2 用户指南

问:我能否标记 Spot 队列请求?

您可以请求通过 Spot 队列使用标记来启动 Spot 实例。队列本身无法标记。

问:如何查看我的 Spot 实例属于哪个 Spot 队列?

您可以通过描述队列请求,确定与 Spot 队列关联的 Spot 实例。队列请求的所有 Spot 实例被终止后,此类请求将在 48 小时内可用。有关描述 Spot 队列请求的信息,请参阅 Amazon EC2 用户指南

问:我能否修改 Spot 队列请求?

目前,您只能修改 Spot 队列请求的目标容量。您可能需要取消该请求,然后提交一个新请求来更改其他请求配置参数。

问:我能否为希望使用的每个实例类型指定不同的 AMI?

可以,只需指定希望为 Spot 队列请求提供的每个启动规格所使用的 AMI。

问:我能否将 Spot 队列与 Elastic Load Balancing、Auto Scaling 或 Elastic MapReduce 配合使用?

您可以将 Spot 队列与 Auto Scaling 功能配合使用 (如目标跟踪、运行状况检查 和 Cloudwatch 指标等),还可以将实例连接到弹性负载平衡器 (传统负载均衡器和应用程序负载平衡器)。Elastic MapReduce 有一项名为“实例队列”的功能,其类似于 Spot 队列。

问:如果 Spot 实例停止在最低价格 Spot 池中运行,Spot 队列是否会请求终止 Spot 实例,然后在最低价格池重新启动?

不会,Spot 队列请求不会在实例运行时自动终止和重新启动它们。但是,如果您终止了一个 Spot 实例,那么 Spot 队列将使用新的最低价池中的新 Spot 实例进行补充。

预期用途和限制

使用本服务需遵守 亚马逊云科技 客户协议

关闭
1010 0766
由光环新网运营的
北京区域
1010 0966
由西云数据运营的
宁夏区域
关闭
由光环新网运营的
北京区域
由西云数据运营的
宁夏区域