阿里云竞价实例OpenApi入门实践

桂林seo半杯酒博客

阿里云竞价实例OpenApi入门实践

目的

本文目标是介绍开发者如何通过阿里云ECS SDK,合理快速的创建需要的SPOT竞价实例

准备工作

  • 首先要熟悉了解阿里云SDK的基础知识和调用方法,可以参考SDK 使用说明

  • Spot竞价实例代码需要依赖的ECS SDK版本4.2.0 以上

  • 以JAVA POM依赖举例,修改引入pom依赖:

  • 目前竞价实例灰度开放部分用户白名单开放,您可以用您的账号登陆购买页面,确认你的账号是否具备spot购买权限

  • 建议您提前通过自定义镜像来保证SOPT实例可以快速开始自己的业务功能。

哪些地域与规格可以购买竞价实例:

典型一个场景,我需要创建一批价格便宜量又足的计算资源,做业务数据处理。

但我不知道去哪个地域去创建需要的计算资源。

我们需要规划下对计算资源的大致需求:

  1. 地域,创建的竞价实例哪个地域创建。

  2. 规格 根据你的业务需求确定什么样规格实例

但是由于目前aliyun 每个地域因为售卖比率不同,每个地域可用对外开放售卖的规格存在很大差异。所以建议通过DesribeZones接口来获取您的账户可创建的地域与规格信息,帮助您选择地域和规格。

  • API名称: DesribeZones
  • API说明:https://help.aliyun.com/document_detail/25610.html
  • 代码示例:

OpenApiCaller.java

DescribeZonesSample.java

输出结果:

通过查询spot历史价格接口来获得最佳性价比的地域,规格信息

通过上一步我们可以基本确定哪个可用区可以生产的哪些具体规格,有了这些信息就可以通过DescribeSpotPriceHistory接口查询获取价格历史变化,最多允许获取30天内的价格变化数据。

  • API名称:DescribeSpotPriceHistory

  • API文档:https://help.aliyun.com/document_detail/60400.html

  • 代码实例:DescribeSpotPriceHistorySample.java

  • 返回结果

  • 重复以上步骤,您可以判断出该规格资源在可用区的价格变化趋势和最近价格。

  • 简单的策略通过平均价格和最高价格来决定是否可以接受购买该spot实例。

  • 当然从最小成本出发,可以通过更加合理的数据模型来分析价历史价格数据,随时调整创建资源的规格和可用区,到达最佳性价比。

创建Spot实例

通过以上过程,我们最终得到可以创建的资源的地域信息,规格属性,磁盘,网络等信息。现在就可以开始真正创建竞价实例了。

  • API名称:CreateInstance建议您提前在控制台或者openapi方式 在需要创建vm资源的地区创建好vpc专有网络,获取创建参数vswitchId

  • 建议您提前在控制台或者openapi方式 在需要创建vm资源的地区创建安全组,获取创建参数:SecurityGroupId

  • 接口文档:https://help.aliyun.com/document_detail/25499.html

  • 示例代码:CreateInstaneSample.java

spot实例中断

  • 竞价实例可能会因为价格因素或者其他ecs内部库存因素会强制回收竞价资源,此时会触发spot的中断

  • 在真正开始释放vm前 vm 会进入锁定状态, 提示vm 将会被自动回收,您可以针对vm 回收状态来自动化处理实例的退出逻辑

  • 目前spot的中断锁定状态可以通过2种方式来感知

vpc 实例可以通过metadata 来获取

metadata访问示例:

通过查询 describeInstances 返回的OperationLocks 感知是否vm进入准备回收状态

openapi获取锁定状态代码示例:DescribeInstancesSample.java

触发回收时输出结果:

启动,关机,释放 SPOT竞价实例

启动,停止,释放实例Spot 实例和其他实例没有任何区别,本文不再介绍,请参看相关api文档即可。