AmazonCloudWatchでEC2のCPU使用率を監視してSNSで通知する
2018-02-02サーバ監視ってややこしそうな印象でしたが、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/
作成手順
- トピック作成
- 作成したトピックに対してサブスクリプション作成
- プロトコルを Email
- エンドポイントに 通知先のメールアドレス
- 設定したメールアドレス宛に届いた承認メール内のURLにアクセスして、承認
- 件名は
AWS Notification - Subscription Confirmation
CloudWatchでアラーム作成
アラームとは
- ◯◯が▲▲以上になったら□□する といった設定のこと
- 以下の3つの状態がある
- アラーム:設定した条件に合致している状態
- 不足:データが不足していて設定した条件が判定できない状態
- OK:設定した条件に合致していない状態
CloudWatchの料金
- 無料
- 最大50個のメトリクス、3つのダッシュボード、モニタリングは5分間隔
※詳細はCloudWatch料金ページを参照してください https://aws.amazon.com/jp/cloudwatch/pricing/
作成手順
※スクショはありません
- メトリクスの選択 で EC2 を選択し、右横のテキストボックスに対象のインスタンスIDを入力して Enter
- 下の一覧から CPUUtilization (CPUUtilization) の行にチェックを入れ、次へ
- 名前、説明 を入力
- しきい値、アラームのプレビュー の下にあるテキストボックス、ラジオボタン、セレクトボックスを適宜設定する
以下、「5分間の使用率平均が70%を超えた場合にトリガー」という条件の場合の設定例
が:≧ 70
期間:1 中 1データポイント
間隔:5分間
統計:スタンダード 平均 - アクション の項目で、アラームが次の時:状態:警告 に、作成したSNSのトピックを指定する
アラームの状態が、アラーム に変わった時に通知が来る - アラームが次の時:状態:OK も設定すると、アラームの状態が OK に変わったときにも通知が来る
注意点
- 間隔を 1分 とかに設定することもできますが、無料で使用する場合はモニタリングの最小間隔が 5分 なので、アラームの状態が頻繁に 不足 になります。
comments powered by Disqus