Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスでユーザーデータを変更したり、ユーザーデータスクリプトを実行したりすることができません。また、ユーザーデータログを確認したいのですが、どこにあるのかがわかりません。
解決策
ユーザーデータを変更または設定したが、インスタンスの起動時に実行されない。または、ユーザーデータを設定することができない
ユーザーデータを扱うときは、次の基準に従ってください。
- ユーザーデータは Base64 エンコードする必要があります。
- Base64 エンコードする前、ユーザーデータは、Raw 形式の 16 KB に制限されています。
- ユーザーデータを取得するときは、Base64 デコードする必要があります。インスタンスメタデータまたは Amazon EC2 コンソールを使用して取得したデータは、自動的にデコードされます。
- インスタンスを停止してからユーザーデータを変更すると、インスタンスを起動しても、更新されたユーザーデータが実行されません。
- ユーザーデータスクリプトには、特別な構文が必要です。スクリプト構文の詳細と例については、「ユーザーデータスクリプト」を参照してください。
- ローカルのテスト環境でスクリプトを実行して、構文を検証します。
- EC2 インスタンスは 169.254.169.254 のメタデータサービスに接続する必要があります。
- Sysprep を使用しないカスタム Windows イメージを使用すると、永続ルートが親インスタンスのデフォルトゲートウェイを指す場合があります。詳細については、「Amazon EC2 Windows インスタンスが「メタデータサービスの待機中」(Waiting for the metadata service) エラーを生成するのはなぜですか?」を参照してください。
デフォルトでは、EC2 インスタンスを再起動または起動してもユーザーデータは実行されない
EC2 インスタンスを最初に起動するとき、ユーザーデータはデフォルトで 1 回だけ実行されます。インスタンスを再起動または起動するたびにユーザーデータを実行するようにインスタンスを設定できます。
詳細については、「インスタンスを再起動または起動するときに、既存の EC2 Windows インスタンスでコマンドを実行する方法を教えてください。」を参照してください。
ユーザーデータログが見つからない
EC2Launch、EC2Launch v2、および EC2Config のログファイルには、標準出力と標準エラーストリーム出力が含まれています。ログファイルは、次の場所にあります。
- EC2Launch v2: C:\ProgramData\Amazon\EC2Launch\log\agent.log
- EC2Launch: C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
- EC2Config: C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
注: デフォルトでは、C:\ProgramData は隠しフォルダです。
関連情報
起動時に新しい EC2 Windows インスタンスでコマンドを実行する方法を教えてください。
Sysprep (システム準備) の概要 (マイクロソフト Web サイト)