You need to enable JavaScript to run this app.
导航

搭建可自动伸缩的网站

最近更新时间2024.03.04 17:27:06

首次发布时间2022.11.01 14:35:03

本文介绍如何使用弹性伸缩服务搭建可自动伸缩的网站应用,帮助您在活动、促销、秒杀等短时高并发的场景自动扩展或缩减实例,使得您的业务无论是在波动期或者稳定期,都能够保持恰到好处的资源量。

前提条件

  • 本文以CentOS 7.6操作系统为例,请确认您已购买一台Linux实例,并完成所需网站的搭建,搭建方法请参见搭建网站
  • 您已参考 入门指引完成准备工作,规划的资源如下:
    • 传统型负载均衡CLB实例lb01和后端服务器组rs01。
    • 私有网络vpc01和子网subnet01。
    • 实例对外提供服务的端口为8080,预期各实例均分业务流量。
  • 已创建实例未关联公网IP和负载均衡服务,且不属于任一伸缩组。

步骤一:创建已搭建网站的自定义镜像

您需要基于已搭建网站的实例创建自定义镜像,当弹性伸缩自动扩展实例时,即自动创建已搭建了网站的实例。

  1. 远程连接云服务器并登录,具体操作请参考登录Linux实例小节。
  2. 清除Cloud-Init配置
    执行以下命令,删除/var/lib/cloud文件,清除Cloud-Init配置。若不删除,使用自定义镜像创建的云服务器实例将无法注入主机名、密码等信息。
    rm -rf /var/lib/cloud
  3. 通过实例创建自定义镜像 。
    1. 在实例列表页,单击目标实例列表右侧“操作”列下“ > 云盘和镜像 > 创建自定义镜像”按钮。
    2. 在弹出框中,输入自定义镜像名称。
    3. 单击“确定”按钮,等待自定义镜像创建,期间创建时间约需1-10分钟。

步骤二:创建实例启动模版

实例启动模版是一系列实例配置信息的集合,用于快速购买实例,建议您使用实例启动模版作为伸缩配置来源。

  1. 登录云服务器控制台
  2. 在顶部导航栏,选择目标实例的地域。
  3. 在实例列表页,单击目标实例“操作”列的“... > 实例设置 > 保存为启动模版” 按钮。
  4. 确认配置信息,如不符合预期,您单击对应图标,进入相应配置页面修改。请您重点关注以下配置信息,避免后续操作失败:
    • 实例所选镜像因为步骤一中创建的自定义镜像。
    • 登录方式应为“SSH密钥”,且已选择密钥对。
  5. 确认无误后,输入实例启动模版的名称。
  6. 单击“确认配置”按钮,完成操作。

步骤三:创建伸缩组

  1. 登录 伸缩组控制台

  2. 单击“创建伸缩组”按钮,进入创建伸缩组页面。

  3. 配置伸缩组基本信息。
    alt

    参数说明
    地域选择伸缩组和实例所属的地域,应选择与已创建实例相同的地域。
    伸缩组名称配置伸缩组的名称。
  4. 配置伸缩组的实例配置来源,此处选择“实例启动模版”,且选择步骤二中创建的模版。

  5. 配置伸缩组的实例数量信息。
    alt

    参数说明取值
    最小实例数伸缩组中实例个数的最小值。此处设置为可支撑日常运行的实例数量:2
    最大实例数伸缩组中实例个数的最大值。此处设置为支撑业务的最大实例数:5
    期望实例数伸缩组中实例个数的固定值。此处不配置
    冷却时间伸缩组执行伸缩行为后的冷却时间。此处设置为默认值:300s
  6. 配置伸缩组的网络配置信息。
    alt

    参数说明取值
    私有网络选择伸缩组和实例所属的私有网络。此处需选择与已创建实例相同的私有网络。
    子网选择伸缩组和实例所属的子网。此处可任意选择一个子网。
    绑定/选择传统型负载均衡CLB将伸缩组关联至传统型负载均衡CLB,添加后端服务器组,并设置各实例的端口和权重。绑定已有负载均衡CLB,lb01,rs01,8080,50
    绑定/选择应用型负载均衡ALB将伸缩组关联至应用型负载均衡ALB,本场景中无需关联。暂不绑定
  7. 配置伸缩组的策略配置信息。

    alt

    参数说明取值
    扩缩容策略伸缩组选择了多个子网时,自动扩缩容实例时目标可用区的选择策略,本例仅选择一个子网,因此保持默认配置即可。优先级策略
    实例移出策略当伸缩组中要移出实例时,将根据此处设置的移出策略选择实例。此处设置为默认值,移出较早创建的配置中,较早创建的实例
    选择消息通知您可以选择将伸缩的结果通过站内信、短信或邮件的方式通知给您,便于第一时间了解伸缩组的变化。此处取消勾选
    实例健康检查开启后,各实例加入伸缩组后,将立即开启健康检查能力,每5分钟监测一次实例的运行状态,如果实例处于 错误 状态,即会判定为异常,伸缩组会自动移出/删除异常实例。此处保持默认值,即启动
  8. 配置伸缩组的高级配置信息。

    alt

    参数说明取值
    项目选择伸缩组所属项目。此处保持默认值,即空值
    标签选择伸缩组所属标签。此处保持默认值,即空值
  9. 单击“确定”按钮,完成伸缩组创建。

