对于有明显波峰波谷的业务,例如企业级OA系统、CRM系统等,在非高峰时段(夜间/周末),ECS实例持续运行造成资源浪费。通过启用ECS的节省停机模式并结合系统运维管理的定时开关机功能,可实现自动化管理,降低成本并提高运维效率。
背景知识
ECS实例在关机(停止)时选择节省停机模式,vCPU(如果是异构计算实例,也会回收GPU或FPGA资源)、内存、固定公网IP和镜像License会被回收并停止计费,从而降低成本,但云盘、弹性公网IP及快照等会继续保留并收取相应资源产生的费用。更多详情请参见节省停机模式。
前提条件
ECS实例为按量付费实例或者抢占式实例。
操作步骤
1. 设置标签
为需要定时开关机的ECS实例设置标签,帮助在系统运维管理任务中快速选择目标实例,例如每日需要定时开关机的实例设置标签machine:StopAndStart。更多信息,请参见标签。
2. 设置服务为开机自启动
为确保实例开机时内部服务能够正常运行,需为目标实例中的服务配置开机自启动。
Linux系统
本文示例使用systemd配置服务myapp自启动。
在目录
/etc/systemd/system
创建myapp.service
文件写入以下内容。# 系统单元配置 [Unit] # 描述服务名称 Description=My Application Service # 服务配置部分 [Service] # 启动脚本路径,需要根据服务自定义启动脚本 ExecStart=/path/to/myapp/start.sh # 始终重启服务 Restart=always # 安装配置部分 [Install] # 设置启动目标 WantedBy=multi-user.target
执行以下命令启用开机自启并启动服务。
#设置开机自动启动 sudo systemctl enable myapp.service #启动服务 sudo systemctl start myapp.service
Windows系统
本文示例使用Windows Server 2025系统,以任务计划程序为例。
在开始菜单搜索任务计划程序,打开任务计划程序。
菜单单击操作,在列表中选择创建基本任务。
输入任务名称后单击下一页。
触发器选择计算机启动时,并单击下一页。
操作选择启动程序,并单击下一页。
上传启动程序或启动脚本后,单击下一页,单击完成保存任务。
3. 创建定时开关机任务
登录系统运维管理-定时开关机。
在页面左侧顶部,选择目标资源所在的资源组和地域。
单击创建,在选择任务类型区域中,设置任务名称、执行周期、任务类型、时区、关机时间、开机时间、任务结束时间等。
例如,每天21:00:00关机,8:00:00开机,您可以在即将执行时间预览中查看即将执行的开关机时间。
选择资源类型、停机模式、实例是否休眠。
资源类型:选择ECS实例。
停机模式:选择节省停机模式。
说明通过节省停机模式停止按量付费实例,可以在保留服务器的数据和配置信息的同时,节省部分资源使用成本。开启节省停机模式后,不再收取计算资源(vCPU和内存)、固定公网IP、镜像License费用,云盘(系统盘和数据盘)、弹性公网IP、快照等资源继续收费。更多信息,请参见节省停机模式。
实例是否休眠:不开启。
执行使用到的权限的来源:默认服务关联角色
单击选择实例,选择指定实例标签页签,选择地域后,在实例标签区域选择已设置的标签(例如machine:StopAndStart)。
单击高级选项(可选),选择并发控制,并设置并发速率,以及最大错误次数。
执行设置(可选)保持默认,然后单击创建。
在弹出的参数确认对话框,确认需要定时开关机的相关信息,然后单击确定。
查看执行详情。
单击执行ID操作列的详情,即可查看任务执行详情。
相关文档
系统运维管理是一个全面、免费的云上自动化运维平台,提供运维任务的管理和执行。常见应用场景包括:重复的运维任务,事件驱动的自动化场景,定时和批量的运维场景,跨地域的运维场景,以及需要审批的特殊场景等。OOS还可以作为运维任务的标准化平台,将运维手册、操作手册和维护手册等转化成模板,实现运维即代码(Operations as Code)的方式。更多信息,请参见什么是系统运维管理。