CPU使用率のモニタリングをしていなかったことについて、ユーザーから突っ込みがあったらしいので設定しました。
エージェントのインストールは不要でとても簡単です。
はじめに
これはAWS EC2インスタンスの話です。
メトリクス(監視対象から取得するデータセットのことで、CPU使用率、Disk読み書き回数、通信量等があります)が、閾値を超えた場合や下回った場合などにアラームを発行するのは、CloudWatchアラームというサービスが担っています。
CloudWatchアラーム自体にはメールを送信する機能はありませんが、CloudWatchアラームは Amazon SNS と連携できるので、SNS上に定義したトピックにメッセージを送信し、トピックに紐づけられた受信者にメール等で通知するやり方を解説します。
トピックの作成
まず、Amazon SNS(Simple Notification Service)からトピックを作成します。
Amazon SNS はサーバレスでメッセージ(スマートフォンのプッシュ通知、Eメール、SMSなど)の配信を可能にするマネージドサービスです。トピックという論理的なアクセスポイントにメッセージを送信すると、トピックに紐づけられた受信者に対してメッセージが非同期で一斉送信される仕組みです。
この仕組みを自前で構築しようとすると、開発コストだけでなく、サービスのスケールに応じて管理コストもかかってきますが、Amazon SNS なら初期費用をかけずに利用できます。
今回はEメールで通知するのでタイプはスタンダード、任意の名前で設定します。
サブスクリプションの作成
続いて、トピックとプロトコルを選択し、エンドポイントを設定します。
選択するプロトコルによって、Eメールならメールアドレス、SMSなら電話番号、というようにエンドポイントに設定する情報は変わります。
サブスクリプションを作成すると、ただちにHTMLメールが送信されるので、本文にある Confirm subscription をクリックします。
From: AWS Notifications <no-reply@sns.amazonaws.com>
Date: 2022年8月8日(月) 7:43
Subject: AWS Notification - Subscription Confirmation
To: <foo@example.co.jp>
You have chosen to subscribe to the topic:
arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:MyTopic
To confirm this subscription, click or visit the link below (If this was in error no action is necessary):
Confirm subscription
CloudWatchアラームの作成
CPU使用率をモニタリングしたいEC2インスタンスを選択し、CloudWatchアラームの管理 をクリックします。
作成したトピックを選択します。
しきい値を設定します。
最後に「作成」をクリックしたら完了です。
テスト
yes > /dev/null &
や stress
コマンドで負荷を与えてみましょう。
アラームのメールを受信したら成功です。