パフォーマンスカウンタのデータをCloudWatchカスタムメトリクスにする

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

はじめに

今日はCloudWatchで素晴らしいアップデートがありました!

Windows ServerのパフォーマンスカウンタのデータをCloudWatchのカスタムメトリクスとして登録できるようになりました。またEvent TracingやカスタムログをCloudWatch Logsで参照することができるようになりました。

そこで今回はパフォーマンスカウンタのデータをCloudWatchのカスタムメトリクスとして登録してみたいと思います!

やってみる

EC2からCloudWatchやCloudWatch Logsにデータを登録するための権限はIAM UserまたはIAM Roleで割り当てます。今回はIAM Roleで割り当てました。以下のような内容で、CloudWatchとCloudWatch Logsにアクセス可能なIAM Roleを作っておきます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "cloudwatch:*",
        "logs:*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

このIAM Roleを割り当てた形で、Windows ServerのEC2をLaunchします。今回使ったAMIは「Windows_Server-2012-RTM-Japanese-64Bit-Base-2014.10.15 (ami-5f31005e)」です。また東京リージョン(ap-northeast-1)でLaunchしました。

EC2が起動したらWindows Serverにリモートデスクトップ接続でログインし、C:¥Program Files¥Amazon¥Ec2ConfigService¥Ec2ConfigServiceSettings.exeを実行します。

Windows_7_x64

[Ec2 Service Properties]画面が開きます。[General]タブの[Enable CloudWatch Logs integeration]をチェックし、[OK]ボタンをクリックします。

Windows_7_x64 2

さて、設定を行います。CloudWatchの設定はC:¥Program Files¥Amazon¥Ec2ConfigService¥Settings¥AWS.EC2.Windows.CloudWatch.jsonを編集しますので、メモ帳で開きます。

Windows_7_x64 3

まず最初にCloudWatchとCloudWatch Logsへの接続情報を編集します。["Id":"CloudWatch"]と["Id":"CloudWatchLogs"]を探します。今回はIAM Roleを使っているので関係ありませんが、IAM Userを使う場合にはここでAccess KeyとSecret Keyを設定します。またCloudWatch Logsは現時点で東京リージョンでは使えませんのでus-east-1としていますが、CloudWatchについては東京リージョン(ap-northeast-1)に書き換えています。

Windows_7_x64 4

["Id":"PerformanceCounter"] を探します。初期設定でメモリ使用率を取得するようになっていますので、今回はそのまま使います。他にCPU使用率やディスク使用率などを取得する場合には、Idを"PerformanceCounter1""PerformanceCounter2"のようにして、それぞれユニークなIdを付与します。

Windows_7_x64 5

最後に、出力(Flows)の設定をします。デフォルトでは以下の通り、アプリケーションログとシステムログをCloudWatch Logsに出力する設定だけが入っています。

Windows_7_x64 6

ここに、"Id":"PerformanceCounter"を CloudWatchに出力する設定を追加します。追加したら保存して閉じます。

Windows_7_x64 9

設定を有効にするためにはEC2Configサービスを再起動する必要があります。

Windows_7_x64 8

では動作確認です。AWS管理コンソールで東京リージョンのCloudWatchを開いてみると、カスタムメトリクスとして[Windows/Default]が登録されていますのでクリックして選択します。

全画面_2014_10_22_12_03

するとこんな感じでメモリ使用率をCloudWatchのグラフとして見ることができます。

CloudWatch_Management_Console

ということで出来ました!

まとめ

Windows Serverのパフォーマンスカウンタは様々な数値を取得することが出来ますので、システムの用途に合わせて様々な解析やAlarmを使った通知ができます。これはWindowsサーバ管理者にとってすごく便利な機能だと思います!