定时自动扩缩容ECS实例

弹性伸缩可以根据您设定的策略自动调整计算资源数量(即业务所需的实例数量),帮助您高效应对业务流量波动,提高资源利用率,并节约成本。对于周期性有规律的业务波动,您可以通过定时任务实现在指定的时间点触发伸缩规则,自动增加或减少一定数量的ECS实例。

适用场景

场景描述

业务需求周期性波动,需求量变化有规律,可以根据时间段来判断流量高峰和低谷,按时间点自动增加或减少服务器。

例如:某游戏公司的业务量固定在每晚18点~23点的时间段内增长,需要增加服务器,但在其他时段只需固定数量的服务器保证日常运营。

image

解决方案

根据业务波动的时间点来设置定时任务,在相应的时间点自动触发伸缩规则,从而实现定时自动扩缩容服务器。

image

方案优势

  • 零备机成本

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

  • 自动扩缩容

    通过定时任务实现在指定的时间点自动扩缩容,在满足业务需求的同时节约资源和运维成本。

前提条件

  • 首次使用弹性伸缩时,已完成RAM相关授权操作。

    • 已创建服务关联角色AliyunServiceRoleForAutoScaling。具体操作,请参见服务关联角色

    • 如果使用RAM用户操作,您需要为RAM用户添加AliyunESSFullAccess权限。具体操作,请参见为RAM用户授权

  • 使用弹性伸缩增加实例时,请确保您的阿里云账户余额(即现金余额)和代金券的总值不小于100.00元人民币。

    重要

    如果您的阿里云账户余额(即现金余额)和代金券的总值小于100.00元人民币,则将无法创建新的按量付费实例,从而导致弹性伸缩的扩容活动失败。

步骤一:创建伸缩组

伸缩组是弹性伸缩的核心单元,用于管理具有相同应用场景的实例集合。弹性伸缩将会在该伸缩组内增加或减少实例。

  1. 进入伸缩组管理页面。

    1. 登录弹性伸缩控制台

    2. 在左侧导航栏中,单击伸缩组管理

    3. 在顶部菜单栏处,选择地域。

  2. 在页面左上角,单击创建伸缩组

  3. 通过表单创建页签下,完成伸缩组配置,然后单击创建

    本文示例采用以下配置,未提及的配置项保持默认。更多关于伸缩组的配置说明,请参见创建伸缩组

    配置项

    示例

    描述

    伸缩组名称

    test

    输入伸缩组名称。格式要求请参考界面提示。

    伸缩组类型

    ECS

    选择ECS,表示伸缩组内的实例类型为ECS实例。

    组内实例配置信息来源

    从零开始创建

    先不指定自动创建实例的模板。伸缩组创建完成后,您需要继续创建伸缩配置。

    组内最小实例数

    1

    设置伸缩组内实例数量的下限。当前实例数量低于下限时,伸缩组会自动添加实例,使得伸缩组内的实例数量等于下限。

    组内最大实例数

    5

    设置伸缩组内实例数量的上限。当前实例数量超过上限时,伸缩组会自动移出实例,使得伸缩组内的实例数量等于上限。

    专有网络

    vpc-bp1jmxxau0lur929p****

    选择伸缩组内ECS实例所属的专有网络。

    选择交换机

    vsw-2zeknnyw2ewufbs4z****

    vsw-2zesy03h8eaf9fe0l****

    选择伸缩组内ECS实例所属的交换机。建议选择多个交换机来提升扩容成功率。

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

