
# 伸缩组的伸缩活动
当伸缩组需要添加/移除伸缩实例，或修改伸缩组关联的负载均衡器时，伸缩组会启动对应的操作流程，该流程被称为伸缩活动。
 #### 启动伸缩活动
满足以下条件时，系统会自动启动伸缩活动，停用伸缩组不会中断正在进行中的伸缩活动。
| 启动条件                                                                                                                                                                                  | 活动类型  | 满足方式                                                                                                                                                                        | 说明                                                                         |
|:---|:---|:---|:---|
| - 伸缩组状态为"启用"  - 期望实例数大于当前实例数     | 扩容活动  | - 手动修改期望实例数  - 伸缩策略执行   | -                                                                          |
| - 伸缩组状态为"启用"  - 期望实例数小于当前实例数    | 缩容活动  | - 手动修改期望实例数  - 伸缩策略执行          | -                                   |
| - 伸缩组状态为"启用"  - 手动移入伸缩实例   | 扩容活动  | 手动移入伸缩实例                                                                                                                                                                    | 手动移入或移除实例的指令下发成功后，伸缩组会自动增加或减少期望实例数，您无需再次手动修改伸缩组的期望实例数。                     |
| 手动移除伸缩实例                                                                                                                                                                              | 缩容活动  | 手动移除伸缩实例                                                                                                                                                                    | 手动移入或移除实例的指令下发成功后，伸缩组会自动增加或减少期望实例数，您无需再次手动修改伸缩组的期望实例数。                     |
| - 伸缩组状态为"启用"  - 健康检查失败              | 缩容活动  | 将云服务器关机，删除等操作 使用弹性负载均衡健康检查场景：关闭负载均衡器后端节点的端口等操作                                                                                                   | 健康检查失败导致的缩容活动不会修改期望实例数                                                     |
| - 伸缩组状态为"启用"  - 修改伸缩组关联的负载均衡器            | ELB迁移 | 手动修改伸缩组关联的负载均衡器                                                                                                                                                             | 修改伸缩组关联的负载均衡器指令下发成功后，伸缩组详细信息中依然显示修改前的负载均衡器信息， ELB迁移活动成功后，伸缩组的负载均衡器信息会自动更新。 |
   
 #### 缩容活动的云服务器删除规则
缩容活动移除实例的同时，会根据云服务器的类型、添加方式和计费方式决定是否同步删除云服务器。
表1云服务器删除规则 
| 云服务器类型    | 添加方式                 | 计费方式                                                                       | 是否删除 |
|:---|:---|:---|:---|
| 自动添加的云服务器 | 伸缩组通过扩容活动自动创建。       | **按需/竞价计费**                                                                | 是    |
| 自动添加的云服务器 | 伸缩组通过扩容活动自动创建。       | **包年包月** 此场景为自动添加按需计费云服务器后，您手动将云服务器计费方式修改为包年包月。 | 否    |
| 手动添加的云服务器 | 您手动创建的云服务器，并手动移入伸缩组。 | **按需/竞价/包年包月计费**                                                           | 否    |
   
#### 伸缩活动状态
伸缩活动的三种状态如下：
| 状态   | 说明                                                                                                                                                                                                  |
|:---|:---|
| 正在进行 | 伸缩活动启动后的默认状态                                                                                                                                                                                        |
| 失败   | 对于扩缩容活动，若存在任意数量的伸缩实例添加或移除失败，则伸缩活动整体状态为"失败"。 例如：某伸缩活动需要添加5个实例，实际成功添加4个，1个实例因资源不足原因添加失败，则伸缩活动状态为失败。 对于ELB迁移活动，任意数量实例重新绑定负载均衡器失败，则伸缩活动整体状态为"失败"。 |
| 成功   | 对于扩缩容活动，所有伸缩实例添加或移除成功，则伸缩活动整体状态为"成功。 对于ELB迁移活动，所有伸缩实例重新绑定负载均衡器成功，则伸缩活动整体状态为"成功。                                                                                          |
   
![](https://support.huaweicloud.com/usermanual-as/public_sys-resources/note_3.0-zh-cn.png)
- 伸缩活动失败后，已经添加成功的实例会继续保留在伸缩组中，并同时增加伸缩组的当前实例数
- 某些异常场景下，伸缩活动一定会失败，此时伸缩组会进入"异常"状态，如伸缩配置使用的keypair已经被删除，伸缩组使用的子网不存在等场景。
 
#### 伸缩活动的自动重试
当伸缩活动失败后，若当前实例数依然不等于期望实例数，则经过一段间隔时间后，伸缩组还会开始新的伸缩活动。
若伸缩活动连续失败，则重新开始伸缩活动的间隔时间逐渐延长，最短为10s，最长为20分钟。
![](https://support.huaweicloud.com/usermanual-as/public_sys-resources/note_3.0-zh-cn.png)
- 间隔时间为参考值，实际间隔时间会根据系统运行情况产生微小差异。
- ELB迁移失败不会重试，您需要重新下发修改伸缩组负载均衡器的指令。
- 伸缩组"异常"状态下，伸缩活动失败后无法重试。
 
#### 扩容活动的多可用区及规格优先级策略
在一次扩容活动内部，若您的伸缩组配置了多个可用区，则扩容活动会尝试在所有可用区创建云服务器，直到扩容成功或在全部可用区下创建失败。可用区的选择优先级由伸缩组的 "多可用区扩展策略"参数决定。
若您的伸缩配置使用了多个云服务器规格，则扩容活动会尝试使用所有规格创建云服务器，直到扩容成功或使用全部规格创建失败。规格的选择优先级由伸缩配置的"多规格使用优先策略"参数决定。
您可以通过[查询伸缩活动历史]获取伸缩活动记录列表。
#### 缩容活动的实例移除顺序
当您的伸缩组自动移除实例时，如果伸缩组内存在不属于当前配置的可用区的实例，会优先移除这些实例。其次，再按照配置的实例移除策略移除实例。
弹性伸缩目前支持的实例移除策略，包括如下四种方式：
- 较早创建的实例：创建时间较早的实例优先被移除伸缩组。当您将伸缩组中的实例升级为新的实例类型，可以逐渐将较旧类型的实例替换为较新类型的实例时，此策略非常有用。
- 较晚创建的实例：创建时间较晚的实例优先被移除伸缩组。如果要测试新的伸缩配置但不想在生产中保留它时，此策略非常有用。
- 较早创建的配置中较早创建的实例：较早创建的配置中较早创建的"实例"优先被移除伸缩组。如果要更新某个组并且逐步淘汰先前配置中的实例时，此策略非常有用。
- 较早创建的配置中较晚创建的实例：较早创建的配置中较晚创建的"实例"优先被移除伸缩组。
![](https://support.huaweicloud.com/usermanual-as/public_sys-resources/note_3.0-zh-cn.png)
手动移入伸缩组的云服务器不会遵循"实例移除策略"的要求，实例移除优先级最低，且移除时，系统不会删除该云服务器。当有多个手工加入伸缩组的云服务器时，移除规则是：先进先出。
 #### 查询伸缩活动历史
1. 登录[AS控制台](https://console.huaweicloud.com/ecm/?#/as/manager/groupConfigInfo/groupList)。
2. 单击目标伸缩组名称。 系统自动跳转至伸缩组概览页。
   ![](https://support.huaweicloud.com/usermanual-as/zh-cn_image_0000002722880607.png "点击放大")
   
   
3. 切换到"活动历史"页签。该页签展示进行伸缩活动的历史记录。 该页签记录了伸缩活动的ID、状态、活动类型、描述、开始时间和结束时间信息。单击具体的伸缩活动ID前的![](https://support.huaweicloud.com/usermanual-as/zh-cn_image_0000002723000539.jpg "点击放大")按钮，可以查看资源名称、状态和失败原因信息。
   您也可以使用页签右上角的过滤功能，查看指定时间段内的伸缩活动。
   ![](https://support.huaweicloud.com/usermanual-as/zh-cn_image_0000002693041184.png "点击放大")
   
   
 
