通过弹性伸缩自动扩缩容ECI实例

阿里云弹性伸缩服务是根据业务需求和策略自动调整计算能力(即实例数量)的服务,使用ECI实例来运行容器应用时,可以配合使用弹性伸缩服务,实现根据业务量自动增加或者减少ECI实例,在保证业务正常运行的同时节约使用成本。

功能概述

弹性伸缩(Elastic Scaling Service,简称ESS),也称为Auto Scaling,其能根据您设定的策略自动调整计算资源数量(即业务所需的实例数量),帮助您应对业务流量波动的同时,提高资源利用率,有效降低成本。更多信息,请参见弹性伸缩简介

对于运行同一业务的ECI实例,您可以将其加入到弹性伸缩组中,设置伸缩组最小实例数来保证日常业务运行,设置伸缩组最大实例数来避免成本超标,同时可以设置伸缩规则,配合定时任务或者报警任务来实现自动扩缩容组内的ECI实例。功能示意图如下:

ESS2

通过弹性伸缩自动扩缩容ECI实例适用于以下场景:

  • 业务量变化有规律,在某一特定时间进行扩缩容。

    例如:某游戏公司在每晚18点~24点的时间段内业务量激增,您可以创建定时任务,在每天的18:00自动增加ECI实例,在每天的24:00自动减少ECI实例。

    ESS3

  • 业务量变化无规律,根据监控指标自动进行扩缩容。

    例如:某视频直播公司的日常业务量难以预测,您可以创建报警任务,监控伸缩组内ECI实例的CPU使用率,自动增加或者减少ECI实例,使得CPU使用率维持在60%。

    ESS4

配置流程

通过弹性伸缩自动扩缩容ECI实例的流程如下:

image
说明

创建伸缩组时,如果您选择已有实例作为组内实例配置信息来源,会自动创建并生效对应的伸缩配置,即您无需手动创建伸缩配置,就可以直接启用伸缩组。

  1. 创建伸缩组

    伸缩组用于管理具有相同应用场景的ECI实例集合。您可以通过伸缩组定义可容纳实例数量的边界值(最大和最小实例数)、弹性扩张时使用的实例模板、弹性收缩时移出实例的策略等属性,让伸缩组按照您的需求维护一组实例。更多信息,请参见创建伸缩组

  2. 创建伸缩配置

    伸缩组自动扩张时,将根据伸缩配置来创建ECI实例,并将ECI实例加入到伸缩组中。更多信息,请参见创建伸缩配置(ECI实例)

    说明

    由于容器镜像一般较大,拉取镜像会影响ECI实例的启动耗时,因此配置时建议开启自动匹配镜像缓存,以加速ECI实例的创建。

  3. 启用伸缩组

    伸缩组处于启用状态才能进行弹性伸缩。当伸缩组内存在生效的伸缩配置时,会自动提示启用伸缩组。您也可以在伸缩组列表中自行启用伸缩组。更多信息,请参见启用伸缩组

  4. 创建伸缩规则

    伸缩规则用于触发伸缩活动,您可以根据业务需要创建对应类型的伸缩规则。

    • 简单规则:指定增加、减少的实例数,或者将实例数量调整到指定值。

    • 目标追踪规则:选择某一监控指标并设置目标值,系统将自动增加或者减少实例数,使得监控指标值维持在目标值附近。

    更多信息,请参见创建伸缩规则

  5. 执行伸缩规则

    您可以通过以下方式执行伸缩规则,实现伸缩组内ECI实例的弹性伸缩。更多信息,请参见执行伸缩规则

    • 手动执行:人工手动执行伸缩规则,适用于不确定的临时业务需求。

    • 通过定时任务自动执行:按照定时任务设置的时间自动执行伸缩规则,适用于周期性有规律的业务波动。更多信息,请参见定时任务概述

    • 通过报警任务自动执行:基于监控指标触发报警并自动执行伸缩规则,适用于无规律的业务波动。更多信息,请参见报警任务概述

配置示例

业务场景

配置示例

实现效果

某公司日常业务需要10台ECI实例,但每晚18点~23点的时间段内业务量会激增,需增加5台ECI实例。

  1. 创建伸缩组,设置类型为ECI,最小实例数为10台,最大实例数为20台。

  2. 创建伸缩配置,设置实例配置来源。

  3. 启用伸缩组,此时系统将创建10台ECI实例。

  4. 创建伸缩规则,设置2条简单规则。

    • 规则1:执行操作为调整至15台。

    • 规则2:执行操作为调整至10台。

  5. 创建定时任务,设置2个任务。

    • 任务1:执行时间17:55,按天重复执行一次规则1。

    • 任务2:执行时间23:05,按天重复执行一次规则2。

业务量平峰时段有10台ECI实例维持日常业务运行;业务量高峰时段(18点~23点)将扩容到15台ECI实例。

某公司日常业务需要10台ECI实例,但业务变化情况难以预测,无法确定何时需要增加或减少多少台ECI实例。

  1. 创建伸缩组,设置类型为ECI,最小实例数为10台,最大实例数为30台。

  2. 创建伸缩配置,设置实例配置来源。

  3. 启用伸缩组,此时系统将创建10台ECI实例。

  4. 创建伸缩规则,设置1条目标追踪规则。

    • 监控指标:CPU使用率

    • 目标值:60%。

    • 其余参数保持默认。

  5. 查看报警任务,确认触发伸缩的条件。

    创建目标追踪规则后,系统将自动创建报警任务,监控CPU使用率。

系统将持续监测组内ECI实例的CPU使用率,根据报警任务中触发伸缩的条件,自动增加或减少ECI实例,使得CPU使用率不超过60%,并且组内至少有10台ECI实例维持日常业务运行。