前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >aws ec2如何实现定时开关机

aws ec2如何实现定时开关机

作者头像
叔牙
发布2024-04-26 18:52:00
1360
发布2024-04-26 18:52:00
举报

内容目录

一、背景与概述二、服务设置开机启动三、编写Lambda开关机函数四、基于Scheduler计划实现定时开关机

一、背景与概述

使用过aws云服务的大概都了解到,服务器是按时长收费的,计费粒度是小时,当然还有一些类似国内云服务厂商提供的包年包月的计费方式,比如预留实例和Saving Plans等,不过大部分场景都是使用的按量计费模式。

那么基于这种计费模式,对于一些中小型企业,采购的服务器一般分两种,一种是不能停机的业务服务或者基础服务,一种是工具服务,比如打包部署平台,为了追求使用高性能采购高配置机型,但是又想节省成本,怎么办呢?

虽然aws的ec2是按使用时长计费的,但是如果关机了就不再继续收取实例费用,当然在没有销毁的情况下,SSD磁盘和弹性ip等会继续收费,不过相比于实例费用几乎是毛毛雨啦。

那这里我们就可以讨个巧了,以jenkins打包平台为例,为了提高打包速度,直接采购8c 16g机型部署jenkins服务,可以通过以下几点实现定时开关机来节省成本:

  • 设置开机启动
  • 通过Lambda函数实现开关机
  • 使用调度计划定频定时调度Lambda函数开关机

那么通过实现这些能力,就能实现ec2的按需定时开关机了。

二、服务设置开机启动

以jenkins服务为例,通过以下命令设置成开机启动:

代码语言:javascript
复制
sudo systemctl enable jenkins

其他服务也可以写成systemd服务单元交给systemctl来管理,同样可以使用enable命令来实现开机启动。

三、编写Lambda开关机函数

创建一个Lambda函数:

选择python语言,并且选择一个有权限调用aws sdk控制ec2实例状态的角色,创建角色此处不展开。

编写脚本内容,指定ec2实例所在大区以及实例id,调用boto3 sdk能力来操作指定实例的状态。

代码语言:javascript
复制
import json


import boto3
region = 'ap-xxx'
instances = ['i-13435555555xxxx']
ec2 = boto3.client('ec2', region_name=region)
 
def lambda_handler(event, context):
    ec2.start_instances(InstanceIds=instances)
    print('started instances: ' + str(instances))

脚本很简单,同样关机Lambda函数把脚本内容ec2操作部分替换成:

代码语言:javascript
复制
import json
import boto3
region = 'ap-xxx'
instances = ['i-13435555555xxxx']
ec2 = boto3.client('ec2', region_name=region)
 
def lambda_handler(event, context):
    ec2.stop_instances(InstanceIds=instances)
    print('stopped  instances: ' + str(instances))

这样Lambda脚本就具备了启停Ec2实例的能力了。

四、基于Scheduler计划实现定时开关机

在Scheduler控制台创建计划:

选择cron类型的计划,并填入需要的调度格式,以及时区信息:

然后选择计划的执行目标位Lambda Invoke,并从列表中选择对应的Lambda函数。

然后选择默认执行角色并保存,这样我们执行计划,也就是调度任务就创建好了。并且我们能够预览后续的执行频次和周期:

当然我们也可以进行编辑、删除和禁用,来控制任务的执行策略。

这样我们就基于Scheduler+Lambda+aws sdk实现了Ec2实例的定时开关机能力了。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-23,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 PersistentCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内容目录
  • 一、背景与概述
  • 二、服务设置开机启动
  • 三、编写Lambda开关机函数
  • 四、基于Scheduler计划实现定时开关机
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com