基础概念
1、地域可用区概念
- 地域是指物理的数据中心.
- 可用区是指在同一地域内,电力和网络互相独立的物理区域。官网详解
2、产品概念:产品基本形态由四部分组成,<计费方式, 规格与IO优化,网络类型, 磁盘类型>
- (1) 计费方式:目前主要有 包年/包月/包周、按量付费、竞价实例 三种。
- (2) 规格与IO优化:ECS 实例规格定义了实例的 CPU 和内存的配置(包括 CPU 型号、主频等)这两个基本属性,目前新售卖的规格,都是默认IO优化
- (3) 网络类型: 目前主要分为经典网路与专有网络,网络详解
- (4) 磁盘类型: 磁盘主要分为云盘与本地盘。云盘详解
资源定位步骤
1、步骤概览
步骤 | 对应接口 | 对应参数 | 目标数据 |
---|---|---|---|
1、查询地域 | DescribeRegions | N/A | 地域名称(RegionId) |
2、查询可用区 | DescribeZones | 地域名称 | 可用区名称(ZoneId) |
3、确定付费类型 | DescribeZones | 付费类型/竞价策略 | 可用区资源组合 |
4、查询资源组合 | DescribeZones | 地域名称/付费类型 | 可用区资源组合 |
2、步骤注释
注1、实例的付费方式。取值范围:
- PrePaid:预付费,即包年包月
- PostPaid:后付费,即按量付费。
- 默认值:PostPaid
注2、竞价策略。后付费实例的竞价策略。
当 InstanceChargeType 为PostPaid 时为生效,
取值范围:
- NoSpot:正常按量付费实例;
- SpotWithPriceLimit:设置上限价格的竞价实例;
- SpotAsPriceGo:系统自动出价,最高按量付费价格。
- 默认值:NoSpot
注3、可用区资源组合
AvailableResourcesType 中的详细信息组合
名称 | 类型 | 描述 |
---|---|---|
IoOptimized | String | 是否 IO 优化 |
NetworkTypes | String | 支持的网络类型 |
InstanceGenerations | Array | 支持的实例系列 |
InstanceTypeFamilies | Array | 支持的实例规格族 |
SystemDiskCategories | Array | 支持创建的系统盘类型组成的数组 |
DataDiskCategories | Array | 支持创建的数据盘类型组成的数组 |
InstanceTypes | Array | 支持创建的实例规格组成的数组 |
3、案例与步骤
背景 : 开发小王,需要调用openAPI购买2台阿里云服务器ECS。具体需求是:杭州地域、双可用区容灾,包年包月,专有网络,企业级独享实例ecs.sn1.medium(2核心4G内存)实例。
问题 1、是否可以购买?
问题 2、哪个可用区满足要求?
1、确定地域的regionId;
首先,调用步骤1的DescribeRegions 接口,拿到杭州的regionID:
请求示例
https://ecs.aliyuncs.com/?Action=DescribeRegions
&<公共请求参数>
返回示例
<DescribeRegionsResponse>
<RequestId>611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F</RequestId>
<Regions>
<Region>
<RegionId>cn-hangzhou </RegionId>
</Region>
<Region>
<RegionId>cn-qingdao</RegionId>
</Region>
</Regions>
</DescribeRegionsResponse>
2、确定付费类型;
根据注释及DescribeZones参数,确定包年包月参数
InstanceChargeType = PrePaid
3、查询可见可用区;
根据步骤1、2 确定了reigonId 及InstanceChargeType,调用DescribeZones查询可用区
请求示例
https://ecs.aliyuncs.com/?Action=DescribeZones
&RegionId=cn-hangzhou
&InstanceChargeType=PrePaid
&<公共请求参数>
返回示例
{
"RequestId":"ED962F8E-BAAE-4569-857C-F7B8932F1CF3",
"Zones":{
"Zone":[
{
"AvailableResourceCreation":Object{...},
"AvailableResources":Object{...},
"AvailableInstanceTypes":Object{...},
"ZoneId":"cn-hangzhou-f",
"AvailableVolumeCategories":Object{...},
"LocalName":"华东 1 可用区 F",
"AvailableDiskCategories":Object{...}
},
Object{...},
Object{...},
Object{...},
Object{...}
]
}
}
拿到zoneId列表 cn-hangzhou-b/cn-hangzhou-c/cn-hangzhou-e/cn-hangzhou-f
4、查询产品;
根据步骤3的返回实例,细致化分析可用区f内资源情况
1、可创建产品类别
AvailableResourceCreation 中代表可用区内可以创建的
- 虚拟交换机:VSwitch
- 实例:Instance
- 独立云盘:Disk
以上三种资源
返回示例
{
"AvailableResourceCreation":{
"ResourceTypes":[
"VSwitch",
"Instance",
"Disk"
]
},
2、可创建资源组合
确定了可用区可以创建实例,接下来分析可用区实例资源组合
返回示例
"AvailableResources":{
"ResourcesInfo":[
{
"IoOptimized":true,
"SystemDiskCategories":{
"supportedSystemDiskCategory":[
"cloud_ssd",
"cloud_efficiency"
]
},
"InstanceTypes":{
"supportedInstanceType":[
"ecs.sn1.medium",
"...",
]
},
"InstanceTypeFamilies":{
"supportedInstanceTypeFamily":[
"ecs.sn1",
"..."
]
},
"DataDiskCategories":{
"supportedDataDiskCategory":[
"cloud_ssd",
"cloud_efficiency"
]
},
"InstanceGenerations":{
"supportedInstanceGeneration":[
"ecs-3",
"..."
]
},
"NetworkTypes":{
"supportedNetworkCategory":[
"vpc"
]
}
},
Object{...}
]
}
AvailableResources 中代表可用区内可以创建的资源组合
- 规格:InstanceTypes,寻找 ecs.sn1.medium
- IO优化:"IoOptimized", 寻找 true,
- 磁盘类型:SystemDiskCategories/DataDiskCategories, 寻找cloud_efficiency
- 网络类型:NetworkTypes, 寻找vpc
确定资源可用区f AvailableResources组合中,有且满足小王要求的产品。
按照同样的步骤,寻找到第二个可用区 b
3、创建实例;
- 1、创建虚拟交换机:确定了可用区后,就可以在对应对应可用区创建虚拟交换机。
- 2、创建对应产品:确定传入对应的产品组合:
- 地域:RegionId =cn-hangzhou
- 可用区:ZoneId =cn-hangzhou-f
- 虚拟交换机:VSwitchId =id1/id2
- io优化:IoOptimized =optimized
- 规格:InstanceType =ecs.sn1.medium
- 磁盘:SystemDisk.Category=cloud_efficiency
总结
工欲善其事必先利其器,理解并使用云服务器ECS资源查询的正确姿势,可以大大提升OpenAPI用户创建ECS的效率,希望大家多多使用,多多支持。