阿里云ACP认证之弹性伸缩AS知识整理(考题占比 10%)

什么是弹性伸缩AS?

弹性伸缩(Auto Scaling),是根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。弹性伸缩不仅适合业务量不断波动的应用程序, 同时也适合业务量稳定的应用程序。

弹性伸缩AS的功能与特性:

  • 动态伸缩模式
    基于云监控性能指标(如CPU、内存利用率),自动增加或减少ECS实例。

  • 定时伸缩模式
    配置周期性任务,定时地增加或减少ECS实例,当周期性需求有所波动时,可同时配置动态伸缩模式以应付不可预期的变化

  • 固定数量模式
    通过“最小实例数”属性,可以让您始终保持健康运行的ECS实例数量,自动替换不健康实例,以保证日常场景实时可用

  • 自动配置负载均衡(SLB)和云数据库(RDS)
    在增加或减少ECS实例时,自动向SLB实例添加或移除相应的ECS实例,且自动向RDS访问白名单添加或移出该ECS实例的IP

阿里云ACP认证之弹性伸缩AS知识整理(考题占比 10%)

弹性伸缩AS费用计算

您可以免费开通弹性伸缩服务。但是,如果弹性伸缩服务根据伸缩配置自动创建了 ECS 实例,或者您手动添加了已有 ECS 实例,您需要为 ECS 实例支付费用。

自动创建的 ECS 实例,付费方式支持按量付费和抢占式实例。

弹性伸缩AS使用限制

阿里云ACP认证之弹性伸缩AS知识整理(考题占比 10%)

弹性伸缩AS应用场景

阿里云弹性伸缩AS应用场景参考案例:

  • 某视频公司:春晚或每周五热门节目来临时,负载激增,需及时、自动扩展云计算资源。
  • 某视频直播公司:业务负载变化难以预测,需要阿里云自动根据CPU利用率、应用负载、带宽利用率作为衡量指标进行弹性伸缩。
  • 某游戏公司:每天中午12点及晚上6点到9点间需求增长,需要定时扩容。
  • 某电商:在大促中,临时激增大量云服务器需求,需要在数分钟内实现从创建到可用。

弹性伸缩AS工作流

阿里云ACP认证之弹性伸缩AS知识整理(考题占比 10%)

创建好伸缩组、伸缩配置、伸缩规则、伸缩触发任务后,系统会自动化执行以下流程(以增加 ECS 实例为例):

  1. 伸缩触发任务会按照各自触发生效的条件来触发伸缩活动。
    – 云监控任务会实时监控伸缩组内 ECS 实例的性能,并根据用户配置的报警规则(如伸缩组内所有 ECS 实例的 CPU 平均值大于 60%)触发执行伸缩规则请求。
    – 定时任务会根据用户配置的时间来触发执行伸缩规则请求。
    – 您可以根据自己的监控系统及相应的报警规则(如在线人数、作业队列)来触发执行伸缩规则请求。
    – 健康检查任务会定期检查伸缩组和 ECS 实例的健康情况,如发现有不健康的 ECS 实例(如 ECS 为非 Running 状态)会触发执行 移出该 ECS 实例 的请求。

  2. 系统自动通过 ExecuteScalingRule 接口触发伸缩活动,并在该接口中指定需要执行的伸缩规则的阿里云资源唯一标识符(Ari)。
    如果是用户自定义的任务,则需要用户在自己的程序中调用 ExecuteScalingRule 接口来实现。

  3. 根据步骤 2 传入的伸缩规则 Ari(Rule Ari)获取伸缩规则、伸缩组、伸缩配置的相关信息,并创建伸缩活动。
    – 通过伸缩规则 Ari 查询伸缩规则以及相应的伸缩组信息,计算出需要增加的 ECS 实例数量,并获得需要配置的负载均衡和 RDS 信息。
    – 通过伸缩组查询到相应的伸缩配置信息,即获得了需要创建的ECS实例的配置信息(CPU、内存、带宽等)。
    – 根据需要增加的 ECS 实例数量、ECS 实例配置信息、需要配置的负载均衡实例和 RDS 实例创建伸缩活动。

  4. 在伸缩活动中,自动创建 ECS 实例并配置负载均衡和 RDS。
    – 按照实例配置信息创建指定数量的 ECS 实例。
    – 将创建好的 ECS 实例的内网 IP 添加到指定的 RDS 实例的访问白名单当中,将创建好的 ECS 实例添加到指定的负载均衡实例当中。

  5. 伸缩活动完成后,启动伸缩组的冷却功能。待冷却时间完成后,该伸缩组才能接收新的执行伸缩规则请求。

伸缩活动存在冷却时间,冷却时间具有以下特点:

  • 在冷却时间内,伸缩组只会拒绝云监控报警任务类型的伸缩活动请求,其他类型的触发任务(如手工执行伸缩规则、定时任务等)可以绕过冷却时间立即执行伸缩活动。
  • 每个伸缩活动的最后一个ECS实例加入或移出伸缩组成功后,整个伸缩组冷却时间才开始计时。
  • 如果您停用伸缩组,然后再次启用伸缩组,冷却时间将会失效

示例 1
一个伸缩组 asg-uf6f3xewn3dvz4bsy7r1,默认冷却时间是 10 分钟,伸缩组内存在一条伸缩规则 add3,冷却时间为 15 分钟。
根据 add3 成功执行一次伸缩活动后,扩张了 3 台 ECS 实例,从第 3 台 ECS 实例加入伸缩组开始计算冷却时间,15 分钟内不会接受由云监控报警任务触发的伸缩活动请求。

弹性伸缩AS涉及的名词说明:
阿里云ACP认证之弹性伸缩AS知识整理(考题占比 10%)

弹性伸缩AS伸缩模式

阿里云ACP认证之弹性伸缩AS知识整理(考题占比 10%)

弹性伸缩AS创建流程

阿里云ACP认证之弹性伸缩AS知识整理(考题占比 10%)

  1. 创建伸缩组(CreateScalingGroup),配置伸缩资源的最小值(MinSize)、最大值(MaxSize)及需要关联的负载均衡实例和RDS实例。
  2. 创建伸缩配置(CreateScalingConfiguration),指定需要弹性伸缩的 ECS 实例的相关属性,如 ImageID、InstanceType 等。
  3. 以第二步创建的伸缩配置启用伸缩组(EnableScalingGroup)
  4. 创建伸缩规则(CreateScalingRule),如加 N 台 ECS 实例的伸缩规则。
  5. 创建定时任务(CreateScheduledTask),如创建 12:00 触发第四步伸缩规则的定时任务。
  6. 创建报警任务(云监控 API PutAlarmRule),如创建 CPU 平均值 (也可以是最大值或最小值)大于等于 80% 则增加一台 ECS 实例的报警任务。