私はAmazonEC2を使用しており、EBSでバックアップされたWindowsAMIがいくつかあります。 EBSスナップショットから新しいインスタンスを起動すると、EC2ConfigサービスがWindowsマシンを準備します。インスタンスのコンソール出力を確認できるため、EC2Configがいつ完了するかがわかります。「Windowsの準備ができました」と表示されたら、問題がないことがわかります。
私が探しているのは、オペレーティングシステム自体の中から「Windowsは準備ができている」ことを伝える方法です。 OS内からアクセスできるメタデータURLでわかると思いますが、適切な値が見つかりません。
http://169.254.169.254/latest/meta-data/
私の目標は、「Windowsの準備ができたら」構成スクリプトを実行することです。一部の構成タスクでは、起動する前にマシンが完全に構成されていることを確認する必要があります。特に、EC2Configがコンピューターの名前を変更して再起動する場合はそうです。 EC2ツールまたはC#を使用して何かを書くことはできますが、AMIでAWSキーを使用する必要があります(これはやりたくないです)。理想的には、マシン自体の何かを調べて、いつ構成を開始できるかを確認したいと思います。たとえば、EventLogエントリ、テキストファイルの監視、メタデータURLの確認などです。
副次的な質問:バンドル/アンバンドルプロセスがEBSマシンに対して何を行うかについての良い記事を使用できます。
EC2Configは、最初の起動時にホストの名前を変更するようにデフォルトで構成されています。 Windowsでホストの名前を変更するには再起動が必要なため、すべてのインスタンスは最初の起動後に1回再起動します。インスタンスに内部DNSを使用しない場合は、ホストの名前変更を無効にできます。詳細はこちら:
Windows構成サービス:http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html
EC2Configサービスには、インスタンス内に独自のログファイルもあります。
C:\ Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
また、このファイルには、Amazonコンソールの出力に表示されるEC2Configサービス関連の詳細が含まれている必要があります。これが私のインスタンスの1つからのスニペットです:
=====新しいスレッドでEc2RebootInstanceを開始する=======
Ec2InitializeDrives:見つかったディスク:\。\ PHYSICALDRIVE0
デバイス名の変更について現在のボリュームを確認する
C:ボリューム名でマウントされています
コンソールに書き込むためにCOMポートハンドルを開く
Ec2RebootInstance:すべてのスレッドが終了するのを待っています
Ec2InitializeDrives:初期化が完了しました。プラグインが終了しています...
Ec2RebootInstance:スレッドが再起動を要求したかどうかを確認しています
Ec2RebootInstance:Windowsを使用する準備ができました
送信イベントウィンドウは誰でも使用できるようになっています
Ec2RebootInstance:再起動要求を監視しています。