Spot竞价实例是一种非常更有效的成本节约手段。
引用AWS官网:
竞价型实例是一种使用备用 EC2 容量的实例,以低于按需价格提供。由于竞价型实例允许您以极低的折扣请求未使用的 EC2 实例,这可能会显著降低您的 Amazon EC2 成本。竞价型实例的每小时价格称为 Spot 价格。每个可用区中的每种实例类型的 Spot 价格是由 Amazon EC2 设置的,并根据竞价型实例的长期供求趋势逐步调整。您的竞价型实例在容量可用时运行。
如果能灵活控制应用程序的运行时间并且应用程序可以中断,竞价型实例就是经济实惠之选。例如,竞价型实例非常适合数据分析、批处理作业、后台处理和可选的任务。
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/using-spot-instances.html
下面简单进行测算。
一、通过CLI获得Spot价格
执行如下命令:
aws ec2 describe-spot-price-history --instance-types=m5.2xlarge --product-descriptions=Linux/UNIX
即可获得这个区域的近期1-2个月的价格。
例如返回信息中0.133500
就是每小时0.13美金的Spot价格。
{
"AvailabilityZone": "ap-southeast-1b",
"InstanceType": "m5.2xlarge",
"ProductDescription": "Linux/UNIX",
"SpotPrice": "0.133500",
"Timestamp": "2022-10-16T07:42:12+00:00"
},
二、对比On-Demand、RI、Spot的单位价格
三种方式申请资源的价格如下:
On-demand价格:https://aws.amazon.com/ec2/pricing/on-demand/
RI价格:https://aws.amazon.com/ec2/pricing/reserved-instances/pricing/
Spot价格:https://aws.amazon.com/ec2/spot/pricing/
将以上信息对比,可获知:
付费方式 | 价格 | 节省成本比例 |
---|---|---|
RI月价格(1年无预付) | $220.46 | |
On-demand每小时 | $0.48 | 100% |
RI折合每小时 | $0.30 | 37% |
Spot每小时 | $0.13 | 72% |
由此可见,使用Spot可带来显著的费用节约,在全月使用的情况下、且本Region Spot供应量充足、无价格波动情况下,使用Spot的成本只有买RI的成本的一半。
三、在一定业务场景下的成本对比
我们假设这样一个场景:
- 场景1:完全用RI
- 场景2:混合模式,一部分RI,一部分Spot。且假设仅在业务高峰期的数个小时使用Spot,其他业务低峰期不使用Spot,那么成本会进一步降低。例如全月时间720小时,业务高峰每天8小时,则1个月Spot会运行240小时。
按照以上场景核算成本,机型还是上一个章节查询到m5.2xlarge机型,区域以新加坡region为例。
通过此表格可看出,在假设20个RI,被优化为10个RI+10个Spot(且只在高峰期开启)的场景后,成本节约了43%。在实际使用中,还可以调整RI和Spot的比例,调整高峰期Spot的运行时间,可以进一步优化成本,甚至可节约原来的50%以上。
四、参考资料
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html