1

AWS EC2 Windows (2008 R2 インスタンス) があり、ローカル マシンからコマンド/スクリプトを使用して開始/停止し、使用状況に応じてスケジュールします。また、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:\ProgramFiles\Amazon\Ec2ConfigServer\Scripts\UserScript の EC2 インスタンスに存在することがわかります

6- C:\Program Files\Amazon\Ec2ConfigService\Settings\confi.xml で、Ec2SetPassword と Ec2HandleUserData の値が有効に変更され、true が追加されました。

私は次の問題に直面しています:

1- ユーザー データ スクリプトは、インスタンスが開始されるたびに実行されるわけではありません。理由がわかりません。2- Ec2ConfigService\Settings\confi.xml で行われた変更は、インスタンスの再起動時にデフォルト値に戻されます。

これは一般的な使用例だと思います。EC2 操作を自動化するためのベスト プラクティスとアプローチを知りたいです。また、自分のインスタンスでプログラムを開始する際にもサポートが必要です。どこで問題が発生したり、行方不明になったり、他に何をする必要があるのでしょうか?

4

1 に答える 1

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 ) 。
于 2013-08-27T11:47:14.003 に答える