暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

十分钟掌握AWS定时开关机,你Get到了吗?

AWS Azure技术分享 2020-07-27
1997


实现基于AWS EC2定时开关机的方式多种多样,为了方便大家快速入手,本文章会详细介绍如何通过Cloudwatch Event + AWS Lambda 实现AWS EC2定时开关机。

  • AWS Cloudwatch Event : 设置定时任务,触发器的角色

  • AWS Lambda :基于Python实现AWS EC2开关机

一、场景描述

很多时候,对于测试和开发实例,为了节省花费,我们通常会选择设置定时开关机。实现定时开关机的方式有很多:
  • AWSCLI + Crontab 

  • AWS Lambda + Python + Cloudwatch Event

  • 结合AWS API编写程序(支持的语言C#,Python,Java等)

  • 第三方开发好的软件


在今天我们主要介绍使用AWS Lambda和Cloudwatch Event来实现定时开关机. 

什么是AWS Lambda

AWS Lambda 是一项Serverless服务,可使您无需预配置或管理服务器即可运行代码。您只需按消耗的计算时间付费 – 代码未运行时不产生费用。借助 AWS Lambda,您几乎可以为任何类型的应用程序或后端服务运行代码,而且无需执行任何管理。AWS Lambda 在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量预置和自动扩展、代码监控和记录。目前支持 Node.js、Java、C# 和 Python等语言。

AWS Lambda 配置

1.  打开AWS Lambda 控制台,选择“创建AWS Lambda函数”,在选择函数界面,选择“从头开始制作” ;

  •       名称:"StopEC2Instances"            

  •       语言:Python 3.8

  •       角色:选择默认的“lambda_basic_execution”

2. 在Lambda 函数代码编辑框,复制如下信息:

    import boto3

    region = 'cn-north-1'

    # Enter your instances here: ex. ['X-XXXXXXXX', 'X-XXXXXXXX']

    instances = ['i-030abfcce0a18b9b6']

    def lambda_handler(event, context):

        ec2 = boto3.client('ec2', region_name=region)

        ec2.stop_instances(InstanceIds=instances)

        print 'stopped your instances: ' + str(instances)



3. 重复1-2步骤创建EC2启动实例的函数,代码如下:

    import boto3

    # Enter the region your instances are in, e.g. 'us-east-1'

    region = 'cn-north-1'

    instances = ['i-030abfcce0a18b9b6']

    def lambda_handler(event, context):

        ec2 = boto3.client('ec2', region_name=region)

        ec2.start_instances(InstanceIds=instances)

        print 'started your instances: ' + str(instances)


备注:名字和描述自己填,角色选择之前创建的即可。

配置Cloudwatch Event

1.    进入Cloudwatch控制台,选择规则,点击“创建规则”

  •  事件源:选择“计划”,Crontab表达式:00 23 * * ? *   

    即设置每晚23点关机实例,关于更多关于表达式的格式,可以参考:https://docs.aws.amazon.com/zh_cn/console/cloudwatch/events/createrule

  • 目标栏,选择“添加目标”,目标类型选择创建的“Lambda函数”

2. 配置详细信息,以下可以参考:

    文件名:"StopEC2Instances"           

    描   述:“stops EC2 instances every day at night”

    状  态:已启用

3.    点击创建规则即可.

按照同样的步骤,创建另外的规则在开启实例的配置。


点一下右下角“在看”,让我们做的更好

文章转载自AWS Azure技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论