文档

基于启动模板实现多规格配置以提升扩容成功率

为了提升弹性扩容成功率,您在配置伸缩组时,可通过扩展启动模板属性,同时配置多个实例规格,即您可以基于启动模板配置多实例规格的伸缩组。本文介绍使用启动模板作为实例配置来源创建伸缩组时,如何指定多个实例规格。

背景信息

实例启动模板包含了ECS实例的配置信息,用于快速创建ECS实例。使用实例启动模板创建ECS实例可以免去重复配置的操作,简化配置流程。更多信息,请参见实例启动模板概述

配置ECS类型的伸缩组时,可以选择组内实例配置信息来源为启动模板,后续该伸缩组扩容时,会自动使用启动模板包含的配置信息来创建ECS实例。默认情况下,由于实例启动模板仅支持指定一种实例规格,弹性伸缩基于启动模板来创建ECS实例时可能会碰到指定规格库存不足的情况。为了提升扩容的成功率,您可以为伸缩组扩展启动模板属性,配置多个实例规格来覆盖启动模板的单个规格配置,实现在某一规格库存不足时,可以自动切换到其他规格,避免扩容失败而影响业务。

image

准备工作

创建或配置伸缩组前,您需要前往ECS管理控制台的启动模板页面创建启动模板,您也可以使用已有的启动模板。关于如何创建启动模板,请参见创建实例启动模板

重要

弹性伸缩仅支持使用付费模式为按量付费和抢占式实例的启动模板,不支持付费模式为包年包月的启动模板。如果使用包年包月的启动模板,会自动转换为按量付费的启动模板。

本文使用以下启动模板作为示例:

  • 付费模式:按量付费

  • 实例规格:ecs.g5.large

启动模板.png

操作步骤

以下步骤将创建两个伸缩组,用于对比体现启动模板+多实例规格的效果。

  • 伸缩组A:只使用启动模板,未扩展启动模板属性。

  • 伸缩组B:使用启动模板,并扩展启动模板属性,配置多个实例规格。

  1. 登录弹性伸缩控制台

  2. 创建伸缩组A。

    1. 伸缩组管理页面,单击创建伸缩组

    2. 完成伸缩组配置,单击创建

      本文使用以下参数配置作为示例,未提及的参数可保持默认。更多信息,请参见配置伸缩组

      参数

      示例

      说明

      伸缩组名称

      test-a

      输入伸缩组名称。格式要求请参考界面提示。

      伸缩组类型

      ECS

      选择ECS,表示伸缩组内的实例类型为ECS实例。

      组内实例配置信息来源

      启动模板

      选择启动模板,表示伸缩组扩容时,会使用启动模板配置的信息来创建ECS实例。

      选择启动模板

      test

      选择准备好的启动模板。

      选择模板版本

      始终使用最新版本

      按需选择要使用的启动模板版本。

      组内最小实例数

      1

      设置伸缩组内实例数量的下限。当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。

      组内最大实例数

      1

      设置伸缩组内实例数量的上限。当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。

  3. 创建伸缩组B。

    请重复创建伸缩组A的步骤来创建伸缩组B(名称为test-b),在伸缩组A配置的参数的基础上,伸缩组B请配置扩展启动模板属性。具体操作如下:

    扩展启动模板.png

    1. 扩展启动模板属性处,选中覆盖启动模板实例规格

    2. 按需选择是否使用vCPU个数计算伸缩组容量。

      选中使用vCPU个数计算伸缩组容量后,您可以在已选实例规格区域中查看已选实例对应的权重值。设置vCPU容量会重新计算伸缩组当前的容量,可能导致伸缩组触发新的扩缩容活动,您也可以使用实例规格关联的其他性能指标,例如内存大小,自定义伸缩组容量度量方式。更多信息,请参见使用性能指标作为弹性伸缩的度量单位

    3. 用户可选实例规格区域,单击要选择的实例规格前的icon图标,配置多个实例规格。

      启动模板指定的实例规格默认已加入到已选实例规格。您可以按照选择全部实例规格按照实例规格推荐按Vcpu推荐方式选择多个实例规格。

      本文以扩展ecs.g5ne.large和ecs.g6.large为例,建议您选择更多的实例规格,减少所选规格库存不足的风险。

    4. 已选实例规格区域,调整规格的顺序。

  4. 启用伸缩组A和伸缩组B,并触发扩容活动。

    您可以通过设置最小实例数、期望实例数、执行伸缩规则等方法触发伸缩组的扩容动作。

    由于本文的两个示例伸缩组的最小实例数配置为1,因此启用伸缩组后,两个伸缩组会分别自动创建一台ECS实例。

效果对比

分别单击伸缩组ID,打开伸缩组详情页面,在实例列表页签,查看ECS实例信息,对比规格差异。

  • 伸缩组A:只使用启动模板,未扩展启动模板属性。

    由于启动模板指定了ecs.g5.large,因此ECS实例的规格为ecs.g5.large。如果ecs.g5.large无库存,将扩容失败。

    伸缩组A.png

  • 伸缩组B:使用启动模板,并扩展启动模板属性,配置多个实例规格。

    除了启动模板指定的ecs.g5.large外,还增加了ecs.g5ne.large和ecs.g6.large。由于示例配置中ecs.g6.large最优先,因此ECS实例的规格为ecs.g6.large。当ecs.g6.large无库存,会依次尝试ecs.g5.large和ecs.g5ne.large。

    伸缩组B.png

综上,相比只使用启动模板的伸缩组A,启动模板+多实例规格的伸缩组B,在弹性伸缩方面可以更加灵活地适配实际业务场景需求,提高了扩容成功率。即:配置多个实例规格后,当某个实例规格没有库存时,弹性伸缩会自动切换到有库存的实例规格进行扩容。