伸缩组是弹性伸缩的核心单元,用来管理一组具有相同应用场景和相同实例类型的实例。如果您有多个应用场景,您可以创建多个伸缩组,弹性伸缩会按照您的配置分别为每个伸缩组调整实例数量,以满足业务需求。

伸缩组类型的功能对比

当伸缩组类型为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实例或者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实例而导致扩缩容失败的情况。