新しい Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動するときに、カスタムスクリプトを実行したいと考えています。
簡単な説明
Amazon EC2 でインスタンスを起動する場合、以下のオプションがあります。
- ユーザーデータをインスタンスに渡して、一般的な自動設定タスクを実行する
- インスタンスの起動後にスクリプトを実行する
インスタンスの起動時に開始するスクリプトを実行するには、スクリプトをユーザーデータに追加します。ユーザーデータは EC2Config (Windows Server 2012 R2 以前)、EC2Launch または EC2Launch V2 (Windows Server 2016 以降) によって処理されます。
解決策
スクリプトをユーザーデータに追加するときは、特別なタグで囲む必要があります。このタグで、コマンドプロンプトウィンドウで実行するか、Windows PowerShell を使用するかを決定します。詳細については、「Windows インスタンスでの起動時のコマンドの実行」を参照してください。
起動時にカスタムスクリプトを実行するには、新しい EC2 Windows インスタンスを起動する際、設定時にユーザーデータを指定します。標準構成では、Amazon マシンイメージ (AMI) を有効化して、初回起動時にユーザーデータを実行できます。
起動時にユーザーデータを実行するカスタムスクリプトを作成する
インスタンスの次回再起動時または再開時にユーザーデータスクリプトを実行するかどうかを指定できます。または、インスタンスが再起動または再開するたびにユーザーデータスクリプトが実行されるように指定できます。次の手順に従ってカスタムスクリプトを作成します。
-
Amazon EC2 コンソールを開き、ナビゲーションペインから [AMI] を選択します。
-
AMI を選択し、[起動] をクリックします。
-
インスタンスタイプを選択します。次に、[次へ: インスタンスの詳細の設定] をクリックします。
-
[高度な詳細] の [ユーザーデータ] テキストボックスにカスタムスクリプトを入力します。
カスタムスクリプトは、バッチスクリプト、Windows PowerShell スクリプト、YAML 構成スクリプト、および Base64 エンコーディングとして柔軟に実行できます。スクリプトを実行できるようにするには、ユーザーデータに追加するときにスクリプトを特定のタグで囲みます。たとえば、powershell タグを使用して Windows PowerShell スクリプトを指定できます。スクリプトタイプとサンプルスクリプト構文の詳細については、「ユーザーデータスクリプト」を参照してください。
**注:**ユーザーデータは、初回起動後に自動的に実行されません。スクリプトに persist タグが含まれている場合、起動時はその後の再起動または再開時にユーザーデータを実行します。
-
インスタンスを再起動または再開するたびにユーザーデータスクリプトを実行するには、以下のコマンドを追加します。
<persist>true</persist>
-
起動ウィザードを完了してインスタンスを起動します。
**注:**既存の Amazon EC2 Windows インスタンスでカスタムスクリプトを実行するオプションがあります。詳細については、「インスタンスを再起動または起動するときに、既存の EC2 Windows インスタンスでコマンドを実行する方法を教えてください。」を参照してください。
ログを確認する
追加のトラブルシューティングを行うために、EC2Launch、EC2Launch V2、EC2Config のログファイルには、標準出力と標準エラーストリームからの出力が含まれます。ログファイルは次の場所にあります。
- EC2Launch: C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
- EC2Launch V2: C:\ProgramData\Amazon\EC2Launch\log\agent.log
- EC2Config: C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2Config.log