如果您的业务负载经常有临时波动或者有固定的扩缩容需求,建议您通过弹性伸缩的伸缩组来实现自动扩缩容。基于已有ECS实例创建伸缩组后,系统会根据业务情况自动添加或减少一组具有相同配置的ECS实例。

前提条件

  • 如果需要为伸缩组关联负载均衡实例,请确保满足以下条件:
    • 您持有一个或多个处于运行中状态的负载均衡实例,具体操作请参见创建负载均衡实例
    • 负载均衡实例和伸缩组必须位于同一地域。
    • 如果负载均衡实例和伸缩组的网络类型均为专有网络,则必须位于同一专有网络。
    • 当负载均衡实例的网络类型为经典网络,伸缩组的网络类型为专有网络时,如果负载均衡实例的后端服务器组中包含专有网络ECS实例,该ECS实例必须与伸缩组位于同一专有网络。
    • 负载均衡实例配置至少一个监听,具体操作请参见监听概述
    • 负载均衡实例必须开启健康检查,具体操作请参见配置健康检查
  • 如果需要为伸缩组关联RDS实例,请确保满足以下条件:
    • 您持有一个或多个处于运行中状态的RDS实例,具体操作请参见什么是云数据库RDS
    • RDS实例和伸缩组必须位于同一地域。

背景信息

在基于ECS实例创建伸缩组时,不限制ECS实例的计费方式,包年包月实例、按量付费实例、抢占式实例均可以作为伸缩配置来源。

伸缩组创建完成后,支持自动创建ECS实例和手动添加已有ECS实例。自动创建ECS实例时,只支持按量付费、抢占式实例两种计费方式,但手动添加已有ECS实例时不限制计费方式。

更多伸缩组使用限制信息,请参见使用限制

