EC2Launch v2 エージェントの問題をトラブルシューティングする
このセクションでは、EC2Launch v2 での一般的なトラブルシューティングシナリオ、Windows イベントログの表示に関する情報、およびコンソールログの出力とメッセージについて説明します。
トラブルシューティングのトピック
一般的なトラブルシューティングのシナリオ
このセクションでは、一般的なトラブルシューティングのシナリオと解決手順を示します。
シナリオ
- サービスで壁紙を設定できない
- サービスでユーザーデータを実行できない
- サービスはタスクを 1 回だけ実行する
- サービスでタスクを実行できない
- サービスはユーザーデータを複数回実行する
- EC2Launch v2 への移行後、EC2Launch v1 のスケジュールされたタスクが実行されない
- 空ではない EBS ボリュームがサービスによって初期化される
- setWallpaper タスクは有効になっていないものの、再起動時にウォールペーパーがリセットされる
- サービスは実行中ステータスでスタックしています
- 無効なagent-config.ymlは EC2Launch v2 設定ダイアログボックスが開くことを防止します
- task:executeScript should be unique and only invoked once
サービスで壁紙を設定できない
解決方法
-
%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\setwallpaper.lnk
が存在することを確認します。 -
%ProgramData%\Amazon\EC2Launch\log\agent.log
をチェックし、エラーが発生したかどうかを確認します。
サービスでユーザーデータを実行できない
考えられる原因: ユーザーデータを実行する前にサービスが失敗した可能性があります。
解決方法
-
%ProgramData%\Amazon\EC2Launch\state\previous-state.json
をチェックします。 -
boot
、network
、preReady
、postReadyLocalData
のすべてが成功とマークされているかどうかを確認します。 -
いずれかのステージが失敗した場合は、特定のエラーの
%ProgramData%\Amazon\EC2Launch\log\agent.log
を確認します。
サービスはタスクを 1 回だけ実行する
解決方法
-
タスクの頻度を確認します。
-
サービスが Sysprep 後に実行済みであり、タスクの頻度が
once
に設定されている場合、タスクは再度実行されません。 -
EC2Launch v2 が実行されるたびにタスクを実行する場合は、タスクの頻度を
always
に設定します。
サービスでタスクを実行できない
解決方法
-
%ProgramData%\Amazon\EC2Launch\log\agent.log
の最新のエントリを確認します。 -
エラーが発生しなかった場合は、
"%ProgramFiles%\Amazon\EC2Launch\EC2Launch.exe" run
からサービスを手動で実行し、タスクが成功するかどうかを確認します。
サービスはユーザーデータを複数回実行する
解決方法
ユーザーデータは、EC2Launch v1 と EC2Launch v2 では異なる方法で処理されます。persist
が true
に設定されている場合、EC2Launch v1 はユーザーデータをインスタンスでスケジュールされたタスクとして実行します。persist
が false
に設定されている場合、タスクが再起動して終了したり、実行中に中断された場合でも、タスクはスケジュールされません。
EC2Launch v2 は、ユーザーデータをエージェントタスクとして実行し、実行状態を追跡します。ユーザーデータがコンピュータの再起動を発行した場合、または実行中にユーザーデータが中断された場合、実行状態は pending
として持続し、ユーザーデータは次回のインスタンスの起動時に再び実行されます。ユーザーデータスクリプトが複数回実行されないようにするには、スクリプトをべき等にします。
次のべき等スクリプト例では、コンピュータ名を設定し、ドメインに参加します。
<powershell> $name = $env:computername if ($name -ne $desiredName) { Rename-Computer -NewName $desiredName } $domain = Get-ADDomain if ($domain -ne $desiredDomain) { Add-Computer -DomainName $desiredDomain } $telnet = Get-WindowsFeature -Name Telnet-Client if (-not $telnet.Installed) { Install-WindowsFeature -Name "Telnet-Client" } </powershell> <persist>false</persist>
EC2Launch v2 への移行後、EC2Launch v1 のスケジュールされたタスクが実行されない
解決方法
移行ツールは、EC2Launch v1 スクリプトにリンクされているスケジュールされたタスクを検出しないため、EC2Launch v2 のタスクは自動的にセットアップされません。タスクを設定するには、agent-config.yml ファイルを編集するか、EC2Launch v2 設定ダイアログボックスを使用します。例えば、インスタンスのタスクが InitializeDisks.ps1
を実行するようにスケジュールされている場合は、移行ツールを実行した後、EC2Launch v2 の設定ダイアログボックスで、初期化するボリュームを指定する必要があります。EC2Launch v2 設定ダイアログボックスを使用して設定を変更する の手順については、ステップ 6 を参照してください。
空ではない EBS ボリュームがサービスによって初期化される
解決方法
ボリュームが初期化される前に、EC2Launch v2 は、そのボリュームにデータがないこと確認します。ボリュームが空でない場合、初期化はスキップされます。空でないことが検出されたボリュームは初期化されません。ボリュームの最初の 4 KiB が空の場合、またはボリュームに Windows を認識できるドライブレイアウト
setWallpaper
タスクは有効になっていないものの、再起動時にウォールペーパーがリセットされる
setWallpaper
タスクは、既存の (Default User
を除く) 各ユーザーのスタートアップフォルダ内に、ショートカットファイル setwallpaper.lnk
を作成します。このショートカットファイルは、ユーザーがインスタンスの起動後に初めてログインしたときに実行されます。インスタンス属性を表示するカスタム壁紙があるインスタンスが設定されます。この setWallpaper
タスクを削除しても、このショートカットファイルは削除されません。このファイルは手動で削除するか、スクリプトを使用して削除する必要があります。
ショートカットパスは次のとおりです。
$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk
解決方法
このファイルを手動で削除するか、スクリプトを使用して削除します。
ショートカットファイルを削除する PowerShell スクリプトの例
foreach ($userDir in (Get-ChildItem "C:\Users" -Force -Directory).FullName) { $startupPath = Join-Path $userDir -ChildPath "AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" if (Test-Path $startupPath) { $wallpaperSetupPath = Join-Path $startupPath -ChildPath "setwallpaper.lnk" if (Test-Path $wallpaperSetupPath) { Remove-Item $wallpaperSetupPath -Force -Confirm:$false } } }
サービスは実行中ステータスでスタックしています
説明
EC2Launch v2 は、次のようなログ (agent.log
) でブロックされます。
2022-02-24 08:08:58 Info: ***************************************************************************************** 2022-02-24 08:08:58 Info: EC2Launch Service starting 2022-02-24 08:08:58 Info: Windows event custom log exists: Amazon EC2Launch 2022-02-24 08:08:58 Info: ACPI SPCR table not supported. Bailing Out 2022-02-24 08:08:58 Info: Serial port is in use. Waiting for Serial Port... 2022-02-24 08:09:00 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:02 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:04 Info: ACPI SPCR table not supported. Use default console port. 2022-02-24 08:09:06 Info: ACPI SPCR table not supported. Use default console port.
考えられる原因
SAC が有効化され、シリアルポートを使用しています。詳細については、「SAC を使用して Windows インスタンスをトラブルシューティングする」を参照してください。
解決方法
この問題を解決するには、以下の手順を実行します。
-
このシリアルポートを使用しているサービスを、無効にします。
-
サービスでこのシリアルポートを引き続き使用する場合は、起動エージェントタスクを実行するカスタムスクリプトを作成し、スケジュールされたタスクとして起動します。
無効なagent-config.yml
は EC2Launch v2 設定ダイアログボックスが開くことを防止します
説明
EC2Launch v2 設定は、ダイアログボックスを開く前に agent-config.yml
ファイルの解析を試みます。YAML 設定ファイルがサポートされているスキーマに準拠しない場合、ダイアログボックスに次のエラーが表示されます。
Unable to parse configuration file agent-config.yml. Review configuration file. Exiting application.
解決方法
-
設定ファイルが [supported schema] (サポートされているスキーマ) に準拠していることを検証します。
-
最初から始めたい場合は、デフォルトの設定ファイルを
agent-config.yml
にコピーします。「タスク設定セクション」に提供されている サンプル agent-config.yml を使用できます。 -
agent-config.yml
を削除して最初からやり直すこともできます。EC2Launch v2 設定は空の設定ファイルを生成します。
task:executeScript should be unique and only invoked
once
説明
同じステージでタスクを繰り返すことはできません。
解決方法
一部のタスクは、executeScript と executeProgram などの配列として入力する必要があります。スクリプトを配列として書き込む方法の一例については、executeScriptを参照してください。
Windows イベントログ
EC2Launch v2 は、サービスの開始、Windows の準備完了、さらにタスクの成否などの重要なイベントに関する Windows イベントログを発行します。イベント識別子は、特定のイベントを一意に識別します。各イベントには、ステージ、タスク、レベル情報、説明が含まれます。イベント識別子を使用して、特定のイベントのトリガーを設定できます。
イベント識別子は、イベントに関する情報を提供し、いくつかのイベントを一意に識別します。イベント ID の最下位桁は、イベントの重大度を示します。
イベント | 最下位桁 |
---|---|
Success
|
. . .0 |
Informational |
. . .1 |
Warning |
. . .2 |
Error |
. . .3 |
サービスの開始時または停止時に生成されるサービスに関するイベントには、1 桁のイベント識別子が含まれます。
イベント | 1 桁の識別子 |
---|---|
Success
|
0 |
Informational |
1 |
Warning |
2 |
Error |
3 |
EC2LaunchService.exe
イベントのイベントメッセージは、Service:
から始まります。EC2Launch.exe
イベントのイベントメッセージは、Service:
で始まるものではありません。
4 桁のイベント ID には、イベントのステージ、タスク、重大度に関する情報が含まれます。
イベント ID 形式
次の表に EC2Launch v2 でのイベント識別子の形式を示します。
3 | 2 1 | 0 |
---|---|---|
S |
T |
L |
表内の文字と数字は、次のイベントタイプと定義を表します。
イベントタイプ | 定義 |
---|---|
S (ステージ) |
0 - サービスレベルのメッセージ 1 - Boot 2 - Network 3 - PreReady 5 - Windows is Ready 6 - PostReady 7 - User Data |
T (タスク) |
対応する 2 つの値で表されるタスクは、ステージごとに異なります。イベントの詳細なリストを表示するには、「Windows イベントログのスキーマ」を参照してください。 |
L (イベントのレベル) |
0 - 成功 1 - 情報 2 - 警告 3 - エラー |
イベント ID の例
イベント ID の例を次に示します。
-
5000
- Windows の使用準備完了 -
3010
- PreReady ステージの Windows のアクティブ化タスクが成功しました -
6013
- PostReady ローカルデータステージの壁紙の設定タスクでエラーが発生しました
Windows イベントログのスキーマ
メッセージ ID/イベント ID | イベントメッセージ |
---|---|
. . .0
|
Success |
. . .1
|
Informational |
. . .2
|
Warning |
. . .3
|
Error |
x
|
EC2Launch service-level logs |
0
|
EC2Launch service exited successfully |
1
|
EC2Launch service informational logs |
2
|
EC2Launch service warning logs |
3 |
EC2Launch service error logs |
10
|
Replace state.json with
previous-state.json |
100 |
Serial Port |
200 |
Sysprep |
300 |
PrimaryNic |
400 |
Metadata |
x000
|
Stage (1 digit), Task (2 digits), Status (1
digit) |
1000
|
Boot |
1010
|
Boot - extend_root_partition |
2000 |
Network |
2010
|
Network - add_routes |
3000
|
PreReady |
3010
|
PreReady - activate_windows |
3020
|
PreReady - install_egpu_manager |
3030
|
PreReady - set_monitor_on |
3040
|
PreReady - set_hibernation |
3050
|
PreReady - set_admin_account |
3060
|
PreReady - set_dns_suffix |
3070
|
PreReady - set_wallpaper |
3080
|
PreReady - set_update_schedule |
3090
|
PreReady - output_log |
3100
|
PreReady - enable_open_ssh |
5000
|
Windows is Ready to use |
6000
|
PostReadyLocalData |
7000 |
PostReadyUserData |
6010/7010
|
PostReadyLocal/UserData - set_wallpaper |
6020/7020
|
PostReadyLocal/UserData -
set_update_schedule |
6030/7030
|
PostReadyLocal/UserData - set_hostname |
6040/7040
|
PostReadyLocal/UserData -
execute_program |
6050/7050
|
PostReadyLocal/UserData - execute_script |
6060/7060
|
PostReadyLocal/UserData - manage_package |
6070/7070
|
PostReadyLocal/UserData -
initialize_volume |
6080/7080
|
PostReadyLocal/UserData - write_file |
6090/7090
|
PostReadyLocal/UserData - start_ssm |
7100
|
PostReadyUserData - enable_open_ssh |
6110/7110
|
PostReadyLocal/UserData -
enable_jumbo_frames |
EC2Launch v2 コンソールログ出力
このセクションには、サンプルの EC2Launch v2 コンソールログ出力が含まれており、EC2Launch v2 コンソールログエラーメッセージのうち、問題のトラブルシューティングに役立つものを一覧表示しています。インスタンスコンソール出力とそのアクセス方法の詳細については、「インスタンスコンソール出力」を参照してください。
EC2Launch v2 コンソールログ出力
以下に示しているのは、サンプルの EC2Launch v2 コンソールログ出力です。
2023/11/30 20:18:53Z: Windows sysprep configuration complete. 2023/11/30 20:18:57Z: Message: Waiting for access to metadata... 2023/11/30 20:18:57Z: Message: Meta-data is now available. 2023/11/30 20:18:57Z: AMI Origin Version: 2023.11.15 2023/11/30 20:18:57Z: AMI Origin Name: Windows_Server-2022-English-Full-Base 2023/11/30 20:18:58Z: OS: Microsoft Windows NT 10.0.20348 2023/11/30 20:18:58Z: OsVersion: 10.0 2023/11/30 20:18:58Z: OsProductName: Windows Server 2022 Datacenter 2023/11/30 20:18:58Z: OsBuildLabEx: 20348.1.amd64fre.fe_release.210507-1500 2023/11/30 20:18:58Z: OsCurrentBuild: 20348 2023/11/30 20:18:58Z: OsReleaseId: 2009 2023/11/30 20:18:58Z: Language: en-US 2023/11/30 20:18:58Z: TimeZone: UTC 2023/11/30 20:18:58Z: Offset: UTC +0000 2023/11/30 20:18:58Z: Launch: EC2 Launch v2.0.1643 2023/11/30 20:18:58Z: AMI-ID: ami-1234567890abcdef1 2023/11/30 20:18:58Z: Instance-ID: i-1234567890abcdef0 2023/11/30 20:18:58Z: Instance Type: c5.large 2023/11/30 20:19:00Z: Driver: AWS NVMe Driver v1.5.0.33 2023/11/30 20:19:00Z: SubComponent: AWS NVMe Driver v1.5.0.33; EnableSCSIPersistentReservations: 0 2023/11/30 20:19:00Z: Driver: AWS PV Driver Package v8.4.3 2023/11/30 20:19:01Z: Driver: Amazon Elastic Network Adapter v2.6.0.0 2023/11/30 20:19:01Z: RDPCERTIFICATE-SUBJECTNAME: EC2AMAZ-SO1T009 2023/11/30 20:19:01Z: RDPCERTIFICATE-THUMBPRINT: 1234567890ABCDEF1234567890ABCDEF1234567890 2023/11/30 20:19:09Z: SSM: Amazon SSM Agent v3.2.1705.0 2023/11/30 20:19:13Z: Username: Administrator 2023/11/30 20:19:13Z: Password: <Password> 1234567890abcdef1EXAMPLEPASSWORD </Password> 2023/11/30 20:19:14Z: User data format: no_user_data 2023/11/30 20:19:14Z: EC2LaunchTelemetry: IsTelemetryEnabled=true 2023/11/30 20:19:14Z: EC2LaunchTelemetry: AgentOsArch=windows_amd64 2023/11/30 20:19:14Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true 2023/11/30 20:19:14Z: EC2LaunchTelemetry: AgentCommandErrorCode=0 2023/11/30 20:19:14Z: Message: Windows is Ready to use
EC2Launch v2 コンソールログメッセージ
以下に示しているのは、すべての EC2Launch v2 コンソールログメッセージのリストです。
Message: Error EC2Launch service is stopping. {error message} Error setting up EC2Launch agent folders See instance logs for detail Error stopping service Error initializing service Message: Windows sysprep configuration complete Message: Invalid administrator username: {invalid username} Message: Invalid administrator password Username: {username} Password: <Password>{encrypted password}</Password> AMI Origin Version: {amiVersion} AMI Origin Name: {amiName} Microsoft Windows NT {currentVersion}.{currentBuildNumber} OsVersion: {currentVersion} OsProductName: {productName} OsBuildLabEx: {buildLabEx} OsCurrentBuild: {currentBuild} OsReleaseId: {releaseId} Language: {language} TimeZone: {timeZone} Offset: UTC {offset} Launch agent: EC2Launch {BuildVersion} AMI-ID: {amiId} Instance-ID: {instanceId} Instance Type: {instanceType} RDPCERTIFICATE-SUBJECTNAME: {certificate subject name} RDPCERTIFICATE-THUMBPRINT: {thumbprint hash} SqlServerBilling: {sql billing} SqlServerInstall: {sql patch leve, edition type} Driver: AWS NVMe Driver {version} Driver: Inbox NVMe Driver {version} Driver: AWS PV Driver Package {version} Microsoft-Hyper-V is installed. Unable to get service status for vmms Microsoft-Hyper-V is {status} SSM: Amazon SSM Agent {version} AWS VSS Version: {version} Message: Windows sysprep configuration complete Message: Windows is being configured. SysprepState is {state} Windows is still being configured. SysprepState is {state} Message: Windows is Ready to use Message: Waiting for meta-data accessibility... Message: Meta-data is now available. Message: Still waiting for meta-data accessibility... Message: Failed to find primary network interface...retrying... User data format: {format}