Windows on EC2でトラブルが起きたらAWS Diagnosticsを使いましょう

2015.10.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは植木和樹@上越妙高オフィスです。AWSより、EC2でWindowsを使っている方向けにトラブルシューティング用途としてAWS Diagnostics for Microsoft Windows Serverというツールが提供されています。

AWS Diagnostics for Microsoft Windows Server は、Amazon EC2 Windows Server インスタンス上で動作し、潜在的な問題の診断とトラブルシューティングを行うことができる使いやすいツールです。

とのことですが、いったいどのようなツールなのか試してみました。

動作条件とインストール

動作条件

AWS Diagnosticsでは診断時に、そのEC2に割り当てられているセキュリティグループ等を調査します。そのため下記2つの条件が必要です。

  • EC2にPublicIPまたはElasticIPが割り当てられ、インターネットに接続できること
  • AWS API実行に必要な権限を持っていること(ReadOnlyAccessポリシーを持っておくのが簡単です)

インストール

インストールは簡単です。まずは上記日本語ページから辿れるリンクより英語版ページへ移ります。

画面右上にある「Get AWS Diagnostics」のリンクをクリックをクリックするとAWSDiagnostics.zipというファイルがダウンロードできるので、これを適当なフォルダに展開します。インストールはこれだけです。

20151004_AWS-Diagnostics_001

実行してみる

早速使ってみます。ZIPファイルを展開したフォルダにあるEC2WindowsDiagnostics.exeが実行ファイルです。これをダブルクリックで起動します。実行すると警告ウィンドウが出るかもしれませんが、そのまま実行してください。

20151004_AWS-Diagnostics_002

20151004_AWS-Diagnostics_003

初回実行時にはライセンスに同意するか確認がありますので「I Agree」をクリックします。

20151004_AWS-Diagnostics_004

下記が AWS Diagnostics の画面です。実行しているWindowsサーバーに対して診断を行う場合は、特に設定を変更する必要はありません。画面右下にある「Begin」をクリックしてください。

20151004_AWS-Diagnostics_005

するとAWSのクレデンシャルを聞いてきます。指定方法はEC2に紐付いているIAM Role, クレデンシャルファイル、環境変数の3種類があります。ただ私の環境(Windows Server 2008 R2)だとクレデンシャルファイルや、環境変数で指定すると実行時エラーがでて正しく動作しませんでした。まだベータ版なので不具合があるようですね。

20151004_AWS-Diagnostics_006

20151004_AWS-Diagnostics_007

EC2にIAM Roleが割り当てられていれば「OK」をクリックすると診断が始まります。

診断は30秒程度で完了します。完了するとEC2WindowsDiagnostics.exeと同じフォルダにDataCollectedというフォルダが作成され、さらにその下には診断実行毎にサブフォルダが作成されます。このフォルダにAWS Diagnosticsが収集した各種情報がファイルとして保存されます。

20151004_AWS-Diagnostics_008

AWS Diagnosticsのウィンドウで「Open Report」ボタンをクリックすると診断結果の概要をみることができます。

取得できる情報

AWS Diagnosticsで収集できる情報は下記の通りです。これらのファイルは実行時にZIPファイルとして先のDataCollectedフォルダに作成されています。AWSサポートにケースで問い合わせをする際にはこのZIPファイルを添付しましょう。

Application.evtx
アプリケーション イベントログ
DiskInfo.xml
ディスク情報(総容量や使用量など)
DriverDetails.xml
デバイスドライバー情報
EC2ConfigPaths.txt
EC2Configのインストールパスなどの情報
Ec2ConfigLog.txt
EC2Configのログファイル
Firewall.xml
Windowsファイアウォールの情報
IPInfo.xml
ネットワークアダプタやネットワーク設定に関する情報
InstallUpdates_0.txt
EC2Configの設定情報
InstallUpdates_1.txt
EC2Configによるパッケージアップデート情報
InstanceInfo.xml
インスタンスタイプやインスタンスIDなどの情報
KMSSettings.xml
Windowsライセンスサーバー情報
LocalTime.xml
診断を実行した日時
LocaleMetaData
Manifest.xml
取得した情報に関する一覧
MemoryInfo.xml
メモリー情報(搭載メモリーや使用中のメモリー量など)
PageFileInfo.xml
ページファイル情報
RouteTable.xml
ルーティングテーブル情報
SecurityGroups.xml
EC2に割り当てられたセキュリティグループの情報
ServerInfo.xml
ホスト名やWindowsドメインに関する情報
Services.xml
サービスに関する情報
System.evtx
システム イベントログ
TimeZone.xml
タイムゾーン設定
起動直後のWindows Serverで実行したところZIPファイルは40KB強程度でしたが、長期実行していて大量のイベントログが出力されている環境では大きなサイズになるかもしれません。その際はS3へZIPファイルをアップロードして、Pre-Signed URLを伝えると良いでしょう

まとめ

本日はAWS Diagnosticsをご紹介しました。本ツールについてさらに詳しいことはFAQに程よくまとまっていますので参照してください。

AWS Diagnosticsツールは、EC2でWindowsを利用している方が障害原因を調査するためのツールです。同時にAWSサポートへサーバーの状況を効率的に伝えるためのツールでもあります。

EC2でWindowsを利用される場合には、まずAWS Diagnosticsをインストールされることをオススメします。