亚马逊AWS官方博客
如何自动化的选择和优化EC2系列(一)利用AWS Price List API生成中国区的EC2 价格表
需求背景
企业客户在上云的实践过程中,一般都要经历系统迁移入云和云上运维优化这两个重要的阶段,且云上的优化是需要定期不停的做下去的,以达到持续降低成本、优化资源的使用率,以最小的成本、最大的资源利用率来保证业务系统稳定的运行,并能够根据业务系统的实际使用量来分配资源(减低配置或者扩容)。
我们将分以下五个部分,介绍如何使用AWS API自动化的进行机型选择:
- 利用AWS Price List API生成中国区的EC2 价格表
- 在迁移项目中,如何自动选择最经济的EC2
- 如何进行EC2优化,进一步优化成本
- 如何为SAP应用选择合适的EC2
- 如何整合RI续购日期
本文先介绍第一部分:利用AWS Price List API生成中国区的EC2 价格表
方案概述
为了选择合适的EC2机型,第一步要做的就是了解不同机型的配置以及价格,通常我们会去访问AWS中国区的网页(https://www.amazonaws.cn/en/ec2/pricing/ ),来查找相关的信息。如果你访问过这个网页,你就会发现,找到你需要的信息是一件多么繁琐的事情。如果你要了解EC2不同机型的配置,你需要访问On-Demand instances 的价格,因为在Reserved Instance网页中没有机型的配置信息。如果你要比较满足一定配置要求(vCPU,Memory)的不同服务器的一年All Upfront Reserve Instance价格,你就需要来回查看不同网页中的信息,非常费事。这时你也许会想,如果这些信息都保存在一张EXCEL表格中,那用起来该多方便啊!
下面就介绍一种利用AWS Price List API生成你需要的价格表的方法。这里我们首先会用到Lyft公司开发的awspricing Python Library(https://github.com/lyft/awspricing ),但是这个Python Library只能查询海外的EC2价格和RDS价格,为了使其能够查询国内的价格,我做了一些改动,使其成为中国版的awspricing Python Library ,下载地址是:https://github.com/shaneliuyx/awscnprice
安装方法很简单:
- git clone https://github.com/shaneliuyx/awscnprice.git
- cd awscnprice
- 执行如下命令:
现在你就可以正常使用了。
生成EC2价格表
我编写了一个名为get_ec2_info.py的程序,只要给出输出文件的名字,就可以得到EC2配置和价格的信息。
#使用中国版的awspricing Python Library
#接下来设置环境变量:
#AWSPRICING_USE_CACHE设置为1,使用Cache文件
#Cache文件的位置:
#Cache文件的有效期:24小时
#设置需要得到的价格表信息:
此处设置为standard,得到的是标准Reserved Instance的价格,如果设置成convertible,则可以得到可变RI的价格。
#设置输出文件名:
下面一段检查缓存文件是否存在,如果不存在,就从网上下载:
这个程序主要生成1年和3年RI的价格(包含All Upfront、Partial Upfront, No Upfront)以及On-Demand EC2的价格,包含China (Beijing)和China (Ningxia)两个Region。
使用如下API得到RI的价格(a_price)和On-Demand Instance(o_price)的价格。如果某类型的价格不存在,则价格显示为0
最后生成的表格是这样的:
完整的Python程序可以在此处下载:
https://github.com/shaneliuyx/awscnprice/blob/master/examples/get_ec2_info.py
如果想详细了解AWS Price List API,请参考如下网址的内容:
https://aws.amazon.com/blogs/aws/new-aws-price-list-api/
————
如何自动化的选择和优化EC2系列(一)利用AWS Price List API生成中国区的EC2 价格表(本博文)
如何自动化的选择和优化EC2系列(二)在迁移项目中,如何自动选择最经济的EC2
如何自动化的选择和优化EC2系列(三)如何进行EC2优化,进一步优化成本
如何自动化的选择和优化EC2系列(四)如何为SAP应用选择合适的EC2