步骤四:启用伸缩组

启用伸缩组后,即会立即触发扩缩容操作,按照您设定的最小实例数扩容实例,并检测实例状态。

  1. 在伸缩组列表中,单击已创建伸缩组对应的“启用”按钮。
  2. 单击“确定”按钮,启用伸缩组。

步骤五:添加已有实例到伸缩组

本操作用于将已创建的实例添加到伸缩组中,受伸缩组健康检查检测,保证业务的正常运行。

  1. 单击伸缩组的名称,选择“实例管理”页签。
  2. 单击“添加已有实例”按钮,选择已创建的实例。
  3. 不勾选“将实例的生命周期托管给伸缩组”。
  4. 单击“确定”按钮,完成操作。

步骤六:创建报警伸缩规则

报警伸缩规则是通过对实例指标数据的监控,以每分钟一次的频率检测实例运行情况是否符合预期,从而达到动态伸缩的目的,用于应对突发或不可预料的业务场景,例如突发热点新闻等。

  1. 登录 伸缩组控制台

  2. 单击伸缩组的名称,选择“伸缩规则”页签。

  3. 单击“创建伸缩规则”按钮,进入添加伸缩规则页面。

  4. 参考下表配置参数。
    alt

    参数说明取值示例
    伸缩规则名称伸缩规则的名称。as-rule01
    规则类型选择“报警任务”,表示根据监控指标触动伸缩行为。报警任务

    监控指标

    设置监控指标数据的阈值,达到阈值即触发报警。

    • 获取Agent监控指标数据前,您需要首先在实例中安装Agent插件并完成授权,否则将无法获取数据。安装指引请参考云服务器监控概述

    带外CPU利用率平均值 > 80%。表示伸缩组中所有实例CPU使用率的平均值大于80%。

    重复几次后报警当监控指标数据连续几次达到阈值时,即触发伸缩行为。3,表示连续3次触发报警后,即触发伸缩行为。
    伸缩行为设置在触发时间,需要执行的伸缩行为,支持增加容量、减少容量或调整容量为确定数量,支持指定具体数值或百分比。增加实例,2个实例
    冷却时间执行伸缩规则成功后,即最后一个实例完成伸缩行为后,允许进行下一次伸缩行为前的间隔时间,用于为新创建的实例提供初始化业务的时间。300s
    创建后状态选择伸缩规则创建完成后,是否立即启用。启用
  5. 单击“确定”按钮,完成操作。

  6. 重复本步骤,创建监控指标为“带外CPU利用率平均值 < 80%”,伸缩行为为“减少实例,2个”的伸缩规则。

执行结果

伸缩组每分钟检测一次各实例运行情况,并根据检测结果执行相关操作:

  • 当所有实例的带外CPU利用率平均值 > 80%时,自动按照实例启动模版的配置创建2台新实例。
  • 当所有实例的带外CPU利用率平均值 < 80%时,自动缩减2台实例。
  • 当实例处于 错误 状态,会判定为异常,自动删除异常实例。
  • 伸缩组中实例不符合最小实例数要求时,会自动创建新实例,使实例数量与配置相符。