EC2 Windows Server 2025 で診断割り込みを送ってメモリダンプを取得してみた
はじめに
テクニカルサポートの 片方 です。
EC2 Windows Server 2025 で、OS のシャットダウン時に診断割込みによるメモリダンプを取得する機会があったので紹介します。
停止エラー (ブルー スクリーン、システム クラッシュ、バグ チェックとも呼ばれます) が原因でコンピューターが予期せず停止したときに、デバッグ情報をさまざまなファイル形式 (メモリ ダンプ ファイルとも呼ばれます) に書き込むことができます。 また、デバッグ情報をメモリ ダンプ ファイルに書き込まないよう Windows を構成することもできます。
やってみた
以下のドキュメントを参考にやってみました。
なお、サポートされるインスタンスタイプとして、Nitro ベースのすべてのインスタンスタイプでサポートされます。
一方で、AWS Graviton プロセッサで動作するものを除きます。たとえば、Xen インスタンスタイプの t2.micro などはサポート対象外です。
- リモートデスクトップで接続
- [コントロール パネル] > [システム] > [システムの詳細設定]
- 「システムのプロパティ」→「詳細設定」タブ → [起動と回復] セクションの「設定...」
- 以下を確認・設定
「Kernel memory dump」 や 「Complete memory dump」 に設定します。今回は、「Kernel memory dump」 で設定しました。
オプションなどの詳細はこちらをご確認ください。
- OK → 再起動して設定反映
- 設定後の確認コマンド(任意)
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"
※ 実行例
PS C:\Windows\system32> Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"
AutoReboot : 1
CrashDumpEnabled : 2
DisableEmoticon : 1
DumpFile : C:\Windows\MEMORY.DMP
DumpLogLevel : 0
EnableLogFile : 1
LogEvent : 1
MinidumpDir : C:\Windows\Minidump
MinidumpsCount : 5
Overwrite : 1
AlwaysKeepMemoryDump : 0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
PSChildName : CrashControl
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
PS C:\Windows\system32>
ここまで終わったら、AWS CLI から診断割り込みを送る準備は完了です。
お疲れ様でした!
診断割り込み API の実行
診断割り込み API を実行して、カーネルパニックを発生させてみます。
※ AWS CLI コマンド例
aws ec2 send-diagnostic-interrupt --instance-id i-1234567890abcdef0
※ PowerShell コマンド例
Send-EC2DiagnosticInterrupt -InstanceId i-1234567890abcdef0
メモリダンプを確認
診断割り込み API 実行後、OS にログインしてメモリ (クラッシュ) ダンプを確認してみます。
以下のようにクラッシュダンプが出力されたのを確認できました。
成功です!
なお、取得したメモリダンプは WinDbg などのデバッガで開くことで、原因調査やドライバレベルの解析に活用できます。
まとめ
本ブログが、EC2 上の Windows Server でメモリダンプを取得したい方の参考になれば幸いです。
参考資料
- メモリ ダンプ ファイルのオプション - Windows Server | Microsoft Learn
- 診断割り込みを送信して到達不能の Amazon EC2 インスタンスをデバッグする - Amazon Elastic Compute Cloud
- send-diagnostic-interrupt — AWS CLI 2.31.8 Command Reference
- WinDbg のインストール - Windows drivers | Microsoft Learn
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。