虽然我已经找到了大量关于如何使用用户数据脚本(ala Eric Hammond)创建Amazon EC2 AMI的新实例的文档,但我还没有找到启动已存在的方法的方法,但目前已停止,Amazon EC2实例在重新启动时使用用户指定的脚本。
我有许多用于测试和灾难恢复的Amazon EC2 Ubuntu实例。我希望能够启动它并拥有它,例如,根据需要自动获取和恢复与我们的暂存或生产环境相对应的备份。我宁愿不必维护两个单独的实例,每个实例都有自己的弹性IP。
有没有办法从Amazon ec2tools的命令行执行此操作,类似于使用ec2-run-instances命令可以完成的方式?基本上我希望能够传递一个以root身份运行的脚本,就像从rc.local或类似地方调用它一样。
答案 0 :(得分:2)
您可以在API Tools的帮助下完成。检查--user-data
属性的ec2-modify-instance-attribute命令。
此外,AWS Console允许您在已停止的实例上执行相同的操作:
或者,您始终可以通过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)
可悲的是,答案似乎是目前无法按照我的要求行事。