Amazon CloudWatchでインスタンス死活監視

Amazon CloudWatchのアラート機能を使い、インスタンスのCPU/死活監視をしてみた

前提条件

監視対象インスタンス: us-west の t1.micro (monitoringはBasic) ※インスタンス番号を控えておく

設定

  1. ManagementConsoleにCloudWatchタブが出来ているので、クリック(US East以外の場合はRegionを変更)
  2. Create A New Alarmをクリック
  3. 先ほどのインスタンス番号をSearchの横の欄に入れてフィルタする
  4. CPUUtilizationの欄を選び、Continueを押す
  5. Alarmに任意の名前(Name)と説明(Description)を付ける
  6. 敷居値(Threshold)を決める(仮に40%以上が5分としました: >= 40 for 5 minuties)
  7. 次にいつAlarmを送るかを設定します
    ALARMは設定した条件になった際、OKは復帰した際、INSUFFICIENT_DATAは数値が取れなかった場合です。
    Alarmを送る宛先として、Amazon SNSのtopicを選択もしくは、作成します。
    ※作成する場合には、topicの名前と宛先のメールアドレスを指定します(確認メールが飛ぶので、リンクをクリックします)。
    ADD ACTIONを押して追加します(ここでは、ALARM/OK/INSUFFICIENT_DATAすべてに同じtopicを指定しました)。
  8. 最後に確認画面が出るので、良ければCreate Alarmを押します。

しばらく動かしてみると解るのですが、INSUFFICIENT_DATAのアラームが鳴ります。
これはBasic monitoringが5分単位なので、タイミングによってはデータが取得できないからではないかと思う(要確認)のですが、とりあえず気持ち悪いのでアラートの間隔を広げます。

  1. さきほど設定したらAlarmを選択して、Modifyを押す
  2. 左下のBackを押して、1つ画面を戻し、Periodを15minに変える
  3. 敷居値の設定も、15分に変更 (>= 40 for 15 minuties)
  4. Continueを何度か押し、Save Alarmで保存

これで正常に取れるようになりましたが、Alarmがあがるタイミングが少し遅くなりますね。その場合は、AverageじゃなくてMaximumにしてみたほうがいいかもしれません。
意図的にCPU負荷率を上げる(yes > /dev/null)、インスタンスをstopする、などして実際のアラート状態を発生させて見ると、ちゃんとメールが飛びます。