7

虽然我找到了大量关于如何使用用户数据脚本 ( ala Eric Hammond ) 创建 Amazon EC2 AMI 的新实例的文档,但我还没有看到一种方法来启动一个已经存在但目前已停止的 Amazon重启时带有用户指定脚本的 EC2 实例。

我有许多用于测试和灾难恢复的 Amazon EC2 Ubuntu 实例。我希望能够启动一个并让它,例如,根据需要自动获取和恢复与我们的登台或生产环境相对应的备份。我宁愿不必维护两个独立的实例,每个实例都有自己的弹性 IP。

有没有什么方法可以通过 Amazon ec2tools 的命令行执行此操作,类似于使用 ec2-run-instances 命令的方式?基本上,我希望能够传递一个以 root 身份运行的脚本,就好像它是从 rc.local 或类似文件中调用的一样。

4

4 回答 4

2
  1. 您可以在 API 工具的帮助下做到这一点。检查ec2-modify-instance-attribute命令的--user-data属性。

  2. 此外,AWS 控制台允许您在停止的实例上执行相同的操作: 在此处输入图像描述

  3. 或者,您始终可以通过 ssh 作为最后一个参数运行命令或脚本:

    ssh [user@]hostname [command]

于 2012-12-11T01:54:06.170 回答
1

您可以考虑使用AWS 命令​​行界面停止/重新启动 Amazon EC2 实例的功能,如此所述。

没有弹性负载均衡器

aws ec2 stop-instances --instance-ids i-1a2b3c4d
aws ec2 start-instances --instance-ids i-1a2b3c4d

使用 Elastic Load Balancer 而不使用 Autoscaling

aws elb deregister-instances-from-load-balancer --load-balancer-name elb-name --instances i-12ab34cd
aws elb register-instances-from-load-balancer --load-balancer-name elb-name --instances i-12ab34cd

具有自动缩放功能的弹性负载均衡器

aws autoscaling update-auto-scaling-group --auto-scaling-group-name "asg-name"  --launch-configuration-name "launch-config-name" --min-size 0 --max-size 0
aws autoscaling update-auto-scaling-group --auto-scaling-group-name "asg-name"  --launch-configuration-name "launch-config-name" --min-size 1 --max-size 1
于 2016-07-04T13:00:00.497 回答
0

您是否查看过云形成模板?http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/Welcome.html

我想用这个在实例重启时运行你的脚本会很简单。我这样做是为了在 AWS 上设置 sharepoint 服务器场并调查 CF 脚本。http://aws.amazon.com/articles/9982940049271604

我没有测试过这个特定的场景,但我相信这应该提供所需的支持

于 2012-12-11T00:44:12.367 回答
0

可悲的是,答案似乎是目前不可能按照我的要求去做。

于 2013-09-26T17:17:27.297 回答