AWS
EC2
監視

AmazonCloudWatchでEC2のCPU使用率を監視してSNSで通知する

サーバ監視ってややこしそうな印象でしたが、AWSを使うと簡単でした。
タイトルの通り、CloudWatchでEC2のCPU使用率を監視してSNSで通知した時のメモです。
ここでいう SNS は、Social Networking Service ではなく、AWSのサービスの一つである Simple Notification Service のことです。

前提

  • EC2インスタンスが稼働中であること(事前に監視対象のインスタンスIDをメモしておく)

SNS(Simple Notification Service)でトピック・サブスクリプション作成

トピックとは

  • 通知のチャンネルのようなもの
  • トピックの中(下?)に通知先を色々設定できる(HTTP、Email、AWS Lambda...)
  • 作成時に トピック名(半角英数字とハイフン、アンダースコアで256文字まで)と、表示名(10文字以内)を入力

サブスクリプションとは

  • トピックの中(下?)に作成する通知先のこと
  • エンドポイントとして、HTTPならURL、Emailならメールアドレスを指定する
  • Emailを指定すると、設定したアドレス宛に承認用URLが届くので、本文内のURLで承認する

SNSの料金設定

  • メール送信であれば、毎月1,000件までは無料
  • それ以降は、100,000件あたり2ドル

※他のサブスクリプションについてはSNS料金ページを参照してください
https://aws.amazon.com/jp/sns/pricing/

作成手順

  1. トピック作成
  2. 作成したトピックに対してサブスクリプション作成
    • プロトコルを Email
    • エンドポイントに 通知先のメールアドレス
  3. 設定したメールアドレス宛に届いた承認メール内のURLにアクセスして、承認
    • 件名は AWS Notification - Subscription Confirmation

CloudWatchでアラーム作成

アラームとは

  • ◯◯が▲▲以上になったら□□する といった設定のこと
  • 以下の3つの状態がある
    • アラーム:設定した条件に合致している状態
    • 不足:データが不足していて設定した条件が判定できない状態
    • OK:設定した条件に合致していない状態

CloudWatchの料金

  • 無料
    • 最大50個のメトリクス、3つのダッシュボード、モニタリングは5分間隔

※詳細はCloudWatch料金ページを参照してください
https://aws.amazon.com/jp/cloudwatch/pricing/

作成手順

※スクショはありません

  1. メトリクスの選択EC2 を選択し、右横のテキストボックスに対象のインスタンスIDを入力して Enter
  2. 下の一覧から CPUUtilization (CPUUtilization) の行にチェックを入れ、次へ
  3. 名前説明 を入力
  4. しきい値、アラームのプレビュー の下にあるテキストボックス、ラジオボタン、セレクトボックスを適宜設定する
    以下、「5分間の使用率平均が70%を超えた場合にトリガー」という条件の場合の設定例
    が:≧ 70
    期間:1 中 1データポイント
    間隔:5分間
    統計:スタンダード 平均
  5. アクション の項目で、アラームが次の時:状態:警告 に、作成したSNSのトピックを指定する
    アラームの状態が、アラーム に変わった時に通知が来る
  6. アラームが次の時:状態:OK も設定すると、アラームの状態が OK に変わったときにも通知が来る

注意点

  • 間隔を 1分 とかに設定することもできますが、無料で使用する場合はモニタリングの最小間隔が 5分 なので、アラームの状態が頻繁に 不足 になります。