伸缩组是弹性伸缩的核心单元,用来管理一组具有相同应用场景和相同实例类型的实例。如果您有多个应用场景,您可以创建多个伸缩组,弹性伸缩会按照您的配置分别为每个伸缩组调整实例数量,以满足业务需求。
伸缩组类型的功能对比
当伸缩组类型为ECS时,弹性伸缩为该伸缩组扩缩容ECS实例。当伸缩组类型为ECI时,弹性伸缩为该伸缩组扩缩容ECI实例。不同伸缩组类型支持的功能有所区别,功能支持情况如下表所示。
功能类别 | 功能 | ECS | ECI | 控制台文档 | API文档 |
---|---|---|---|---|---|
伸缩组 | 基础配置 | 支持 | 配置伸缩组 | CreateScalingGroup | |
健康检查 | 支持 | 伸缩组内实例的健康检查 | |||
关联负载均衡 | 支持 | 为伸缩组添加和移出负载均衡实例 | |||
关联RDS | 支持 | 为伸缩组添加和移除RDS实例 | |||
实例配置来源 | 启动模板 | 支持 | 不支持 | 实例启动模板概述 | CreateLaunchTemplate |
伸缩配置 | 支持 | ||||
更新镜像任务 | 支持 | 不支持 | 无 | ||
实例列表 | 自动创建实例 | 支持 | |||
手动添加实例 | 支持 | 手动配置伸缩组实例 | AttachInstances | ||
伸缩规则与伸缩活动 | 伸缩规则 | 支持 | 配置伸缩规则 | CreateScalingRule | |
定时任务 | 支持 | 配置定时任务 | CreateScheduledTask | ||
报警任务 | 支持 | 配置报警任务 | CreateAlarm | ||
伸缩活动 | 支持 | 伸缩活动概述 | 无 | ||
伸缩组监控 | 支持 | 无 | |||
生命周期挂钩 | 支持 | 配置生命周期挂钩 | CreateLifecycleHook | ||
消息通知 | 支持 | 配置事件通知 | CreateNotificationConfiguration | ||
滚动升级 | 支持 | 滚动升级 | 无 |
伸缩组状态
弹性伸缩的伸缩组状态如下所示:
状态 | API对应的状态 | 说明 | 控制台文档 | API文档 |
---|---|---|---|---|
创建中/已创建 | Inactive |
|
||
启用中 | Inactive | 将处于停用状态的伸缩组重新启用时,此时伸缩组处于启用中状态。 | 启用伸缩组 | EnableScalingGroup |
运行中 | Active | 伸缩组启动成功后,您可以对其进行相应修改,此时伸缩组处于运行中状态。 | ||
停用中/已停用 | Inactive |
|
停用伸缩组 | DisableScalingGroup |
删除中 | Deleting | 删除伸缩组列表中不再需要的伸缩组,此时伸缩组处于删除中状态。 | 删除伸缩组 | DeleteScalingGroup |
组内实例配置信息来源
在创建伸缩组时,您需要为伸缩组选择组内实例配置信息来源。包含启动模板、选择已有实例(默认已创建一条伸缩配置)以及从零开始创建(手动创建伸缩配置)三种方式,区别如下所示:
方式 | 适用范围 | 区别 |
---|---|---|
启动模板 | 只适用于伸缩组类型为ECS的伸缩组,伸缩组类型为ECI的伸缩组暂不支持该配置方式。 |
|
选择已有实例 | 适用于伸缩组类型为ECS和ECI的伸缩组。 |
|
从零开始创建 | 适用于伸缩组类型为ECS和ECI的伸缩组。 | 创建伸缩组后,您还需要继续创建伸缩配置或启动模板作为伸缩组创建ECS实例或ECI实例的模板才能开始使用。 |
伸缩组内只能有一项生效的组内实例配置信息来源,例如,启用一条新的伸缩配置后,当前生效的实例启动模板或伸缩配置会失效。更多信息,请参见实例配置来源概述。
伸缩规则和伸缩活动
创建好伸缩组后,您需要设置伸缩规则来实现手动或自动伸缩ECS实例或者ECI实例资源。
- 伸缩规则:通过设置伸缩规则,您可以触发伸缩组的伸缩活动或者智能设置伸缩组边界值。更多信息,请参见伸缩规则概述。
在计算和执行过程中,伸缩规则可以根据伸缩组的最小实例数、最大实例数或者期望实例数自动调整可以增加或减少的ECS实例数。例如,伸缩规则中指定将伸缩组的ECS实例数调整至50台,但伸缩组最大实例数只支持45台,则整个伸缩规则会按调整至45台来计算和执行。关于期望实例数的更多信息,请参见期望实例数。
执行伸缩规则主要有以下几种方式:
- 伸缩活动:在执行伸缩规则、手动添加或移出已有ECS实例时,均会触发伸缩活动实现扩张或收缩操作。更多信息,请参见伸缩活动概述。
特点
伸缩活动具有以下特点:
- 伸缩活动不可以中断。例如,伸缩组创建20台ECS实例的伸缩活动正在执行中,当创建到第5台ECS实例时,您无法强行终止该伸缩活动。
- 伸缩活动有ECS实例加入伸缩组失败时,需要保持ECS实例级事务的完整性,而非伸缩活动级事务的完整性,即只进行ECS实例级回滚,而不是伸缩活动级回滚。例如,当伸缩组创建了20台ECS实例,但只有19台ECS实例成功加入负载均衡时,则只对不成功的1台ECS实例进行自动释放操作。
- 由于弹性伸缩是借助阿里云的RAM(Resource Access Management)服务,通过ECS OpenAPI弹性创建ECS实例,所以回滚的ECS实例在被释放前仍然会被扣费。
- 伸缩活动存在冷却时间,在该冷却时间内,伸缩组只会拒绝云监控报警任务类型的伸缩活动请求,其他类型的触发任务(例如手动执行伸缩规则、定时任务等)可以绕过冷却时间立即执行伸缩活动。关于冷却时间的更多信息,请参见冷却时间。
- 每个伸缩活动的最后一个ECS实例或ECI实例成功加入或移出伸缩组后,整个伸缩组的冷却时间才开始计时。
备注
伸缩组关联负载均衡或关联RDS后,伸缩组触发扩缩容活动时,您需要注意以下事项:场景描述 事项说明 伸缩组已关联负载均衡或负载均衡服务器组。 - 如果负载均衡或负载均衡服务器组被删除(不存在),则伸缩组扩缩容时会显示扩缩容失败。
- 弹性伸缩会定期扫描伸缩组是否存在关联的负载均衡或负载均衡服务器,如果检测负载均衡或负载均衡服务器组被删除(不存在),则系统会自动解绑伸缩组与该负载均衡或负载均衡服务器组(不存在)的关联关系。
重要 系统自动解绑与负载均衡(不存在)或负载均衡服务器组(不存在)的关联关系后,伸缩组再次扩缩容时,不会出现因该已解绑的负载均衡或该已解绑的负载均衡服务器组而导致扩缩容失败的情况。
伸缩组已关联RDS实例。 - 如果RDS实例被删除(不存在),则伸缩组扩缩容时会显示扩缩容失败。
- 弹性伸缩会定期扫描伸缩组是否存在关联的RDS实例,如果检测RDS实例被删除(不存在),则系统会自动解绑伸缩组与该RDS实例(不存在)的关联关系。
重要 系统自动解绑与RDS实例(不存在)的关联关系后,伸缩组再次扩缩容时,不会出现因该已解绑的RDS实例而导致扩缩容失败的情况。