Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >aws ec2如何实现定时开关机

aws ec2如何实现定时开关机

作者头像
叔牙
发布于 2024-04-26 10:52:00
发布于 2024-04-26 10:52:00
57400
代码可运行
举报
运行总次数:0
代码可运行

内容目录

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

一、背景与概述

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

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

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

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

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

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

二、服务设置开机启动

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable jenkins

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

三、编写Lambda开关机函数

创建一个Lambda函数:

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
003 基于Python进行DevOps常见问题集合
通过前面两章的基础学习,我们大概了解了基于Python进行DevOps实践需要哪些知识。
苦叶子
2024/03/26
1980
003 基于Python进行DevOps常见问题集合
使用Lambda实现EC2状态变更通知
在有些场景,需要频繁的启动、关机服务器,并且需要感知服务器启停的动作,比如项目迭代有有新服务器的启动和老服务器的停止,以及一些工具服务为了节省成本的手动和自动启停,然后需要感知这些动作,来关注服务器状态的正常和非正常变更,比如业务机器的状态变更是非常高危的动作等。
叔牙
2024/05/21
1940
使用Lambda实现EC2状态变更通知
分布式系统开发实战:实战,使用AWS平台实现Serverless架构
·全球所有玩家的持久化信息(包括用户基本信息、等级、装备、进度等状态信息)都保存在中心站点。玩家统一通过HTTP(S)登录中心站点并获取状态信息。
IT大咖说
2021/06/15
1.9K0
分布式系统开发实战:实战,使用AWS平台实现Serverless架构
[614]python库boto3
在云计算的时代,自动化和编程接口对于快速开发和部署应用至关重要。Amazon Web Services (AWS) 作为全球最大的云服务提供商,提供了一个强大的库——boto3,它是AWS的Python SDK,允许Python开发者直接通过Python代码管理和使用AWS服务。
周小董
2025/05/02
870
如何利用SCF实现定时开关机的功能
随着腾讯云的企业用户越来越多,而企业的场景也是多样化的,一方面作为云服务商需要不断地完善产品能力以满足更多业务需求,另一方面作为云用户其实也是可以利用已有的一些能力自行进行封装/组合从而满足自己的个性化需求。本文分享的例子则是利用SCF实现定时开关机的功能,希望能给用户起到参考作用。SCF+定时器+云API+监控能组装出来什么样的能力,各位可以结合自身业务需求来思考下,比如定时备份?比如定时拨测?也希望能对各位有启发,能更好地利用现有的云服务能力来更好地服务业务。
腾讯云计算产品团队
2018/09/29
8.1K6
远程定时开关机方法
无论家用电脑还是公司的电脑,远程定时开关机都是一个非常实用的功能,只是一般都不太受关注。
博文视点Broadview
2020/06/12
2.9K0
Serverless初探
无服务器计算是指开发者在构建和运行应用时无需管理服务器等基础设施,应用被解耦为细粒度的函数,函数是部署和运行的基本单位。用户只为实际使用的资源付费。这些代码完全由事件触发(event-trigger),平台根据请求自动平行调整服务资源,拥有近乎无限的扩容能力,空闲时则没有任何资源在运行。代码运行无状态,可以轻易实现快速迭代、极速部署。
KaliArch
2018/08/31
11.3K0
Serverless初探
AWS机器学习初探(1):Comprehend - 自然语言处理服务
Amazon Comprehend 服务利用自然语言处理(NLP)来分析文本。其使用非常简单。
SammyLiu
2019/06/28
2.2K0
AWS机器学习初探(1):Comprehend - 自然语言处理服务
使用Python进行云计算:AWS、Azure、和Google Cloud的比较
随着云计算的普及,越来越多的企业和开发者转向使用云服务来构建和扩展他们的应用程序。AWS(亚马逊云服务)、Azure(微软云)和Google Cloud Platform(谷歌云平台)是当前市场上最受欢迎的三大云服务提供商。本文将使用Python语言为您展示如何在这三个平台上执行常见的任务,并比较它们的优缺点。
一键难忘
2024/06/17
4890
9 个月节省 4.23 亿:由 AWS EC2 迁移 Kubernetes
对于在云端运行重要工作负载的任何企业而言,确保云支出随需求增减而自动增减是核心优先事项之一,但对于太多的企业来说,这又常常是令人痛苦、代价高昂的教训。不过从来不缺一线用户给出的有意义的详细指导,爱彼迎(Airbnb)正是愿意分享宝贵经验的用户之一。 爱彼迎的两位软件工程师Evan Sheng和David Morrison在一篇详细的新文章中介绍了他们如何使用Kubernetes Cluster Autoscaler动态扩展云集群;近年来,这家公司做出了许多早期云采用者正在做出的转变:将几乎所有在线服务从手
云头条
2022/06/06
4970
9 个月节省 4.23 亿:由 AWS EC2 迁移 Kubernetes
隐藏云 API 的细节,SQL 让这一切变简单
作者 | Jon Udell 译者 | 明知山 策划 | 丁晓昀 渗透测试人员、合规性审计员和其他 DevSecOps 专业人员花了大量时间编写脚本来查询云基础设施。人们喜欢用 Boto3(Python 版 AWS SDK)来查询 AWS API 并处理返回的数据。 它可以用来完成简单的工作,但如果你需要跨多个 AWS 帐户和地区查询数据,事情就变得复杂了。这还不包括访问其他主流云平台(Azure、GCP、Oracle Cloud),更不用说 GitHub、Salesforce、Shodan、Sl
深度学习与Python
2023/03/29
4.3K0
隐藏云 API 的细节,SQL 让这一切变简单
大数据ETL实践探索(2)---- python 与aws 交互
本系列文章主要针对ETL大数据处理这一典型场景,基于python语言使用Oracle、aws、Elastic search 、Spark 相关组件进行一些基本的数据导入导出实战,如:
流川疯
2019/01/17
1.5K0
干货 | 容器成本降低50%,携程在AWS Spot上的实践
AWS Spot实例,即竞价实例,是AWS把用户未购买的空闲计算资源以低于按需价格的方式出售给用户,以期带来收益。通常,AWS Spot实例的价格是按需实例价格的30%,对于AWS使用者来说,如果合理使用,可以大大节省云上费用的支出,是节省成本的一大利器。
携程技术
2021/12/31
2.4K0
干货 | 容器成本降低50%,携程在AWS Spot上的实践
AWS医疗NLP
命名实体识别(Named Entity Recognition,NER)是目前最流行和最有需求的自然语言处理任务之一。随着NER的扩展,它也变得更加特定于领域。
磐创AI
2021/09/03
1.6K0
云中树莓派(5):利用 AWS IoT Greengrass 进行 IoT 边缘计算
云中树莓派(5):利用 AWS IoT Greengrass 进行 IoT 边缘计算
SammyLiu
2019/06/28
2.4K0
云中树莓派(5):利用 AWS IoT Greengrass 进行 IoT 边缘计算
AWS DynamoDB数据实时迁移TcaplusDB解决方案
本文档主要介绍如何实时迁移AWS DynamoDB数据到腾讯云TcaplusDB。TcaplusDB是腾讯推出的一款全托管NoSQL数据库服务,专为游戏设计,立志于打造面向全球的精品云存储产品,提供高性能、低成本、易扩展、稳定、安全的存储服务。TcaplusDB与DynamoDB类似,数据模型采用的是KV和文档两种类型,以表为组织管理单位。相对DynamoDB表的schema-free模式,TcaplusDB采用的是schema架构,即需要用户提前定义好表的schema,但与传统关系型表结构定义相比,TcaplusDB支持更丰富的数据结构,如支持多层嵌套,满足多样化的数据定义需求。
温球良
2020/06/28
5.7K0
AWS DynamoDB数据实时迁移TcaplusDB解决方案
Chris Richardson微服务翻译:微服务部署
Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服务部署(本文) 重构单体应用为微服务 原文链接:Choosing a Microservices Deployment Strategy ---- 动机 部署一个单体应用意味着运行着庞大应用的多个副本,通常需要 N 台服务器(物理机或虚拟机),在每台服务器上运行 M 个应用实例。部署单体应用一般并不特别直接,但还是比部
butterfly100
2018/04/17
1.2K0
Chris Richardson微服务翻译:微服务部署
【玩转腾讯云】Serverless+CVM实战
写过一篇Serverless初探,后期结合Tencent Serverless Toolkit for VS Code的IDE插件,刚好借此使用下,相较于之前没有IDE插件,编码在本地,但是debug非常繁琐,需要上传代码到云端控制台操作,现在有了IDE插件从本地编码测试上传部署一条路,快速体验下此为SCF添翼的神器。
KaliArch
2020/03/29
2.8K0
云计算成本管理的6个技巧
为了避免每月云计算支出超出组织的预期,组织可以使用容器,容量预购和更多的云成本管理策略来控制失控的云支出。 在云中运营组织的业务与在本地部署数据中心运行相比是根本不同的。当运营不同时,其成本的策略也不同。 从财务角度来说,数据中心需要大量的建筑资本支出,服务器和软件许可证的额外资本支出,以及为服务器和冷却系统供电以及维护和管理的虽然较小但重要的运营支出。 在云计算中没有资本支出。相反,却有显著的运营支出,用于服务器虚拟机实例,存储,网络流量,软件许可证和其他细节。 从成本管理的角度来看,将计算负载转移到云
静一
2018/03/28
1.4K0
云计算成本管理的6个技巧
CloudBluePrint-Chapter 1.7 : 云上应用技术架构-函数计算、Serverless、小程序
FaaS(函数即服务)、Serverless、小程序和弹性云计算的诞生可以归因于云计算发展的趋势和应用架构的演变。
行者深蓝
2023/09/01
4240
相关推荐
003 基于Python进行DevOps常见问题集合
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验