使用用户指定的脚本重新启动现有Amazon EC2实例?

时间:2012-12-10 20:11:55

标签: ubuntu amazon-ec2 amazon

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

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

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

4 个答案:

答案 0 :(得分:2)

  1. 您可以在API Tools的帮助下完成。检查--user-data属性的ec2-modify-instance-attribute命令。

  2. 此外,AWS Console允许您在已停止的实例上执行相同的操作: enter image description here

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

    ssh [user@]hostname [command]

答案 1 :(得分:1)

您可以考虑使用{em> AWS Command Line Interface 所述的here停止/重启Amazon EC2实例的功能。

没有Elastic Load Balancer

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

使用无自动缩放的弹性负载均衡器

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

答案 2 :(得分:0)

你有没有看过云形成模板? http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/Welcome.html

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

我没有测试过这种特殊情况,但我相信这应该提供所需的支持

答案 3 :(得分:0)

可悲的是,答案似乎是目前无法按照我的要求行事。