亚马逊AWS官方博客

实力省钱,总有一款适合您

众所周知,Amazon EC2 有多种经过优化的实例种类及付费模式供选择。那么每一类实例的价格优势在哪里?计费有什么不同?哪一种计费模式在满足业务需求的同时更节省成本呢?今天我们就来八卦一下

按需实例

这是AWS最基本最朴实的经典款,计费模式简单明了,用多少付多少。价格公道,童叟无欺。

预留实例

地地道道的“经济适用型”,只选对的,不选贵的!

不差钱儿,钱也要花的漂亮不是~

相比较按需实例,预留实例有两个明显的优势:1.预留容量 2. 价格折扣,最高可节省 75%。

你可以把它理解为包年模式的按需实例,有1年期或3年期。

付款方式有三种:No Upfront、Partial Upfront、All Upfront

No upfront: 不需要任何预付款,按月支付,每小时的价格低于按需的费率30%左右

Partial Upfront:下单的时候先付一部分费用,剩下的费用分摊12个月里,每月支付

All Upfront:一次付完一年的费用,每月无需再付

竞价实例

除了以上两种实例,今天给您介绍的是另一款比预留实例更优惠的实例类型,绝对有竞争力!与按需实例的价格相比,这类实例最多可以为您节省 90% 的成本呢。它就是竞价实例!听这名字,立刻就能想到竟拍,恩,想象力不错,是这么回事儿,价高者得!咦,说好的省钱呢?价高者得?我四不四傻?……囧一个……听我细细道来哈,真相是酱式儿滴…

啥是竞价实例?

首先聊聊啥是竞价实例。想象一下,Amazon有个很大的池子,把闲置的资源以远远低于按需实例的价格投入市场(请注意,竞价实例的价格是不固定的,Amazon EC2根据市场的供求关系定价,每小时价格随着市场供需变化波动)。由于定价较低,大家都抢着买,给谁用不给谁用呢。游戏规则就出来了:竞价!所以它的名字由此而生。

竞拍价格游戏规则

卖方:Amazon EC2根据市场供需定价(请注意,价格像波浪一样随时变化)

买方:出价(您愿意为实例出多少钱您自己定,但请求一旦提交,出价不能更改)

计费规则

如果您的出价高于现价,您的竞价型实例就会运行。所谓价“高”者“得”,您以高于其他竞争者的出价获得启动实例的机会,但实际不一定是以您出的价格收费,而是按照低于或等于您出价的当时的市场价格计费。很划算吧?当然啦,为了保护所有买方免于产生额外费用,竞价型实例的出价限制为按需价格的十倍。

由于这种实例的特点是根据需求的变化,每小时价格都在波动。因此当您使用竞价型实例时,您必须做好应对中断的准备(建议您不要为不能中断的应用程序使用竞价型实例)。

当现货价格上涨超过了您的出价或闲置的EC2实例供应减少时, Amazon 将终止您的竞价实例收回资源。在实例终止时,Amazon EC2会提前两分钟发出警告通知您。

如果您需要保证在一定的时间内使用这个实例,您可以选择创建带有指定持续时间的竞价型实例。当市场价格发生更改时,您的这些实例不会终止。不过这样一来,每小时的价格会比竞价实例的每小时价格要高。

竞价型实例运行方式及生命旅程

要想使用竞价实例,您需要创建一个竞价型实例请求,其中包括您需要的实例类型、实例数量、可用区以及您的出价。(请注意:提交请求之后,您无法更改竞价请求的参数,包括出价),同时选择请求类型,一次性或持久性?如果是持久性请求,竞价型实例终止之后会重新打开请求,再次加入下一轮竞价。

举个栗子,小编打算在俄勒冈区域的某个可用区购买一个m4.large的竞价实例

辣嚒,首先小编需要从 Amazon EC2 控制台或describe-spot-price-history 命令 (AWS CLI)查看近期的现货价格历史记录(最多可查看近三个月的现货价格历史记录)。小编查看了最近一周这个实例的市场价格,以帮助小编举牌。知己知彼,百战不殆嘛!

从上图可以看出,最近一周的价格波动区间是$0.1478/小时-$0.163/小时, 也可以选择在一天的范围内查看)。思来想去,小编决定最高出价$0.155/小时,好,准备举牌了!

一个小时……两个小时……小编的请求没被接受,此时的请求状态是Open,处于等待执行状态。因为目前的市场价格是$0.160,而小编出的最高价格$0.155低于目前的现货价格。

两个小时后,市场价格降到$0.155啦。嗯,机会来了。小编暗喜。高兴的有点儿早哎,这个时候,只能说有机会,但不能肯定这个实例一定被小编买到。果真,被隔壁老王抢了机会…… 继续等待。

再等等,一个小时后,现货价格降到$0.150。这时候低于小编的最高出价,请求生效,实例立刻启起来,第一个小时的价格$0.150 。

又两个小时过去了……市场价格涨到$0.152,但这个价格仍然低于小编的最高价。现在需要按照新的市场价格$0.152付费。

一个小时后,市场价格涨到了最高价$0.155,跟上面的情况一样,小编的实例不确定会不会被终止。由根据供求情况决定,假设没有出现意外,继续运行,现在这一小时按照$0.155收费。

又过了十个小时,现货价格涨到$0.158,高于小编出的最高价$0.155,Amazon EC2收回了容量终止了小编的实例。由于小编的竞价型实例在运行小时的中间被Amazon EC2中断,则小编无需为中断的不足 1 个小时部分付费。 当然了,如果是小编在实例运行小时的中间主动中断了竞价型实例,则需要为该小时付费。

现在是不是对竞价实例有了一点点了解?这里讲到的只是其中小小一部分啦,更多精彩的内容,请参看以下文档。小编最想说的是,不管是按需、预留还是竞价实例,每一种都有自己的优势,选择最适合的,灵活地为您的应用程序选择适当的价格组合,更好的优化成本才是目的。

相关参考链接:

https://aws.amazon.com/cn/ec2/spot/

http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/using-spot-instances.html

 

作者介绍:

郭雯,亚马逊AWS CS Concierge专员,负责AWS企业级支持服务客户的成本、账单和帐户等非技术问题的解答。