2013-08-27 301 views
1

我有一个AWS EC2 Windows(2008 R2实例),我想从本地计算机开始停止使用命令/脚本,并按照我的用法进行计划。 我还希望在EC2实例上运行我的两个程序以在实例启动时启动。这些程序当前使用实例中存在的bat文件开始。如何启动AWS EC2上的实例启动程序

我做以下,直至现在一样的:

1 - 我在AWS IAM创建的AWS的用户,并使用AUTH_ID和关键用户使用EC2 API和命令行工具。

2-启动和停止实例我正在使用EC2 Util的命令行实用程序。

start ->ec2-start-instances i-instanceID 

stop ->ec2-stop-instances i-instanceID 

3要安排它,我已经添加到我的Windows调度程序。

4-在AWS管理控制台中添加实例的用户数据。我的用户数据是这样的:

<script> 
C:\Services\my_application.lnk 
</script> 

5我可以看到用户的数据出现在位于C我的EC2实例:\ PROGRAMFILES \亚马逊\ Ec2ConfigServer \脚本\ UserScript

6- C: \ Program Files \ Amazon \ Ec2ConfigService \ Settings \ confi.xml将Ec2SetPassword和Ec2HandleUserData的值更改为启用并添加了true。

我面临以下问题:

1的用户数据的脚本不执行每个实例启动时。我无法弄清楚为什么。 2-在重新启动实例时,Ec2ConfigService \ Settings \ confi.xml中所做的更改将恢复为默认值。

我觉得这是常见的使用案例,并希望了解自动化EC2操作所采用的最佳实践和方法。 我还需要帮助启动我的实例上的程序 - 我在哪里出错或失踪,还有什么需要做等等?

回答

2

userdata是只有第一次执行实例创建。这是设计。

你有两个选择 - 所有这些都用你的用户数据脚本

  1. 复制my_application.lnk到启动文件夹
  2. 注册在注册表中的应用程序“运行”开始键( http://blogs.msdn.com/b/powershell/archive/2006/04/25/how-to-access-or-modify-startup-items-in-the-window-registry.aspx
  3. 与任务调度注册它来配置它在启动时执行(http://technet.microsoft.com/en-us/library/bb490996.aspx
+0

我尝试了所有的3个选项,但问题是,my_ap plication.lnk只有在远程桌面和登录后才会执行... – Vineeth

+0

选项3 - 使用任务计划注册它。确保您已注册的用户已登录为批处理作业权限。并且不要使用lnk - 使用实际的exe –

+1

选项2 - 将此链接指向正确的键http://www.akadia.com/services/windows_registry.html –