CloudWatchでEC2インスタンスのモニタリングを行う

AWSに用意されている CloudWatch サービスを利用して EC2インスタンスのモニタリングを行うための方法

EC2を監視する

システムを監視し、問題があった場合にはこれを検知して対応をする事はシステムを運用する上で非常に重要です。

AWSではシステム監視のためのサービスとして Amazon CloudWatch が用意されています。

EC2インスタンスに関して基本のモニタリングはデフォルトで利用可能となっています。

料金

CloudWatch の料金に関しては 料金 を参照してください。
この記事執筆時点では EC2 インスタンスの基本モニタリングのメトリックス(5分間隔)は無料 となっています。

収集されたメトリックスを見る

CloudWatchが収集したメトリックスを参照する手順を示します。

  1. AWS のサイトからAWSマネジメントコンソール(以下コンソール)にログインします。
  2. コンソールから CloudWatch をクリックします。
  3. Metric Summary画面が表示されるので、 Browse Metrics ボタンをクリックします。
    Metric Summary
  4. CloudWatch Metrics by Category 画面が表示されるので、EC2 Metrics リンクをクリックします。
    Metrics by Category
  5. 参照可能なメトリックスの一覧が表示されます。
    Metrics
  6. 参照したいメトリックスをチェックすると、画面下部にグラフ表示されます。
    (下図は CPUUtilization, 及び、NetworkOutをチェックした状態)
    Metrics Graph

    画面右下のTime Rangeの設定を変更する事で、過去14日分のメトリックスを参照する事が可能です。

標準のメトリックス

デフォルトで用意されているメトリックスは以下になります。

メトリックス名 意味 (単位)
CPUUtilization CPU使用率 (%)  
DiskReadBytes ディスク読み込みバイト (Bytes)  
DiskReadOps ディスク読み込みオペレーション (回数)  
DiskWriteBytes ディスク書き込みバイト (Bytes)  
DiskWriteOps ディスク書き込みオペレーション (回数)  
NetworkIn ネットワーク受信 (Bytes)  
NetworkOut ネットワーク送信 (Bytes)  
StatusCheckFailed インスタンスとシステムのステータスチェック失敗 直近1分のチェック状態
0(成功) か 1(失敗)
StatusCheckFailed_Instance インスタンスのステータスチェック失敗
OSレベルでのチェック
直近1分のチェック状態
0(成功) か 1(失敗)
StatusCheckFailed_System システムのステータスチェック失敗
仮想マシンレベルでのチェック
直近1分のチェック状態
0(成功) か 1(失敗)

アラームの設定

メトリックスの参照については上記で可能ですが、この画面で監視し続ける訳にはいかないので、メトリックス値に問題が発生した場合にアラームが上がってくるようにします。
以下、ステータスチェックに失敗した場合に、管理者宛てにメール通知を飛ばすためのアラームを作成する手順を示します。

  1. CloudWatch画面の左メニューから Alarms リンクをクリックします。
    Alarms一覧画面に遷移するので、Create Alarm ボタンをクリックします。
    Alarm list
  2. Select Metric 画面に遷移するので、アラーム通知を行う際にチェックするメトリックを選択します。
    画面右側にはメトリックへのリンクが表示されるので、対象となるメトリックが表示される画面まで移動し、チェック対象のメトリックをチェックします。
    メトリックを選択したら Next ボタンをクリックします。
    Select Metric
  3. Alarm Threshold 画面に遷移します。
    アラームの閾値を設定します。先に選択したメトリックの値がどうなった時にアクションを発生させるかを定義します。
    以下画面の設定では、StatusCheckFailed の値が 1 (失敗) 以上になった場合に、メールを送信する設定になっています。
    Alarm Threshold

    設定が完了したら、Create Alarm ボタンをクリックします。

  4. 通知先として設定したアドレスに対してメールが送信されます。
    Subscription mail
    Confirm subscription リンクをクリックする事で、登録が完了します。
    Subscription confirmed

実際の通知メール

実際にアラームが発生した場合には、以下のような通知が送信されてきます。
CPU使用率の閾値=8%にして、メール送信させてみました。

通知メール

まとめ

CloudWatch を利用する事でAWSのモニタリングが可能になります。
基本メトリックだけで足りるならば、設定も簡単ですし、コストも殆どかかりません。

また、カスタムメトリックスを作成する事で、基本メトリックではサポートしていない独自のメトリックスのモニタリングを行う事も可能です。

AWSの監視を行いたい場合の選択肢の一つとして上手に利用してみるとよいのではないでしょうか。

CloudWatch に関しては、弊社でモニタリングを行うツール ( Windows や Linux で利用可能な GUI アプリケーション ) CloudWatch Monitor も無償提供しています。
簡単な閾値でのアラーム機能もついているので、もしよかったら使ってみてください。