124
技術社區[雲棲]
雲服務器ECS資源查詢的正確姿勢
基礎概念
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的效率,希望大家多多使用,多多支持。
最後更新:2017-09-10 22:03:47