操作步骤

  1. 登录ECS管理控制台
  2. 在左侧导航栏,单击实例与镜像 > 实例
  3. 在顶部菜单栏左上角处,选择地域。
  4. 找到用作伸缩配置来源ECS实例,在操作区域,单击更多 > 部署与弹性 > 创建弹性伸缩
  5. 创建伸缩组页面,查看伸缩配置来源。
    基于一台ECS实例创建伸缩组时,系统自动设置来源类型并选择该ECS实例,无需修改。
  6. 设置伸缩组基本信息。
    1. 填写伸缩组名称。
    2. 填写组内实例数。
      数量类型 说明
      组内最大实例数 当前ECS实例数量超过上限时,弹性伸缩会自动移出ECS实例,使得伸缩组内的ECS实例数量等于上限。
      组内最小实例数 当前ECS实例数量低于下限时,弹性伸缩会自动添加ECS实例,使得伸缩组内的ECS实例数量等于下限。
      组内期望实例数 伸缩组会自动将ECS实例数量维持在期望实例数,更多说明请参见期望实例数
    3. 填写默认冷却时间。
      单位为秒,伸缩组发生伸缩活动后的默认冷却时间。在冷却时间内,伸缩组会拒绝由云监控报警任务触发的伸缩活动请求,但其他类型任务触发的伸缩活动可以绕过冷却时间立即执行,例如手动执行任务、定时任务。
    4. 可选:选择实例移出策略。
      当需要从伸缩组移出ECS实例并且有多种选择时,按该策略选择需要移出的ECS实例。如果按策略筛选后仍有多台ECS实例满足要求,则随机移出一台。
      支持两段设置先筛选再从结果中移出,但不支持为先筛选再从结果中移出设置相同的选项。各选项的含义如下表所示。
      策略选项 说明
      最早伸缩配置对应的实例 此处伸缩配置泛指组内实例配置信息来源,包括伸缩配置和启动模板。

      筛选添加时间最早的伸缩配置和启动模板对应的实例。手动添加的实例没有关联伸缩配置或启动模板,因此不会首先选出手动添加的实例。如果已移出全部关联的实例,仍需要继续移出实例,则随机移出手动添加的实例。

      启动模板的版本号低不代表添加时间早,例如在创建伸缩组时选择实例启动模板lt-foress的版本2,然后修改伸缩组,选择实例启动模板lt-foress的版本1,则对伸缩组来说,启动模板lt-foress的版本2是最早的。

      最早创建的实例 筛选创建时间最早的实例。
      最新创建的实例 筛选创建时间最新的实例。
      无策略 仅在设置再从结果中移出时可选,表示不进行第二段筛选。
      例如,如果第一段设置为先筛选最早伸缩配置对应的实例,则第二段设置仅支持以下选项:
      • 无策略:不进行第二段筛选。
      • 最早创建的实例:在第一段筛选出的实例中,再筛选创建时间最早的实例。
      • 最新创建的实例:在第一段筛选出的实例中,再筛选创建时间最新的实例。
    5. 可选:设置伸缩组删除保护。
      开启伸缩组保护后,您不能在控制台或者通过API删除该伸缩组,有效避免误删除伸缩组。
    6. 添加标签。
      添加标签便于搜索和聚合伸缩组,更多标签介绍请参见标签概述
  7. 完成组内实例扩缩容配置。
    1. 查看网络类型。
      注意 请保持自动选择的网络类型,手动选择不同的网络类型会导致伸缩组创建失败。
      网络类型 说明
      专有网络
      • 创建伸缩配置时,只能选择支持专有网络的实例规格。
      • 手动添加已有ECS实例时,只能选择同一专有网络中的实例。
      经典网络
      • 创建伸缩配置时,只能选择支持经典网络的实例规格。
      • 手动添加已有ECS实例时,只能选择经典网络实例。
    2. 可选:如果网络类型为专有网络,配置专有网络相关选项。
      • 专有网络
        说明 请保持自动选择的专有网络,手动选择不同的专有网络会导致伸缩组创建失败。
      • 交换机

        一个交换机只能属于一个可用区,您可以指定多个属于不同可用区的交换机,从而达到多可用区的效果。多可用区可以规避单可用区库存不足的风险,提高扩容成功率。

      • 多可用区扩缩容策略
        注意 伸缩组创建完成后,不支持修改多可用区扩缩容策略。
        策略名称 说明
        优先级策略 先选择的交换机优先级高。当伸缩组无法在优先级较高的交换机所在可用区创建ECS实例时,会自动使用下一优先级的交换机创建ECS实例。
        均衡分布策略 在伸缩组关联多个交换机且交换机分布在两个以上可用区时生效,支持在交换机所在的可用区之间均衡分布ECS实例。如果由于库存不足等原因导致可用区之间ECS实例的数量不均衡,您可以执行再均衡分布操作来平衡ECS实例的分布情况,具体操作请参见ECS实例再均衡分布
        成本优化策略 在伸缩配置中指定了多个可选实例规格时生效,按vCPU单价从低到高尝试创建ECS实例。

        如果伸缩配置中计费方式选择抢占式实例,优先创建抢占式实例。由于库存等原因无法创建各实例规格的抢占式实例时,再自动尝试创建按量付费实例。

        如果您选择成本优化策略,还可以设置以下参数启用混合实例功能:
        混合实例选项 说明
        组内最小按量实例数 伸缩组所需按量付费ECS实例的最小台数,默认为0台。如果伸缩组内的按量付费ECS实例的台数小于该值,将优先创建按量付费实例。
        按量实例所占比例 自动创建ECS实例时按量付费实例所占的比例,默认为70%。计算该值时,不包括组内最小按量实例数对应的台数。
        最低价的多个实例规格 价格最低的实例规格的个数,默认为1个。在伸缩配置中指定了多个可选实例规格时生效。创建抢占式实例时,弹性伸缩会在价格最低的几个实例规格之间均衡创建ECS实例。
        是否开启抢占式实例补偿 开启抢占式实例补偿后,在抢占式实例被回收前5分钟,弹性伸缩会主动创建新的抢占式实例,并替换掉将被回收的抢占式实例。
      • 实例回收模式
        注意 伸缩组创建完成后,不支持修改实例回收模式。
        模式名称 说明
        释放模式 在弹性收缩时自动释放合适数量的ECS实例,在弹性扩张时创建新的ECS实例加入伸缩组。
        停机回收模式 使用停机回收模式可以提高扩缩容的效率。
        在弹性收缩时,自动创建的ECS实例将进入停机不收费状态。ECS处于停机不收费状态时,vCPU、内存和固定公网IP被回收,因此vCPU、内存和固定公网带宽不再收费,但是云盘、弹性公网IP等资源仍然保留并收费,更多信息请参见按量付费实例停机不收费。这些处于停机不收费状态ECS实例形成了停机实例池。
        说明 如果ECS实例进入停机不收费状态前有固定公网IP,重新启动时会重新分配一个固定公网IP,但可能发生变化。

        在弹性扩张时,停机实例池内的ECS实例会优先进入运行中状态,在停机实例池内ECS实例数量不足以满足需求时,会继续自动创建新的ECS实例。

        弹性扩张时,停机实例池内ECS实例不能保证成功进入运行中状态。如果由于库存等原因,处于停机不收费状态的ECS实例不能进入运行中状态,弹性伸缩会释放这些ECS实例并创建新的ECS实例,保证弹性扩张的结果达到预期。

    3. 可选:添加已有实例。
      如果同时设置期望实例数并添加已有实例,期望实例数会自动增加。例如,创建伸缩组时设置期望实例数为1,并添加2台已有实例,伸缩组创建完成后,2台已有实例添加至伸缩组,然后期望实例数变为3。
      您可以将已有实例的生命周期托管给伸缩组。
      • 如果选中将实例的生命周期托管给伸缩组复选框,添加的已有实例因处于不健康状态等原因被自动移出伸缩组,或者被手动移出伸缩组时,会被自动释放。
      • 如果清除将实例的生命周期托管给伸缩组复选框,添加的已有实例移出伸缩组时,不会被自动释放。
  8. 可选:完成高级配置。
    一个伸缩组支持关联的负载均衡实例和RDS实例数量有限,更多信息请参见使用限制
    1. 关联负载均衡实例。
      关联负载均衡实例后,加入伸缩组的ECS实例会自动添加为负载均衡实例的后端服务器。您可以指定ECS实例需要加入的服务器组,支持以下两种服务器组:
      服务器组类型 端口 权重 说明
      默认服务器组 为负载均衡实例配置监听时填写。 默认为50,您也可以在伸缩配置中填写其它权重值。 用来接收前端请求的ECS实例,如果监听没有设置虚拟服务器组或主备服务器组,默认将请求转发至默认服务器组中的ECS实例。
      虚拟服务器组 选择虚拟服务器组时填写。 默认为50,您也可以在选择虚拟服务器组时填写其它权重值。 当您需要将不同的请求转发到不同的后端服务器上时,或需要通过域名和URL进行请求转发时,可以选择使用虚拟服务器组。

      一个伸缩组支持指定多个虚拟服务器组,但是数量有限,更多信息请参见使用限制

      说明 如果您同时指定了默认服务器组和多个虚拟服务器组,ECS实例会同时添加至这些服务器组中。
    2. 关联RDS数据库实例。
      关联RDS实例后,加入伸缩组的ECS实例的内网IP会自动加入RDS实例的访问白名单,允许ECS实例和RDS实例内网通信。
  9. 单击创建伸缩组
  10. 创建伸缩组状态向导对话框,单击查看伸缩组列表
    新创建的伸缩组出现在伸缩组列表中。由于使用已有ECS实例作为组内实例配置信息来源,伸缩组自动创建伸缩配置并进入启用状态。
    • 如果组内最小实例数大于0,弹性伸缩会自动创建ECS实例,使得组内实例数量不小于组内最小实例数。
    • 如果期望实例数大于0,弹性伸缩会自动创建或移出ECS实例,使得组内实例数量始终等于期望实例数。

后续步骤

您可以手动将ECS实例添加至或移出伸缩组,或者通过定时任务、报警任务等方式实现自动扩缩容。具体操作请参见: