Amazon Spot 实例官方说明文档

5 篇文章 0 订阅
1 篇文章 0 订阅

Amazon EC2 Spot实例

Spot实例是一种新的Amazon EC2消费实例。该种实例允许用户对未使用的Amazon EC2能力进行竞价,并且只要竞价超过了当前的Spot价格,就可以一直使用。Spot价格根绝供需周期性地变更,用户的价格若在周期内再次超过定价则会可以重新访问可用的Spot实例。Spot实例提供了另一种获得计算能力的选择,是On-Demand实例和Reserved实例的补充。

Spot实例可以大幅度地减少用户的开销,因为用户在运行应用的时候极具灵活性。而且,在紧急时刻,Spot实例一样可以对计算能力进行大规模的扩展。

 

Spot实例的工作方式

Spot实例使您能够对目前没有使用的AmazonEC2能力竞价,实例的价格是由Amazon EC2基于供需状况的周期性波动而制定的。要使用Spot实例的话,您需要设置Spot实例请求:指定实例类型、期望的可用区域、运行的实例数量以及您的最高可承受(每实例小时)价格。Amazon EC2 API和AWS Management Console提供了过去90天的Spot历史价格,以便您在定制竞购价格的同时用以参考。如果您的竞购价格超过了当前的Spot价格,那么您的实例请求将会马上被接受,实例将会马上被执行。当您选择终止请求或者Spot价格增长到超过您的竞购价格的时候,实例都将会在稍微自动终止。

这里,有两点是非常需要注意的:

1. 一般来说,您所支付的费用将低于您的竞购价格。Spot价格在收到请求和可用供应改变的时候都会周期性调整。不论竞购价格高出多少,每个人在当前周期所支付的Spot价格都是一样的。您将不会支付多于您竞购价格的费用。

2. 当您正在运行Spot实例且您的竞购价格被当前Spot价格超过的时候,您的实例将被终止。这意味着您需要确认您的工作和应用在面对这种机会主义的时候足够灵活。这也意味着若您需要您运行的Spot实例在在一定周期内不被打断,那么您需要设置比较高的竞购价格,特别是您不希望总是支付您的最高竞购价的时候。

Spot实例在被执行的时候和其他Amazon EC2实例是非常相似的,正如其他实例一样, Spot实例可以在您不需要的时候立即终止。如果您终止了您的实力,您将只需要支付部分小时费用(partial hour, 类似于On-Demand或者Reserved实例)。然后,和其他实例不同的是,若是由于您的竞购价格低于当前Spot价格的原因,您的实例被Amazon EC2终止的时候,您将不需要支付任何部分小时费用。

Spot的特征

为了更简便地去编写适用于Spot实例的应用,需要注意以下几点:

持续性请求(persistent request): Spot实例的请求可以是一次性(one-time request)的也可以是持久性(persistentrequest)的。一个一次性请求将只会被满足一次;而一次持续性请求将会在每一次实例被终止后仍然保持。这意味着, 在您的持续性请求在被满足之后被你或是Amazon EC2终止后,请求将会以相同的参数被系统重新提交。持续性请求将会一直持续地提交请求知道您取消了它。持续性请求在您有大运算量任务且有某固定预算价格的情况下特别有用。在您的竞购价格高于当前Spot价格的时候,您能够利用持续性请求在任何时候创建实例并且稳定地执行任务。

创建组并定义可用区域: 如果您希望运行能经常同时创建和终止的实例集群,这里给出了两个特别有用的建议。首先,您要制定一个在您的请求中指定一个创建组。这会告知Amazon EC2只有在所有这些实例都能满足的时候才去创建这些实例。其次,您可以选择定义一个可用区域组以确保您的实例将会被创建在一个单独的可用区域中。这种限制对于许多应用来说都是很有用的;然而,如果不需要的话,规避这种限制可以一定程度上增加您的请求被满足的几率。

历史价格: 对于每一种经由AWS Management Console 和 Amazon EC2 APIs ,存在于Availability Zone中的Spot实例来说, Amazon EC2都提供了其历史价格。Spot历史价格帮助您明确您的请求在过去已经被满足的频繁度,并显示您愿意付出去执行工作的最大价格。另一方面,Spot历史价格可以帮助您确定如何确定最大价格以增加您的实例会被继续运作可能性。

Amazon Elastic MapReduce整合 :AWS的用户能够在Spot实例上运行他们的AmazonElasticMapReduce应用,这样可以显著减少在管理Apache Hadoop 集群上处理大量数据的开支。用户可以在Spot实例上运行他们的Elastic MapReduce应用以尽享最大程度的成本节省,或者也可以把Spot实例和On-Demand / Reserved实例结合起来,用来预防因为Spot实例竞价失败而造成的集群失效。欲知该特性的扩展信息,包括如何通过Java SDK和Ruby CLI去使用他,请浏览Amazon Elastic MapReduce 开发者指南中的 Spot Instances section 一节。

Amazon VPC 整合 : 您可以在您自己的Amazon VPC内竞购那些未使用的Amazon EC2能力并运行那些实例。通过把Spot实例和Amazon VPC整合在一起,您可以配置您自己的私有虚拟网,包括选择IP地址范围、创建子网、配置路由表和网关。欲知Spot实例和Amazon VPC整合的更多信息,请浏览Amazon EC2开发者指南的Spot Instances in Amazon VPC Quick Start Tutorial一节。


 

了解Spot请求和Spot价格

Spot实例可用于Linux / Unix, SUSE Linux 以及Microsoft Windows操作系统之上。Spot实例和On-Demand实例的关键区别是,您的实例不会马上被开始,每小时的价格是可变的,而且AmazonEC2可能会终止个别的Spot实例。这一节,以一个简单的例子描述这些是怎么运作的。

了解您的实例何时将被开始

假设您决定设置一个Spot请求,请求的资源是位于美国东北弗吉尼亚州美国东部1号数据中心的一个标准小实例(m1.small)。使用AWS Management Console或者使用Amazon EC2 API,您可以看到在该可用区域每1-2小时Spot实例的价格大致波动在$0.030/hr与$0.060/hr之前,而目前的价格为$0.050/hr。您决定您希望以$0.045/hr的价格去竞标。您使用AWS Management Console或者AWS EC2 API产生请求。因为您的竞购价格低于当前的实际Spot价格,实例将不会被创建而且您的请求仍然处于等待状态。

2小时之后,Spot实例的价格跌到了$0.045/hr。这时候,您的请求可能会被处理(也可能不会)。这是因为您的竞购价格与当前价格相当,可能会有很多请求的价格略高于您而比您的请求之前被满足。那就假设您的实例没有被开始吧,30分钟之后,Spot价格跌至了$0.039/hr。因为您的价格高于该价格了,一个Spot实例将会稍后被创建,而且您只需要为此实例的第一个小时支付$0.039/hr。

了解您的实例何时该结束

继续我们的例子,3小时过后,Spot价格增长到了$0.043/hr。您现在将要为您的实例继续运行而支付$0.043/hr的费用。您不用担心Amazon EC2会关闭您的实例,因为您的竞购价格是高于Spot当前价格的。

1小时之后,Spot价格飙至$0.045/hr了。这个时候,您的实例可能会被终止(也可能不会,根据供应资源的稀缺程度)。若在这样的情况下继续运行,那么您需要支付$0.045/hr。

最终,4个小时过去了,Spot价格增长到$0.055/hr。因为这个价格高于您的竞购价格,所以您的Spot实例将会被Amazon EC2终止。您将不会因突然的终止而被收取那部分小时的费用,因为费用都是按小时计费的。

 

构建使用Spot实例的应用程序

采用可以应对潜在中断的架构:因为Spot实例被终止时是毫无征兆的,所以构建一个被中断时仍然可以顺畅执行的应用程序是很重要的。有很多方法可以做到这一点,比如把任务分割成许多小的增量(通过网格,基于Hadoop架构,或者基于队列架构)或者在应用中加入检查点并频繁的保存任务。使用Amazon EBS来存储数据,是保护您的数据的简单方法之一。不论您的价格是如何的,只要您的应用能够处理中断,您就有机会去显著减少您的实例开支。

测试您的应用:当在使用Spot实例的时候,确认您的应用有足够的容错能力以及正确处理中断的能力是非常重要的。即使我们尝试利落地终止您的实例,您的应用也必须为立即终止做好万全准备。测试时,您可以用On-Demand实例去测试运行应用并马上终止它。这可以帮助您知道您的应用是否具有在不可预测的中断情况下具有显著的容错能力。

当Spot实例开始和终止时进行跟踪:最简单的掌握您的Spot实例当前状态的办法就是监视您的Spot请求并且通过Amazon Management Console或者Amazon EC2 API运行实例。

为您的请求选择一个最大竞购价格:请记住,您在请求中提交的最高竞购价格和您每小时需要支付的资费并不完全相关,但是其确是您保持其运行的期望价格。您最好设置一个足够高的价格,使得在您期望的时间范围内您的实例将会被大概率地运行。使用通过AWS Management Console或者Amazon EC2 API获得的Spot历史价格进行分析,可以帮助您更好地设置最大竞购价格。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值