弹性伸缩(Auto Scaling)是根据业务需求和策略自动调整计算能力(即实例数量)的服务。您可以指定实例的类型,即ECS或ECI实例。在业务需求增长时,弹性伸缩自动增加指定类型的实例,来保证计算能力;在业务需求下降时,弹性伸缩自动减少指定类型的实例,来节约成本。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。

为什么选择弹性伸缩

当您的业务需求量有波动时,弹性伸缩能够帮助您自动调整指定类型的实例数量,满足业务需求。弹性伸缩能为您提供以下优势:

  • 自动化:
    • 弹性扩张时,自动创建指定类型的实例,并为该实例关联负载均衡服务。如果指定类型是ECS实例,还支持为该实例自动关联RDS实例。
    • 弹性收缩时,自动移出指定类型的实例,并为该实例取消关联负载均衡服务。如果指定类型是ECS实例,还支持为该实例自动取消关联RDS实例。
  • 降成本:无需投入大量人力来调整计算资源,无需提前预备计算资源,也无需担心不能及时释放冗余资源。弹性伸缩在适当的时间进行伸缩任务,降低资源拥有成本。
  • 高可用:无需担心ECS或ECI实例的运行状态。弹性伸缩提供健康检查功能,在ECS或ECI实例不健康,即实例未处于运行中状态时,自动增加相应类型的实例替换不健康的实例。
  • 灵活智能:
    • 支持指定提供计算能力的实例类型,即ECS或ECI实例。
    • 支持多伸缩模式兼容,可灵活调度应对各种复杂场景。伸缩模式包括固定数量、健康、定时、动态、自定义等,其中动态模式支持通过API对接外部的监控系统。
    • 支持灵活的ECS实例模板,可以设置多实例规格、多磁盘类型,提高创建ECS实例的成功率。
    • 支持丰富的扩缩容策略,可灵活适用于各种业务场景。
  • 易审计:弹性伸缩支持记录每个伸缩活动,提供伸缩组监控功能,有助于您快速定位问题根源。

更多信息,请参见产品优势

功能说明

弹性伸缩可以根据业务需求,自动创建或者移出ECS或ECI实例。您需要配置以下组件:

  • 伸缩组:用来管理一组具有相同应用场景、相同实例类型的实例。您需要指定伸缩组类型(即ECS或ECI,用于指定提供计算能力的实例类型)、实例配置来源、边界值(即最大实例数和最小实例数)或负载均衡(CLB实例或ALB服务器组)等。如果您有多个应用场景,您可以创建多个伸缩组。弹性伸缩按照您的配置为每个伸缩组分别调整计算能力。
  • 实例配置来源:用来管理ECS或ECI实例使用的模板信息。在弹性扩张时,弹性伸缩使用ECS类型的模板信息创建ECS实例,使用ECI类型的模板信息创建ECI实例。
  • 伸缩规则:主要用来触发伸缩活动,比如增加1台ECS实例。您可以手动执行伸缩规则,或者通过报警任务或定时任务执行伸缩规则。伸缩规则还支持智能设置伸缩组的边界值(即最大实例数和最小实例数)。
  • 报警任务:通过云监控系统,实时监测伸缩组的各项指标,在指标满足配置的阈值条件时,执行相应的伸缩规则。
  • 定时任务:指定时间执行相应的伸缩规则。
弹性伸缩必须配置并启用了伸缩组和组内实例配置来源,其他组件可以按需配置。弹性伸缩的使用流程如下图所示。使用流程

弹性伸缩还为您提供了更多功能,来实现您不同场景的需求:

  • 在伸缩活动成功、失败或者被拒绝时,弹性伸缩支持通过以下方式发送通知信息:
    • 消息通知:支持通过短信、站内信和邮件发送消息通知。
    • 事件通知:支持发送消息到云监控系统事件或消息服务。消息服务包括MNS主题和MNS队列两种服务模型。消息服务涉及计费,更多计费详情,请参见价格说明
  • 如果伸缩组类型为ECS实例,即您指定由ECS实例提供计算能力时,还支持以下功能:
    • 生命周期挂钩:管理伸缩组内ECS实例生命周期的工具。弹性伸缩自动触发扩缩容活动,并触发生命周期挂钩使伸缩活动中的ECS实例处于挂起中的状态(即等待的状态),为您保留一段自定义操作的时间,直至生命周期挂钩超时结束。
    • 自定义方式:手动向伸缩组添加或移出ECS实例等。
    • 滚动升级:通过任务形式批量更新ECS实例配置。通过滚动升级,您可以为伸缩组内处于服务中状态的ECS实例批量更新镜像、执行脚本或者安装OOS软件包。

更多信息,请参见工作流程

应用场景

弹性伸缩为您提供了丰富的伸缩功能,适用各种业务量有变化的场景:

  • 业务量变化有规律。比如,每周五20:00热门节目来临时,某视频公司的业务量激增,您可以创建定时任务,在每周五20:00自动增加1台ECS或ECI实例。
  • 业务量变化无规律。比如,某视频直播公司的日常业务量难以预测,您可以创建报警任务,在CPU利用率大于60%时自动增加1台ECS或ECI实例。

更多信息,请参见应用场景

产品计费

弹性伸缩本身不收取任何费用,但使用ECS实例、ECI实例、RDS实例、负载均衡服务(CLB实例或ALB服务器组)、消息服务等其他产品的资源时涉及收费。更多信息,请参见费用说明

使用方式

  • 弹性伸缩控制台:具有交互式操作的Web服务页面。
  • API:支持GET和POST请求的RPC风格API。关于API的更多信息,请参见API概览。以下为调用弹性伸缩API的常用开发者工具:
    • 命令行工具CLI:基于阿里云API建立的灵活且易于扩展的管理工具。您可基于命令行工具封装阿里云的原生API,扩展出您需要的功能。
    • OpenAPI Explorer:提供快速检索接口、在线调用API和动态生成SDK示例代码等服务。

相关服务