インスタンスを再起動または起動するときに、既存の EC2 Windows インスタンスでコマンドを実行する方法を教えてください。

最終更新日: 2019 年 10 月 18 日

インスタンスを再起動または起動するときに、既存の Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスでカスタムスクリプトを実行したいです。どうすればよいですか? 

簡単な説明

インスタンスを再起動または起動した後にスクリプトを実行するには、スクリプトをユーザーデータに追加します。ユーザーデータは EC2Config (Windows Server 2012 R2 以前) または EC2Launch (Windows Server 2016 以降) によって処理されます。

解決方法

スクリプトをユーザーデータに追加するときは、特別なタグで囲む必要があります。このタグで、コマンドがコマンドプロンプトウィンドウで実行されるか、Windows PowerShell で実行されるかが決まります。詳細については、「Windows インスタンスでの起動時のコマンドの実行」をご参照ください。

インスタンスが実行中の場合、ユーザーデータを追加または変更することはできませんが、表示することはできます。ユーザーデータを追加または変更するには、インスタンスが停止状態である必要があります。インスタンスの再起動時または起動時に、ユーザーデータスクリプトは自動的に実行されません。次回、またはインスタンスを再起動または起動するたびに、ユーザーデータの実行を有効にすることができます。

警告: インスタンスを停止する前に、以下の点に注意してください。

1.    EC2 Windows インスタンスに接続します

2.    Windows Server 2016 以降の場合、Windows PowerShell コマンドウィンドウを開き、次のコマンドを実行します。

C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 –Schedule

Windows Server 2012 R2 以前の場合、C:\Program Files\Amazon\Ec2ConfigService\Ec2ConfigServiceSetting.exe を開きます。

次に、[User Data] で [Enable UserData execution for next service start] をクリックします。

3.    Amazon EC2 コンソールでインスタンスを停止します。

4.    インスタンスを選択します。[Actions] で [Instance Settings]、[View/Change User Data] の順にクリックします。

5.    ユーザーデータを追加または更新し、 [Save] をクリックします。
: インスタンスを再起動または再開するたびにユーザーデータスクリプトを実行するには、以下を追加してください。

<persist>true</persist>

6.    インスタンスを起動します。ユーザーデータスクリプトは、インスタンス起動プロセスの一部として実行されます。

追加のトラブルシューティングを行うために、EC2Launch と EC2Config ログファイルには、標準出力と標準エラーストリームからの出力が含まれます。ログファイルは次のように配置されます。

  • EC2Launch: C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
  • EC2Config: C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2Config.log