本教程介绍了如何利用弹性伸缩搭建可自动伸缩的Web应用,快速响应业务的峰谷波动,稳定承载日常业务的同时,轻松应对活动期间突增的流量。

前提条件

  • 使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册
  • 为应用的ECS实例创建了自定义镜像,具体操作请参见使用实例创建自定义镜像

业务场景

某电商平台为吸引用户,除定期推出优惠活动外,还会在节假日、会员日、购物节开展大促。为保证顺利承载活动带来的流量,运维人员可以分析活动历史数据,提前预估新活动所需的计算资源。但如果高峰期流量超出预估,仍需要临时手动创建ECS实例,不仅操作仓促,而且可能因操作不及时影响应用可用性。

假设您的应用具有以下特征,也可以采用类似解决方案:
  • 采用集群方式部署,且集群拥有1台以上的服务器。
  • 存在临时业务突增,但突增业务周期不长,例如每天不超过9个小时、每月不超过20天。

解决方案

弹性伸缩可以实现计算资源随业务峰谷自动伸缩,无需您提前预估和手动干预即可确保应用可用性。尤其针对双十一等大促活动,弹性伸缩具备几分钟内交付上千台ECS实例的能力,自动及时地应对突增流量,提升业务的可靠性。

您可以采用以下方案:
  • 针对日常业务流量,购买包年包月ECS实例。
  • 针对计划外突增流量,通过弹性伸缩监控负载变化并实现自动创建ECS实例。
示意图如下:

业务收益

利用弹性伸缩应对突增流量,您可以获得以下收益:
  • 零备机成本

    弹性伸缩可自动创建和释放ECS实例,实现按需取用,无需备机。您只需针对日常业务流量保有计算资源。

  • 零运维成本

    您只需提前配置扩缩容策略。负载增加时,弹性伸缩自动创建ECS实例,并将ECS实例添加到RDS实例的白名单和SLB实例的后端服务器组;负载降低时,弹性伸缩自动将ECS实例从SLB实例的后端服务器组和RDS实例的白名单中移除,然后释放ECS实例。整个过程自动触发和完成,无需人工干预。

  • 灵活智能

    弹性伸缩提供多种伸缩模式,您可以根据业务波动规律组合使用,达到最佳业务匹配度。例如您的Web应用流量大体稳定,但存在临时突增,可以采用基于云监控指标的动态模式,监控平均CPU使用率,及时地自动响应流量变化。

操作步骤

请根据您的业务架构评估业务模块,并执行以下操作实现指定业务模块的自动扩缩容:

步骤一:使用自定义镜像创建包年包月ECS实例

创建指定数量的包年包月ECS实例,用于添加到伸缩组,满足业务模块的日常业务要求。

  1. 登录ECS管理控制台
  2. 在左侧导航栏,单击实例与镜像 > 镜像
  3. 在顶部菜单栏左上角处,选择地域。
  4. 找到Web应用实例的自定义镜像,在操作列中,单击创建实例
  5. 配置实例信息并完成实例创建。
    • 付费模式设置为包年包月
    • 地域及可用区镜像信息已自动填充。

    请根据需要配置其它信息,详细信息请参见使用向导创建实例

步骤二:创建并启用伸缩组

为需要弹性扩缩容的业务模块创建伸缩组,并为伸缩配置选择Web应用实例的自定义镜像,确保自动创建出的ECS实例符合Web应用的要求。

  1. 登录弹性伸缩控制台
  2. 在顶部菜单栏处,选择地域。
  3. 创建一个伸缩组。
    • 来源类型设置为从0开始创建
    • 组内最小实例数设置为0
    • 网络类型设置为专有网络
    • 多可用扩缩容策略设置为均衡分布策略
    • 实例回收模式设置为释放模式
    • 绑定当前业务模块所使用的SLB实例和RDS实例。

    请根据需要配置其它信息,详细信息请参见创建伸缩组

  4. 单击查看伸缩组详情
  5. 前往组内实例配置信息来源,创建一个伸缩配置。
    镜像设置为Web应用实例的自定义镜像。

    请根据需要配置其它信息,详细信息请参见创建伸缩配置

  6. 启用伸缩配置和伸缩组。

步骤三:添加包年包月ECS实例并设置自动伸缩策略

将包年包月ECS实例添加至伸缩组,并创建目标追踪规则,实现根据业务峰谷自动伸缩,应对突增流量。

  1. 前往ECS实例列表界面,将创建好的包年包月ECS实例添加至伸缩组。
  2. 将包年包月ECS实例转为保护状态,保证日常业务正常运行。
  3. 前往基本信息界面,根据业务需求,修改伸缩组的最小实例数和最大实例数。
  4. 前往伸缩规则界面,创建一条目标追踪规则。
    • 伸缩规则类型设置为目标追踪规则
    • 指标类型设置为平均CPU使用率
    • 目标值设置为50%

    请根据需要配置其它信息,详细信息请参见创建伸缩规则

执行结果

包年包月ECS实例已被转为保护状态,用于承载日常业务。处于保护中状态的ECS实例不会被移除伸缩组,而且负载均衡权重不受影响。

伸缩组自动将ECS实例的平均CPU使用率维持在50%左右,高于50%时自动创建ECS实例分担流量,低于50%时自动释放ECS实例节省成本。ECS实例数量始终大于等于最小实例数,且小于等于最大实例数,保证满足业务需求且成本不会超出期望范围。