创建一台55分钟后会自动终止的EC2实例
来源:互联网 发布:什么编程语言最好学 编辑:程序博客网 时间:2024/05/01 11:30
有时在做技术调研时,会短时间用一下EC2机器。为了避免忘记关闭导致的费用浪费,希望能让EC2能在一段时间后自动终止。
本EC2实例所属region和id可以通过访问本机的metadata信息(http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)获得。
可以编写55分钟(3300秒)后,自动关机的脚本如下
运行此脚本的IAM用户,需要有终止实例的权限,于是创建一个能终止EC2服务器的IAM角色。
由于没有现成的合适权限,需要自定义角色权限为
创建EC2的“步骤3”时,
在“IAM 角色”处,选择刚才生成的角色
点开最下方的“高级详细信息”,填入
启动实例。
其中,base64编码的部分就是前面提到的关机脚本。
关键点:
IAM角色,user-data,CLI,metadata
方案:
本机已运行时间能根据 /proc/uptime 获得。本EC2实例所属region和id可以通过访问本机的metadata信息(http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)获得。
可以编写55分钟(3300秒)后,自动关机的脚本如下
#!/bin/shUPTIME=`cat /proc/uptime | awk -F. '{print $1}'`REGION=`curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | grep region | awk '{print $3}' | tr -d "\""`INSTANCEID=`curl -s http://169.254.169.254/latest/meta-data/instance-id`if [ $UPTIME -gt 3300 ] ; then aws ec2 terminate-instances --region $REGION --instance-ids $INSTANCEIDfi
运行此脚本的IAM用户,需要有终止实例的权限,于是创建一个能终止EC2服务器的IAM角色。
由于没有现成的合适权限,需要自定义角色权限为
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:TerminateInstances", "Resource": "*" } ]}
创建EC2的“步骤3”时,
在“IAM 角色”处,选择刚才生成的角色
点开最下方的“高级详细信息”,填入
#!/bin/shecho "IyEvYmluL3NoClVQVElNRT1gY2F0IC9wcm9jL3VwdGltZSB8IGF3ayAtRi4gJ3twcmludCAkMX0nYApSRUdJT049YGN1cmwgLXMgaHR0cDovLzE2OS4yNTQuMTY5LjI1NC9sYXRlc3QvZHluYW1pYy9pbnN0YW5jZS1pZGVudGl0eS9kb2N1bWVudCB8IGdyZXAgcmVnaW9uIHwgYXdrICd7cHJpbnQgJDN9JyB8IHRyIC1kICJcIiJgCklOU1RBTkNFSUQ9YGN1cmwgLXMgaHR0cDovLzE2OS4yNTQuMTY5LjI1NC9sYXRlc3QvbWV0YS1kYXRhL2luc3RhbmNlLWlkYAppZiBbICRVUFRJTUUgLWd0IDMzMDAgXSA7IHRoZW4KICBhd3MgZWMyIHRlcm1pbmF0ZS1pbnN0YW5jZXMgLS1yZWdpb24gJFJFR0lPTiAtLWluc3RhbmNlLWlkcyAkSU5TVEFOQ0VJRApmaQ==" | base64 -d > /root/terminate.shchmod +x /root/terminate.shecho "*/1 * * * * /root/terminate.sh" | crontab
启动实例。
其中,base64编码的部分就是前面提到的关机脚本。
如果使用echo来生成脚本,会涉及到引号的转义,比较复杂。
用户数据里可以填入脚本来初始化实例,例如设置时区,安装必要的模块。
具体关于用户数据,可查看http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/user-data.html
0 0
- 创建一台55分钟后会自动终止的EC2实例
- Oracle 10.1实例启动后一分钟后自动挂掉的处理方法
- 创建免费的EC2 Micro Instance实例(图解)(二)
- 创建免费的EC2 Micro Instance实例(图解)
- 集成FUSE的程序在后台运行后,创建的多个线程被自动杀死!
- 一台电脑的Android NDK 工程包,导入另一台电脑后,任意修改一处C++代码就会产生大面积报错的解决方案
- AWS-EC2创建centOS6.7实例
- 从0开始,创建 AWS EC2 实例
- 一分钟会AP
- 一分钟在Linux环境下创建一台FTP服务器(含账户创建)
- 一台Linux上创建多个JETTY实例
- TeamViewer 11 激活许可证 出现你的会话将在5分钟后终止 最佳解决办法
- 创建EC2
- 线程(一)创建和终止
- 线程的创建、终止
- 关于EC2实例类型的选择
- nobone-sync ......js后watched一次后自动终止的原因
- 将日志文件从EC2实例自动备份到S3
- Servlet(及tomcat)之一
- EF 连接mysql Authentication to host '' for user 'root' using method 'mysql_n(远程登录mysql失败)
- HDU 1171 Big Event in HDU(多重背包)
- Button点击事件实现页面跳转的两种方法
- Java面试宝典:42个面试题总结!
- 创建一台55分钟后会自动终止的EC2实例
- 图像处理概述
- Java内存泄露的理解与解决
- source在线调试sass自动保存在服务器上
- 20150802厦门大学华为校园提前批招聘机试体验题三:Word Maze(单词迷宫)
- 指针操作一维数组
- 如何用Redis做LRU-Cache
- URAL 1900. Brainwashing Device(dp+输出路径)
- JS 基础 用法