在创建伸缩组时,您需要指定合适的移出实例组合策略,弹性伸缩会按指定策略移出伸缩组内合适的ECS实例。本文介绍各组合策略的生效方式和结果示例,有助于您选择与业务场景匹配的组合策略。
背景信息
移出实例组合策略就是以下策略的组合,伸缩组移出ECS实例时会同时受限于该组合策略:
- 扩缩容策略:根据可用区或者ECS实例的成本,加入或者移出合适的ECS实例。缩容时,弹性伸缩按策略筛选并移出伸缩组内合适的ECS实例。具体策略如下:
- 优先级策略:先指定的交换机优先级最高。弹性伸缩优先在优先级最高的交换机所在可用区尝试扩缩容,如果无法扩缩容,则自动在下一优先级的交换机所在可用区进行扩缩容。
- 均衡分布策略:在伸缩组关联多个交换机且交换机分布在两个以上可用区时生效。弹性伸缩扩缩容后,伸缩组内各交换机所在的可用区之间ECS实例均衡分布。
- 成本优化策略:在伸缩配置中指定了多个可选实例规格时生效。扩容时弹性伸缩按vCPU单价从低到高尝试创建ECS实例,缩容时按vCPU单价从高到低尝试移出ECS实例。
- 实例移出策略:根据时间的先后顺序,筛选伸缩组内符合条件的ECS实例。具体策略如下:
说明 实例移出策略支持设置两段策略:
- 设置一段策略时,弹性伸缩只按照第一段策略筛选。
- 设置两段策略时,弹性伸缩先按第一段策略筛选,再从筛选结果中进行第二段筛选,但不支持为这两段设置相同的选项。
- 最早伸缩配置对应的实例:筛选添加时间最早的伸缩配置和启动模板对应的实例。手动添加的实例没有关联伸缩配置或启动模板,因此不会首先选出手动添加的实例。如果已移出全部关联的实例,仍需要继续移出实例,则随机移出手动添加的实例。
说明 最早伸缩配置对应的实例中提到的伸缩配置泛指组内实例配置信息来源,包括伸缩配置和启动模板。
启动模板的版本号低不代表添加时间早,例如在创建伸缩组时选择实例启动模板lt-foress的版本2,然后修改伸缩组,选择实例启动模板lt-foress的版本1,则对伸缩组来说,启动模板lt-foress的版本2是最早的。
- 最早创建的实例:筛选创建时间最早的实例。
- 最新创建的实例:筛选创建时间最新的实例。
- --无策略--:仅在设置再从结果中移出时可选,表示不进行第二段筛选。
假设,某伸缩组内存在的ECS实例如下表所示。本文主要以该伸缩组为例,以扩缩容策略为场景分类,为您展示弹性伸缩在不同的组合策略下如何移出一台ECS实例。
说明 下表中各实例数据仅作为示例,实际数据,请以弹性伸缩控制台为准。
实例ID | 可用区 | 加入时间 | 伸缩配置
(asc-1的添加时间最早) |
vCPU单价(美元) |
---|---|---|---|---|
i-1 | 杭州可用区H | 2021年5月17日 11:05 | asc-1 | 1 |
i-2 | 杭州可用区I | 2021年5月18日 11:05 | asc-1 | 2 |
i-3 | 杭州可用区I | 2021年5月19日 11:05 | asc-1 | 3 |
i-4 | 杭州可用区H | 2021年5月20日 11:05 | asc-2 | 3 |
i-5 | 杭州可用区I | 2021年5月21日 11:05 | asc-2 | 3 |
场景一:扩缩容策略默认为优先级策略
弹性伸缩会严格按照实例移出策略筛选移出的ECS实例,优先级策略不改变该结果。下表说明该组合策略的最终效果。
第一段移出策略 | 第二段移出策略 | 说明 | 移出实例的实例ID |
---|---|---|---|
最早伸缩配置对应的实例 | 最早创建的实例 | 先筛选最早伸缩配置对应的实例,再从中选择最早创建的实例 | i-1 |
最新创建的实例 | 先筛选最早伸缩配置对应的实例,再从中选择最新创建的实例 | i-3 | |
无策略 | 筛选最早伸缩配置对应的实例,再从中随机选择一台ECS实例 |
|
|
最早创建的实例 | 最新创建的实例 | 移出最早创建的ECS实例 | i-1 |
最早伸缩配置对应的实例 | 先筛选最早创建的ECS实例,再从中选择最早伸缩配置对应的实例 | i-1 | |
无策略 | 移出最早创建的ECS实例 | i-1 | |
最新创建的实例 | 最早创建的实例 | 移出最新创建的ECS实例 | i-5 |
最早伸缩配置对应的实例 | 先筛选最新创建的实例,再从中选择最早伸缩配置对应的实例 | i-5 | |
无策略 | 移出最新创建的ECS实例 | i-5 |
场景二:扩缩容策略为均衡分布策略
弹性伸缩会按照均衡发布策略筛选ECS实例的可用区,再按照实例移出策略筛选并移出ECS实例,使移出ECS实例后伸缩组各可用区的ECS实例数量大致相当。
本示例中,由于位于杭州可用区I的ECS实例比位于杭州可用区H的ECS实例多一台,所以,均衡发布策略的筛选结果为杭州可用区I的ECS实例,实例ID分别为i-2、i-3和i-5。下表结合实例移出策略说明该组合策略的最终效果。
第一段移出策略 | 第二段移出策略 | 说明 | 移出实例的实例ID |
---|---|---|---|
最早伸缩配置对应的实例 | 最早创建的实例 | 先筛选最早伸缩配置对应的实例,再从中选择最早创建的实例 | i-2 |
最新创建的实例 | 先筛选最早伸缩配置对应的实例,再从中选择最新创建的实例 | i-3 | |
无策略 | 筛选最早伸缩配置对应的实例,再从中随机选择一台ECS实例 |
|
|
最早创建的实例 | 最新创建的实例 | 移出最早创建的ECS实例 | i-2 |
最早伸缩配置对应的实例 | 先筛选最早创建的ECS实例,再从中选择最早伸缩配置对应的实例 | i-2 | |
无策略 | 移出最早创建的ECS实例 | i-2 | |
最新创建的实例 | 最早创建的实例 | 移出最新创建的ECS实例 | i-5 |
最早伸缩配置对应的实例 | 先筛选最新创建的实例,再从中选择最早伸缩配置对应的实例 | i-5 | |
无策略 | 移出最新创建的ECS实例 | i-5 |
场景三:扩缩容策略为成本优化策略
弹性伸缩会按照成本优化策略筛选并移出vCPU单价最高的ECS实例。如果伸缩组存在多个vCPU单价最高的实例时,弹性伸缩再按照实例移出策略筛选并移出ECS实例。
本示例中,由于vCPU单价最高为3美元,所以,成本优化策略的筛选结果是实例ID为i-3、i-4和i-5的ECS实例。下表结合实例移出策略说明该组合策略的最终效果。
第一段移出策略 | 第二段移出策略 | 说明 | 移出实例的实例ID |
---|---|---|---|
最早伸缩配置对应的实例 | 最早创建的实例 | 先筛选最早伸缩配置对应的实例,再从中选择最早创建的实例 | i-3 |
最新创建的实例 | 先筛选最早伸缩配置对应的实例,再从中选择最新创建的实例 | i-3 | |
无策略 | 筛选最早伸缩配置对应的实例,再从中随机选择一台ECS实例 | i-3 | |
最早创建的实例 | 最新创建的实例 | 移出最早创建的ECS实例 | i-3 |
最早伸缩配置对应的实例 | 先筛选最早创建的ECS实例,再从中选择最早伸缩配置对应的实例 | i-3 | |
无策略 | 移出最早创建的ECS实例 | i-3 | |
最新创建的实例 | 最早创建的实例 | 移出最新创建的ECS实例 | i-5 |
最早伸缩配置对应的实例 | 先筛选最新创建的实例,再从中选择最早伸缩配置对应的实例 | i-5 | |
无策略 | 移出最新创建的ECS实例 | i-5 |