伸缩配置是扩容时所增加的ECS实例的配置模板,包括实例付费模式、规格、存储、网络等配置信息。创建伸缩组配置后,您可以启用伸缩配置,然后启用伸缩组。

  1. 找到待操作的伸缩组,选择任一种方式打开伸缩组详情页面。

    • 伸缩组名称/ID列,单击伸缩组ID。

    • 操作列,单击查看详情

  2. 在页面上方,单击实例配置来源页签。

  3. 伸缩配置页签下,单击创建伸缩配置

  4. 创建伸缩配置页面,完成相关参数配置,单击创建

    本示例中采用以下配置,未提及的配置项保持默认。更多关于伸缩配置的配置说明,请参见创建伸缩配置(ECS实例)

    区域

    配置项

    示例

    描述

    基础信息

    伸缩配置名称

    test

    输入伸缩配置的名称。格式要求请参考界面提示。

    付费模式

    按量付费

    弹性伸缩服务免费,但您需要为扩容时所增加的ECS实例付费。本文采用按量付费方式作为示例。更多信息,请参见计费概述

    实例和镜像

    实例配置方式

    指定实例属性

    选择指定实例属性方式来配置ECS实例的规格需求。

    指定实例属性组合

    2 vCPU,4 GiB内存,企业级

    设置ECS实例的vCPU和内存需求。

    选择镜像

    公共镜像Alibaba Cloud Linux 3.2104 LTS 64位

    选择用于部署ECS实例的镜像。本文以公共镜像作为示例,实际业务场景请选用您已部署应用的自定义镜像。

    存储

    系统盘

    ESSD云盘,40 Gib,PL0

    为ECS实例选择系统盘。

    网络和安全组

    公网IP

    选中分配公网IPv4地址,默认按固定带宽计费,带宽值默认为1 Mbit/s。

    按需选择是否为ECS实例分配公网IP地址。按公网出方向实际发生的带宽计费,带宽费用合并在ECS实例中收取。

    安全组

    sg-bp18kz60mefsicfg****

    选择您提前创建好的安全组。如需创建安全组,请参见创建安全组

    管理设置

    登录凭证

    创建后设置

    ECS实例创建完成后,再手动为ECS实例设置密码。

  5. 在弹出的伸缩配置预览对话框中,确认配置信息,然后单击确认创建

  6. 在弹出的伸缩配置创建成功对话框中,单击启用配置

  7. 在弹出的选用伸缩配置对话框中,单击确定

    说明

    在一个伸缩组内,您必须启用一个伸缩配置。启用伸缩配置后,该伸缩配置处于生效状态。

  8. 在弹出的启用伸缩组对话框中,单击确定

    启用伸缩组后,弹性伸缩才会按照您的配置实现扩容和缩容。

    本示例伸缩组内的最小实例数为1,因此启用伸缩组后,系统会基于伸缩配置自动创建一台ECS实例。您可以在伸缩组详情页面的实例列表页签下,选择自动创建页签,查看实例信息。

    手动1.png

步骤三:创建伸缩规则

伸缩规则用来指定每次伸缩活动的规则,如增加或者减少ECS实例的数量。

  1. 在伸缩组详情页面,单击伸缩规则与报警任务页签,然后单击伸缩规则页签。

  2. 单击创建伸缩规则,完成伸缩规则配置,然后单击确认

    本示例采用简单规则。更多关于伸缩规则的配置说明,请参见配置伸缩规则

    配置项

    描述

    规则名称

    输入规则名称。格式要求请参考界面提示。

    伸缩规则类型

    本示例采用简单规则。更多关于伸缩规则的介绍,请参见伸缩规则概述

    执行的操作

    设置触发规则时,需要增加或减少多少实例。单次伸缩支持的最大实例数为1000台。

    冷却时间

    可选项,单位为秒。不填写则默认使用伸缩组的冷却时间,更多信息,请参见冷却时间

    请重复该步骤,分别创建扩容规则和缩容规则。配置示例如下:

    伸缩规则

    配置示例

    扩容规则

    • 规则名称:add

    • 伸缩规则类型:简单规则

    • 执行的操作:增加1台

    缩容规则

    • 规则名称:remove

    • 伸缩规则类型:简单规则

    • 执行的操作:减少1台

步骤四:创建定时任务

定时任务是一种预设任务,可以在指定时间执行指定伸缩规则。

  1. 在伸缩组详情页面,单击伸缩规则与报警任务页签,然后单击定时任务页签。

  2. 单击创建定时任务,完成任务配置,然后单击确认

    需要关注的任务配置如下,未提及的配置项保持默认。更多关于定时任务的配置说明,请参见定时任务概述

    配置项

    描述

    任务名称

    输入任务名称。格式要求请参考界面提示。

    执行时间

    设置任务的触发时间。

    伸缩方式

    选中选择已有伸缩规则

    伸缩规则(简单规则)

    选择要执行的伸缩规则。

    重复周期

    设置任务的重复周期。例如:按天,每1天执行一次。

    请重复该步骤,分别创建触发扩容规则和缩容规则的定时任务。配置示例如下:

    定时任务

    配置示例

    定时扩容

    • 任务名称:scheduled-add

    • 执行时间:2024年5月16日 18:00

    • 伸缩方式:选择已有伸缩规则

    • 伸缩规则(简单规则):add

    • 重复周期:按天,每1天执行一次。

    定时缩容

    • 任务名称:scheduled-remove

    • 执行时间:2024年5月16日 23:00

    • 伸缩方式:选择已有伸缩规则

    • 伸缩规则(简单规则):remove

    • 重复周期:按天,每1天执行一次。

验证自动扩缩容效果

定时任务创建后,系统会自动按照任务的时间点来执行伸缩规则。

本示例实现效果为:

  • 每天18点自动增加1台ECS实例

  • 每天23点自动减少1台ECS实例

您可以通过以下方式确认效果:

  • 定时任务触发时,在伸缩组详情页面的实例列表页签下,选择自动创建页签,然后在实例列表中观察实例数量变化。

  • 定时任务触发后,在伸缩组详情页面的伸缩活动页签下,查看是否已按时触发伸缩活动,单击伸缩活动ID可查看详细信息。