弹性伸缩(Elastic Scaling Service,简称ESS),也称为Auto Scaling,其能根据您设定的策略自动调整计算资源数量(即业务所需的实例数量),帮助您应对业务流量波动的同时,提高资源利用率,有效降低成本。
本视频以ECS实例为例介绍弹性伸缩产品。
前置概念
阅读本文前,您可能需要了解如下概念:
为什么选择弹性伸缩
在业务需求增长时,弹性伸缩自动增加指定类型的实例(即ECS实例或ECI实例),来保证计算能力;在业务需求下降时,弹性伸缩自动减少指定类型的实例(即ECS实例或ECI实例),来节约成本。当您的业务需求量有波动时,弹性伸缩能够帮助您自动调整指定类型的实例数量,以满足业务需求。
弹性伸缩可以为您提供以下优势:
优势 | 说明 |
自动化 |
|
降成本 | 无需投入大量人力来调整计算资源,无需提前预备计算资源,也无需担心不能及时释放冗余资源。弹性伸缩在适当的时间进行伸缩任务,降低资源拥有成本。 弹性伸缩会自动监测对应的伸缩指标(或期望实例数)的变化(检测频率默认是每分钟一次),如果检查到对应的伸缩指标与您指定的阈值不匹配,弹性伸缩会立即触发扩缩容活动。弹性伸缩的响应时间取决于以下因素:
|
高可用 | 无需担心ECS实例或ECI实例的运行状态。弹性伸缩提供健康检查功能,在ECS实例或ECI实例不健康,即实例未处于运行中状态时,自动增加相应类型的实例替换不健康的实例。 |
灵活智能 |
|
易审计 | 弹性伸缩支持记录每个伸缩活动,提供伸缩组监控功能,有助于您快速定位问题根源。 |
更多信息,请参见产品优势。
功能说明
弹性伸缩仅支持ECS实例或ECI实例数量的增加和减少,但不支持单个ECS实例或ECI实例的配置变更。例如需要调整ECS实例的CPU、内存和带宽等配置,您可以通过阿里云运维编排服务(Operation Orchestration Service,简称OOS)功能来实现。更多信息,请参见什么是运维编排服务。
弹性伸缩可以根据业务需求,自动创建或者移出ECS实例或ECI实例。您需要配置以下主要功能组件:
功能名称 | 说明 |
用来管理一组具有相同应用场景、相同实例类型的实例。您需要指定伸缩组类型(即ECS实例或ECI实例,用于指定提供计算能力的实例类型)、实例配置来源、边界值(即最大实例数和最小实例数)或负载均衡(CLB实例或ALB服务器组)等。如果您有多个应用场景,您可以创建多个伸缩组。弹性伸缩按照您的配置为每个伸缩组分别调整计算能力。 | |
用来管理ECS实例或ECI实例使用的模板信息。在弹性扩张时,弹性伸缩使用ECS类型的模板信息创建ECS实例,使用ECI类型的模板信息创建ECI实例。 | |
主要用来触发伸缩活动,例如增加1台ECS实例或ECI实例,您可以手动执行伸缩规则,或者通过报警任务或定时任务执行伸缩规则。伸缩规则还支持智能设置伸缩组的边界值(即最大实例数和最小实例数)。 | |
通过云监控系统,实时监测伸缩组的各项指标,在指标满足配置的阈值条件时,执行相应的伸缩规则。 | |
指定时间执行相应的伸缩规则。 |
上述功能组件中,弹性伸缩必须配置并启用了伸缩组和组内实例配置来源,其他功能组件可以按需配置。弹性伸缩的使用流程如下图所示:
弹性伸缩还为您提供了其他更多功能,来实现您不同场景的需求:
在伸缩活动成功、失败或者被拒绝时,弹性伸缩支持通过以下方式发送通知信息:
功能名称
说明
支持通过短信、站内信和邮件发送消息通知。
支持发送消息到云监控系统事件或轻量消息队列(原 MNS)。轻量消息队列(原 MNS)包括MNS主题和MNS队列两种服务模型。轻量消息队列(原 MNS)涉及计费,更多计费详情,请参见定价中心。
在管理伸缩组内的实例时,弹性伸缩还支持以下功能:
功能名称
说明
管理伸缩组内ECS实例或ECI实例生命周期的工具。弹性伸缩自动触发扩缩容活动,并触发生命周期挂钩使伸缩活动中的ECS实例或ECI实例处于挂起中的状态(即等待的状态),为您保留一段自定义操作的时间,直至生命周期挂钩超时结束。
自定义方式,手动向伸缩组添加或移出ECS实例、ECI实例或托管实例等。
如果伸缩组类型为ECS实例,即您指定由ECS实例提供计算能力时,支持滚动升级功能。通过任务形式批量更新ECS实例配置,您可以为伸缩组内处于服务中状态的ECS实例批量更新镜像、执行脚本或者安装OOS软件包。
应用场景
弹性伸缩为您提供了丰富的伸缩功能,适用各种业务量有变化的场景:
业务量变化有规律。
例如,每周五20:00热门节目来临时,某视频公司的业务量激增,您可以创建定时任务,在每周五20:00自动增加1台ECS实例或ECI实例。
业务量变化无规律。
例如,某视频直播公司的日常业务量难以预测,您可以创建报警任务,在CPU使用率大于60%时自动增加1台ECS实例或ECI实例。
更多信息,请参见应用场景。
工作原理
弹性伸缩会自动根据伸缩模式的配置适时触发伸缩活动,增加或移出伸缩组内的ECS实例或ECI实例。您可以通过弹性伸缩调整ECS实例或ECI实例(该实例主要负责处理客户端请求)数量,从而自动调整业务请求的处理能力。更多信息,请参见工作原理。
产品计费
弹性伸缩本身不收取任何费用,但使用ECS实例、ECI实例、RDS实例、负载均衡服务(例如CLB实例、ALB服务器组或者NLB服务器组)、轻量消息队列(原 MNS)等其他产品资源时涉及收费。更多信息,请参见产品计费。
使用方式
弹性伸缩控制台:具有交互式操作的Web服务页面。
API:支持GET和POST请求的RPC风格API。关于API的更多信息,请参见API概览。以下为调用弹性伸缩API的常用开发者工具:
命令行工具CLI:基于阿里云API建立的灵活且易于扩展的管理工具。您可基于命令行工具封装阿里云的原生API,扩展出您需要的功能。
OpenAPI开发者门户:提供快速检索接口、在线调用API和动态生成SDK示例代码等服务。
相关服务
服务名称 | 说明 |
是阿里云提供的IaaS(Infrastructure as a Service)级别云计算服务,可以帮助您实现计算资源的即开即用和弹性伸缩。 | |
是阿里云提供的敏捷安全的Serverless容器运行服务,使用ECI作为容器运行环境,可以为您的业务系统提供更高的弹性和安全性,同时降低使用和运维成本。 | |
是一种安全、稳定、可靠、高性价比、可弹性伸缩的在线数据库服务,可以帮助您解决数据库运维的烦恼。 | |
是一种对流量进行按需分发的服务,可以消除应用系统中的单点故障,提升应用系统的可用性。包括应用型ALB、网络型NLB或传统型CLB三种产品类型。 | |
是一项针对阿里云资源和互联网应用进行监控的服务。帮助您全面了解阿里云上资源的使用情况和业务运行状况,并及时对故障资源进行处理,保证业务正常运行。 | |
是一种高效、可靠、安全、便捷和可弹性扩展的轻量消息队列服务。能够帮助开发者在应用的分布式组件之间自由地传递数据、通知消息,从而构建松耦合系统。 |