阿里云弹性伸缩服务是根据业务需求和策略自动调整计算能力(即实例数量)的服务,使用ECI实例来运行容器应用时,可以配合使用弹性伸缩服务,实现根据业务量自动增加或者减少ECI实例,在保证业务正常运行的同时节约使用成本。
功能概述
弹性伸缩(Elastic Scaling Service,简称ESS),也称为Auto Scaling,其能根据您设定的策略自动调整计算资源数量(即业务所需的实例数量),帮助您应对业务流量波动的同时,提高资源利用率,有效降低成本。更多信息,请参见弹性伸缩简介。
对于运行同一业务的ECI实例,您可以将其加入到弹性伸缩组中,设置伸缩组最小实例数来保证日常业务运行,设置伸缩组最大实例数来避免成本超标,同时可以设置伸缩规则,配合定时任务或者报警任务来实现自动扩缩容组内的ECI实例。功能示意图如下:
通过弹性伸缩自动扩缩容ECI实例适用于以下场景:
业务量变化有规律,在某一特定时间进行扩缩容。
例如:某游戏公司在每晚18点~24点的时间段内业务量激增,您可以创建定时任务,在每天的18:00自动增加ECI实例,在每天的24:00自动减少ECI实例。
业务量变化无规律,根据监控指标自动进行扩缩容。
例如:某视频直播公司的日常业务量难以预测,您可以创建报警任务,监控伸缩组内ECI实例的CPU使用率,自动增加或者减少ECI实例,使得CPU使用率维持在60%。
配置流程
通过弹性伸缩自动扩缩容ECI实例的流程如下:
创建伸缩组时,如果您选择已有实例作为组内实例配置信息来源,会自动创建并生效对应的伸缩配置,即您无需手动创建伸缩配置,就可以直接启用伸缩组。
创建伸缩组
伸缩组用于管理具有相同应用场景的ECI实例集合。您可以通过伸缩组定义可容纳实例数量的边界值(最大和最小实例数)、弹性扩张时使用的实例模板、弹性收缩时移出实例的策略等属性,让伸缩组按照您的需求维护一组实例。更多信息,请参见创建伸缩组。
创建伸缩配置
伸缩组自动扩张时,将根据伸缩配置来创建ECI实例,并将ECI实例加入到伸缩组中。更多信息,请参见创建伸缩配置(ECI实例)。
说明由于容器镜像一般较大,拉取镜像会影响ECI实例的启动耗时,因此配置时建议开启自动匹配镜像缓存,以加速ECI实例的创建。
启用伸缩组
伸缩组处于启用状态才能进行弹性伸缩。当伸缩组内存在生效的伸缩配置时,会自动提示启用伸缩组。您也可以在伸缩组列表中自行启用伸缩组。更多信息,请参见启用伸缩组。
创建伸缩规则
伸缩规则用于触发伸缩活动,您可以根据业务需要创建对应类型的伸缩规则。
简单规则:指定增加、减少的实例数,或者将实例数量调整到指定值。
目标追踪规则:选择某一监控指标并设置目标值,系统将自动增加或者减少实例数,使得监控指标值维持在目标值附近。
更多信息,请参见创建伸缩规则。
执行伸缩规则
您可以通过以下方式执行伸缩规则,实现伸缩组内ECI实例的弹性伸缩。更多信息,请参见执行伸缩规则。
配置示例
业务场景 | 配置示例 | 实现效果 |
某公司日常业务需要10台ECI实例,但每晚18点~23点的时间段内业务量会激增,需增加5台ECI实例。 |
| 业务量平峰时段有10台ECI实例维持日常业务运行;业务量高峰时段(18点~23点)将扩容到15台ECI实例。 |
某公司日常业务需要10台ECI实例,但业务变化情况难以预测,无法确定何时需要增加或减少多少台ECI实例。 |
| 系统将持续监测组内ECI实例的CPU使用率,根据报警任务中触发伸缩的条件,自动增加或减少ECI实例,使得CPU使用率不超过60%,并且组内至少有10台ECI实例维持日常业务运行。 |