采用Spot优化EC2价格的测算

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.48100%
RI折合每小时$0.3037%
Spot每小时$0.1372%

由此可见,使用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