定时关闭AWS上的EC2机器实例

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

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

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

1
$ apt-get install awscli

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

1
2
3
4
5
$ aws configure
AWS Access Key ID [None]: YOURACCESSKEY
AWS Secret Access Key [None]: YOURSECRTKEY
Default region name [None]: cn-north-1
Default output format [None]: json

或者你可以在当前用户根目录下的.aws目录中配置认证信息,详情请移步http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html.

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

stopinstance.sh
1
2
#!/bin/bash
aws 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命令的进一步使用请移步http://www.adminschoice.com/crontab-quick-reference

至此,就大功告成了。

时间: 2024-10-17 16:11:21

定时关闭AWS上的EC2机器实例的相关文章

在aws上建立EC2与增加卷

新建instance时,不用新加vol,只需留root, 后面到volumn那里创建卷.再添加到实例上. 利用到的命令:sudo fdisk -llsblk 分区:fdisk -S 56 /dev/xvdb依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成.格式化:mkfs -t ext4 /dev/svdb1sudo fdisk -l(http://help.aliyun.com/view/11108189_13435365.html?spm=5176.7224609

【问题追查】记海外aws上redis-cluster单实例抖动问题追查

[背景] 公司在海外的业务没有自建机房,而是使用了aws的服务,型号是r4.4xlarge. 但是,部署在aws上的redis集群,经常遇到某个实例耗时抖动比其他实例厉害,但是cpu.mem.网络等指标都较低的情况. 于是开启了一场漫长的问题定位之路. [现象] 集群中某些redis实例有较明显的抖动现象 如上图所示,实例10.100.14.19.10.100.15.206.10.100.7.237有明显抖动. 所有机器的cpu资源.内存资源都还有很大余量,网络丢包也没有 [追查] 使用LATE

如何在 Amazon AWS 上设置一台 Linux 服务器

摘要: AWS(Amazon Web Services)是全球领先的云服务器提供商之一.你可以使用 AWS 平台在一分钟内设置完服务器.在 AWS 上,你可以微调服务器的许多技术细节,如 CPU 数量,内存和磁盘空间,磁盘类型(更快的 SSD 或者经典的 IDE)等. AWS(Amazon Web Services)是全球领先的云服务器提供商之一.你可以使用 AWS 平台在一分钟内设置完服务器.在 AWS 上,你可以微调服务器的许多技术细节,如 CPU 数量,内存和磁盘空间,磁盘类型(更快的 S

震惊!线上四台机器同一时间全部 OOM,到底发生了什么?

案发现场 昨天晚上突然短信收到 APM (即 Application Performance Management 的简称),我们内部自己搭建了这样一套系统来对应用的性能.可靠性进行线上的监控和预警的一种机制)大量告警 画外音: 监控是一种非常重要的发现问题的手段,没有的话一定要及时建立哦 紧接着运维打来电话告知线上部署的四台机器全部 OOM (out of memory, 内存不足),服务全部不可用,赶紧查看问题! 问题排查 首先运维先重启了机器,保证线上服务可用,然后再仔细地看了下线上的日志

如何用Rancher在AWS上运行Kubernetes

众所周知,亚马逊有EC2容器服务,它是亚马逊用于运行Docker容器的解决方案.不过我觉得EC2容器服务不怎么好用,所以现在我要在AWS上测试Rancher和Kubernetes. Kubernetes是一个用以自动化部署.弹性伸缩以及管理容器化应用程序的开源系统.Rancher是一个可用于企业内部的完整的容器管理和运行平台,它提供企业级的访问控制和容器编排. Rancher环境部署 第一步,我会按默认的向导创建一个新的虚拟私有云,这个虚拟私有云是为Rancher准备的.接下来的事情就是创建一个

OTC与AWS对比之EC2之一

EC2(Elastic Compute Cloud)作为云计算最基础的服务没有之一,在当前云计算使用中有着至关重要的作用.AWS收入的中的EC2占的比重最大. EC2和S3是AWS最早发布的服务,经过了这么多年的发展,服务种类已经非常多了.有些服务也过期下线了.因为笔者接触云服务时间也不是太长,有些历史就不说了,大家感兴趣可以自己搜索.下面我就对EC2现有的服务进行一个详细分析 实例 具体实例类型大家提供都比较多,下面将AWS和OTC提供的实例类型做一个大概比较供参考 1.通用型 实例类型 vC

在AWS上配置基本的VPC

AWS上VPC基本配置首先打开WEB控制页面,我们点击--服务--VPC 进入VPC控制面板,点击--启动VPC向导 可以看到有两个选择一个是带单个公有子网的VPC,另一个是带有公有和私有子网的VPC如果选择带有单个子网的VPC,则在VPC内只创建一个子网,并且这个子网是公有子网,可以和Internet直接互访,所有放在公有子网上的资源都可以直接访问互联网.如果选择带有公网和私有子网的VPC,则实际中创建了两个子网,一个公有子网一个私有子网,公有子网可以和Internet直接互联,原则上私有子网

在阿里云、微软Windows Azure、亚马逊AWS 上使用Nginx配置http正向代理服务器

作为一个完全的Linux和Nginx双料白痴,我觉得有必要把这几天的折腾整理一下,以备以后查看. 首先我接到的是5台安装好Linux的云主机,两台阿里云,两台Azure和一台AWS.(包括云主机IP,主机名,用户名和密码) 我要做的事情: 第一步:登录云主机. 网上查很多人推荐使用Putty,这里我们老大推荐我是使用X Manager Enterprise 4. 安装好以后打开 运行xshell,建立一个新连接.点击菜单栏File中的"New",打开新建会话窗口,在窗口右侧"

树莓派学习笔记——定时向yeelink上传树莓派CPU温度

0 前言 本文通过python文件IO操作获得树莓派CPU温度信息,通过python request库周期性向yeelink平台上传温度,修改rc.local脚本使得该python脚本在开机时便在后台运行,向平台每5分钟上报一次温度信息. 网上查阅了很多关于linux开机启动的博文,尝试了几遍居然发现方法都无法实现开机启动效果.我想可能是操作系统或开发环境的微小差异产生的,如果发现博文中的内容存在问题,请及时留言,我查证之后定当修改. [相关博文] [树莓派学习笔记--获取树莓派CPU温度] [