关于阿里云ECS弹性供应组的详细使用情况,您可以通过控制台或者API这两种方式来创建、查询、修改以及删除一个弹性供应组,下面将为您介绍如何管理弹性供应组的详细步骤。
控制台
创建
您可以通过地址:https://ecs.console.aliyun.com/进入ECS管理控制台,在最左侧标签栏中可以找到『部署与弹性』,展开后可以看到『弹性供应』标签,如下图所示:
图一 弹性供应组入口
如果您需要创建一个弹性供应组,只需要点击图一中『创建供应组』按钮,即可进入下图*应组设置界面,该界面中您需要填写如下信息:-
基本信息
- 供应组名称,命名规则是长度为2-128个字符。必须以大小写字母或中文开头,不能以 http:// 和 https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-);
- 供应组类型,分为一次性交付和持续保持。一次性交付:供应组仅在启动时尝试一次交付实例集群,调度失败也不会重试;持续保持:供应组在启动时尝试交付实例集群,并在持续监控实际容量和目标容量,未达到目标容量则尝试继续创建实例满足容量需求;
- 启动时间,可以立即启动,也可以设定具体时间进行启动。例如设置启动时间为:2019-07-25 00:00:00;
- 结束时间,可以无限期,也可以设定具体时间结束供应组。例如设置结束时间为:2019-07-31 00:00:00;
-
供应组容量,容量等于供应组内每种实例规格对应的实例数与该实例规格的容量权重的乘积之和。例如:
- 目标容量
- 抢占式实例的目标容量
- 按量实例的目标容
图二 弹性供应组基本信息及容量
以上信息填写完毕后,点击『下一步:模板配置』进行模板信息的填写。弹性供应组的模板配置主要包括启动模板设置和容量相关设置,具体配置信息如下:-
启动模板设置
-
启动模板,选择启动模板,如果还没有启动模板可以选择创建启动模板。
- 点击『新建启动模板』链接,去创建启动模板,具体创建启动模板的流程请参见Q1
- 点击『新建启动模板』链接,去创建启动模板,具体创建启动模板的流程请参见Q1
-
图三 新建启动模板入口
- 模板版本号,选择相应的模板版本号
-
是否扩展启动模板,启动模板的配置不能满足您的需求,可以设置扩展启动模板,信息主要包括:
- 可用区
- 虚拟交换机
- 实例规格
- 设置单台实例规格上限价格,选择实例规格后会有价格区间的提示及按量付费的价格。
- 实例规格权重,容量等于供应组内每种实例规格对应的实例数与该实例规格的容量权重的乘积之和。
- 优先级,选择您定义的扩展配置进行扩容按量实例时。当优先级较高的扩展配置无法创建 ECS 实例时,自动使用下一优先级的扩展配置创建 ECS 实例。
图四 扩展启动模板配置
-
容量相关设置
- 差额容量实例的默认付费类型,包括抢占式实例和按量付费实例。当设置的按量目标容量与抢占式目标容量之和小于供应组的目标容量时,此时的差额容量对应的实例会通过当前选项来确认实例的付费类型。
- 按量实例的扩容策略,包括成本优化策略和优先级策略。成本优化策略是按vcpu单价从低到高进行尝试创建;优先级策略是选择您定义的扩展配置进行扩容按量实例时。当优先级较高的扩展配置无法创建 ECS 实例时,自动使用下一优先级的扩展配置创建 ECS 实例。
- 抢占式实例的扩容策略,包括成本优化策略和均衡可用区分布策略。成本优化策略是按vcpu单价从低到高进行尝试创建;均衡可用区分布策略是在供应组指定的多个扩展配置对应的多可用区(即指定多个专有网络交换机)之间均匀分配 ECS 实例。
- 成本优化策略允许的规格数量,不能大于扩展启动模板的数量。
- 抢占式实例关停策略,包括停机和释放。如果选择释放策略,会释放掉抢占式实例,请注意及时备份数据。
- 设置全局的抢占式实例上限价格
- 供应组过期时是否关停供应组内实例
- 超过容量时是否关停供应组内实例
点击『下一步:确认创建』即可进入确认创建详情界面。
图五 模板配置的基本信息
确认创建详情界面,包括之前设定的基本信息、供应组容量、容量相关配置、启动模板及扩展启动模板信息,确认无误后点击『完成创建』进入到供应组列表界面。弹性供应组列表如下:图六 弹性供应组列表
通过以上几个步骤就可以在控制台中完成弹性供应组的创建。查看详情
弹性供应组创建成功后,弹性供应组列表中每个供应组都有对应的『详情』『修改』『删除』链接,用于管理您的弹性供应组,点击『详情』即可查看弹性供应组的详情,包括供应组设置、模板设置、供应组内实例及供应组历史:
-
供应组设置
- 基本信息,包括:供应组ID/名称、类型、供应组状态、启动时间及结束时间;
- 供应组容量,包括当前容量/目标容量、抢占式实例的当前容量/抢占式实例的目标容量及按量实例的当前容量/按量实例的目标容量;
- 容量相关设置,包括抢占式实例的扩容策略、成本优化策略允许的规格数量、抢占式实例关停策略、按量实例的扩容策略及供应组过期时是否关停供应组内实例;
-
模板设置
- 启动模板原始设置,包括启动模板ID/名称及启动模板版本号;
- 启动模板的扩展设置,包括可用区、实例规格、虚拟交换机、最高价、实例规格的容量权重及优先级;
- 实例列表,包括ID/名称、状态、可用区及实例规格;
- 供应组历史,包括任务ID、状态、开始时间及任务详情;
修改属性
如果您想在控制台中修改你的供应组,点击相应的供应组右侧的『修改』链接就可以进行修改,可以修改弹性供应组的信息如下:
- 基本信息,包括供应组名称;
- 供应组容量,包括目标容量、抢占式实例的目标容量及按量实例的目标容量;
- 容量相关设置,包括差额容量实例的默认付费类型、设置全局的抢占式实例上限价格、供应组过期时是否关停供应组内实例及超过容量时是否关停供应组内实例;
如下图所示,修改相应的配置信息,点击『确认』即可,修改供应组容量及容量相关设置,都会弹性供应组计算任务的重新调度。
图七 弹性供应组修改界面
删除
如果您想从控制台中删除弹性供应组,选择将要删除的弹性供应组,点击弹性供应组右侧对应的『删除』链接。同样的,也可以通过左侧勾选栏,选中后点击『删除供应组』按钮,效果与『删除』操作链接类似。
图八 选中并删除供应组
点击『删除』链接或者勾选供应组并点击『删除供应组』按钮,会弹框提示:图九 删除供应组提示框
提示框中有『供应组内实例是否删除』开关的意义:- 打开:所有由该弹性供应组创建的实例都将会被释放;
- 关闭:所有由该弹性供应组创建的实例将被移出该供应组,并保持原来的运行状态,该供应组被删除;
最后点击『确认』即可完成删除供应组。
API
创建
如果您想通过调用API的方式创建一个弹性供应组,您可以调用CreateAutoProvisioningGroup;
核心参数设置
- 弹性供应组关联的实例启动模板的ID:LaunchTemplateId,与RunInstances中的启动模板ID参数用法一致,您可以调用DescribeLaunchTemplates查询可用的实例启动模板;
- 弹性供应组的目标总容量:TotalTargetCapacity,这里必须明确容量的概念,容量等于供应组内每种实例规格对应的实例数与该实例规格的容量权重的乘积之和;
- 弹性供应组的类型:AutoProvisioningGroupType,request一次性交付实例集群,类似于RunInstances,即使调度失败也不会重试;maintain可以持续保持供应组内总目标容量,不满足是会自动触发调度任务去创建实例;
-
扩展启动模板,弹性供应组的特定和优势均是基于扩展启动模板的数量,为了充分发挥APG的能力,需要保证扩展启动模板数量充足;
- LaunchTemplateConfig.N.InstanceType,第N个扩展启动模板对应的实例规格;
- LaunchTemplateConfig.N.MaxPrice,第N个扩展启动模板对应的最大价格;
- LaunchTemplateConfig.N.VSwitchId,第N个扩展启动模板对应的虚拟交换机的ID;
- LaunchTemplateConfig.N.WeightedCapacity,第N个扩展启动模板对应的容量权重;
- LaunchTemplateConfig.N.Priority,第N个扩展启动模板对应的优先级;
备注
弹性供应为免费功能,但是您需要为通过弹性供应组创建出的实例资源付费,详情请参见抢占式实例计费和按量付费。
查看详情
如果您想通过调用API的方式去查询供应组设置及模板设置,您可以调用DescribeAutoProvisioningGroups,该接口支持查询多个弹性供应组的设置信息,需要注意弹性供应组ID(AutoProvisioningGroupId.N)参数的格式;
当您调用DescribeAutoProvisioningGroupInstances,获取弹性供应组内的实例详情时,请注意该接口不支持批量查询,且弹性供应组ID(AutoProvisioningGroupId)参数为必填项;
当您调用DescribeAutoProvisioningGroupHistory,获取弹性供应组的调度任务信息时,请注意该接口同样不支持批量查询,且弹性供应组ID(AutoProvisioningGroupId)参数也是必填项。
修改属性
如果您希望通过调用API的方式去修改一个弹性供应组的设置信息,您可以调用ModifyAutoProvisioningGroup,调用该API请请您注意以下两点:
- 如果修改了供应组容量或者容量相关设置,供应组会在修改完成后执行一次调度任务;
- 如果供应组处于删除中状态,无法修改供应组;
删除
如果您希望通过调用API的方式去删除一个弹性供应组,您可以调用DeleteAutoProvisioningGroup,删除弹性供应组前,请您务必确认清楚弹性供应组的信息,避免误删错删。
备注
您可以通过TerminateInstances指定供应组内实例的行为。可以保留供应组内的实例,也可以跟随供应组一起删除组内实例;