Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスでユーザーデータを変更したり、ユーザーデータスクリプトを実行したりすることができません。また、ユーザーデータログを確認したいのですが、ログの場所が分かりません。
解決策
ユーザーデータがインスタント起動時に実行されなかったり、ユーザーデータを設定できなかったりする
ユーザーデータを扱う際は、次のベストプラクティスを実施します。
- ユーザーデータを base64 形式にエンコードします。
- ユーザーデータを取得するときは、base64 を使用してデータをデコードする必要があります。インスタンスメタデータまたは Amazon EC2 コンソールを使用して取得したデータは、自動的にデコードされます。
- インスタンスを停止してからユーザーデータを変更すると、インスタンスの起動時には、更新したユーザーデータが実行されません。この問題を解決する方法については、次の「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: 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
注: デフォルトでは、C:\ProgramData は隠しフォルダです。
関連情報
起動時に新しい EC2 Windows インスタンスでコマンドを実行する方法を教えてください。
Sysprep (システム準備) の概要 (マイクロソフト Web サイト)