博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定时关闭AWS上的EC2机器实例
阅读量:4570 次
发布时间:2019-06-08

本文共 1245 字,大约阅读时间需要 4 分钟。

最近一段时间在做一个产品从阿里云向亚马逊云中国区迁移的前期试验。亚马逊中国区并没有开放免费体验账号,使用的每一份资源都要实打实的掏钱。而为了实验我们使用时一般要启动好几台EC2实例。为了不浪费辛辛苦苦赚的钱,特写了一个脚本,在每天晚上6点将所有的EC2实例自动关闭。由于在亚马逊云中关闭的EC2实例是不收费的,只收取少量的存储费用,所以这样节省不少钱。

为了让一台机器可以值守这个任务,所以我们在AWS留一台机器用来定期执行关闭其它机器的命令。关闭EC2的命令主要是使用AWS提供了awscli来实现。

首先在这台机器上安装awscli。这台机器使用的操作系统是ubuntu 12.04,所以使用其自带的包管理器可以一键安装。

1
$ apt-get install awscli

安装完毕后需要配置aws命令行工具的认证。方式有很多,最简单的是运行aws configure来实现。

12345
$ aws configureAWS Access Key ID [None]: YOURACCESSKEYAWS Secret Access Key [None]: YOURSECRTKEYDefault region name [None]: cn-north-1Default output format [None]: json

或者你可以在当前用户根目录下的.aws目录中配置认证信息,详情请移步.

接下来在当前用户根目录下创建stopinstance.sh文件,并输入以下信息.

stopinstance.sh
12
#!/bin/bashaws ec2 stop-instances --instance-ids i-68726951 i-965ca276 i-377a620e i-d35fa133 i-fe5ca21e

这就是关闭指定EC2实例的命令,--instance-ids后面跟的就是你的EC2实例的id。

把该文件权限改为可执行。

1
$ chmod +x stopinstance.sh

最后要让该命令定时执行,那么就要借助crontab这个命令了。

使用crontab -e来编辑batch文件,在文件最后加上下行.

1
* 18 * * * ~/stopinstance.sh >> ~/shutdown.log

前五个字段制定命令执行的时间。第一个是分钟,第二个是小时,第三个是每月的哪天,第四个是月份,第五个是每周的哪天。配置相当灵活。

这句话是描述了一个batch任务,在每天的下午6点执行,会执行stopinstance.sh脚本,并把日志输出到shutdown.log文件中。

注意使用crontab执行任务时一定要注意当前机器的时区和你期望执行的时间所用时区是否不同。有关crontab和cron命令的进一步使用请移步

至此,就大功告成了。

转载于:https://www.cnblogs.com/huang0925/p/4186830.html

你可能感兴趣的文章
为什么要配置sdk-tools/platform-toools?
查看>>
自己动手开发更好用的markdown编辑器-07(扩展语法)
查看>>
maven dependency:tree中反斜杠的含义
查看>>
队列的循环队列
查看>>
程序中的日期格式
查看>>
大众点评CAT错误总结以及解决思路
查看>>
从0开始学爬虫3之xpath的介绍和使用
查看>>
vim下正则表达式的非贪婪匹配
查看>>
一个python的计算熵(entropy)的函数
查看>>
spring源码学习——spring整体架构和设计理念
查看>>
模拟window系统的“回收站”
查看>>
报文格式【定长报文】
查看>>
RDLC报表钻取空白页问题
查看>>
多路电梯调度的思想
查看>>
jQuery-对Select的操作
查看>>
过滤器、监听器、拦截器的区别
查看>>
为什么要进行需求分析?通常对软件系统有哪些需求?
查看>>
一些模板
查看>>
jquery和dom元素相互转换
查看>>
放大的X--HDOJ-201307292012
查看>>