用于自动启动和停止 AWS EC2 实例的脚本

Posted

技术标签:

【中文标题】用于自动启动和停止 AWS EC2 实例的脚本【英文标题】:Script for automation start and stop AWS EC2 instance 【发布时间】:2016-04-04 03:22:23 【问题描述】:

我已经在 4 个节点的 Amazon EC2 实例上安装了 Cloudera 集群。 对于某些时间,例如周一至周五晚上、周六和周日,我不需要使用这 4 个节点的 Amazon EC2 实例以获得更有效的成本。

如何使用脚本自动启动和停止那些 Amazon EC2 实例? 谁能给我脚本的例子吗?

谢谢,

【问题讨论】:

【参考方案1】:

您可以创建脚本来停止和启动实例,或者通过 linux 中的 crontab 或 windows 中的 schedule-task 直接运行命令

例如,如果您想在晚上 11 点停止实例 在 crontab 中添加以下行(您将通过 crontab -e 获得)

0 23 * * * sh stop.sh

格式是 m h dom mon dow 命令

用于启动实例aws ec2 start-instances --instance-ids i-1a1234

停止实例aws ec2 stop-instances --instance-ids i-1a1234

【讨论】:

你是说.. 0 2 * * * lightstreamasia ec2-start-instances i-0bbd2c85 0 11 * * * lightstreamasia ec2-stop-instances i-0bbd2c85【参考方案2】:

我编写了一个小的 shell 脚本来通过终端自动启动和登录我的 aws 实例。你可以使用它

#!/bin/bash
aws ec2 start-instances --instance-ids i-070107834ab273992


public_ip=aws ec2 describe-instances --instance-ids i-070107834ab2 \
        --query 'Reservations[*].Instances[*].PublicDnsName' --output text


AWS_KEY="/home/debian/cs605 data management/assignment6/mumbai instance keys"

ssh -v -i "$AWS_KEY"/mumbai-instance-1.pem\
        ec2-user@$public_ip

~ ~

【讨论】:

以上是关于用于自动启动和停止 AWS EC2 实例的脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在晚上自动缩减 AWS EC2 实例(停止并更改为 t2.small)并在早上自动扩展(停止并转到 t2.large)?

带有python脚本的ec2instance自动化[重复]

AWS EC2 启动/停止实例的 IAM 策略

使用 Lambda 函数覆盖 AWS Auto Scaling 策略

自动关闭和启动 Amazon EC2 实例

Amazon AWS负载均衡器EC2实例解决ip范围