AWSのCloudwatchにアラート(Alarm)を設定し、監視する
こんにちは。新人の橋本です。
これまではオンプレミスのハイブリッドクラウド(プライベート+パブリック)や物理サーバにて運用構築業務についてましたが、
AWS自体は初めて取り扱う環境ですので、その目線から、ブログを書いていきたいと思います。
今回はAWS導入後、基本的なリソース監視ができるCloudwatchの設定、およびAlarmを設定し、閾値を超えたらEメールを送付するという
ごくごく基本的な設定について記載します。
1)設定画面
EC2にてインスタンス作成後、EC2の[Instance]項目にてにてAlarm設定したいインスタンスを選択し、[monitoring]タブを選択します。

2)Alarm設定
右部分にある[Create Alarm]を選択すると、CreateAlarm画面が表示されるため、各項目を入力します。
- Send a Notification to → 別項目にて、SNS topicを作成している場合、リストに追加されます(今回は追加しません)
- Take the action → Alarm発生時のアクション。発生した場合どうするかを選択できます(今回は設定しません)
- Whenever → リストより程度(Average,Max,Minimumなど)、および項目(CPU Utilization、Disk Usageなど)を選択します
- Is → 閾値(○○パーセント以上or以下など)を設定します
- For at least → 判定条件(○分間毎に△回[Whenever]項目が[Is]だった場合にAlarmカウントする)を設定します
- Name of Alarm → Alarm名を設定します
3)設定追加
各項目設定後、右下の[Create Alarm]を選択すると、Alarm項目が作成され、次の画面が表示されるので、リンクをクリックします。

4)項目追加確認
CloudWatch Management Console画面に遷移するため、項目が追加されたことを確認し、[Modify]タブをクリックします。

5)メール送信設定①
[Modify Alarm]画面が表示されるため、[Actions]項目の[+Notification]をクリックします。

6)メール送信設定②
[Notification]項目が表示されるため、[Newlist]を選択し、送信先メールアドレスを設定します。
- Whenever this alarm → どの状態の時にメールを送信するか設定します(今回はAlarm状態になったときに送信します)
- Send notification → 送信先を設定します

7)メール送信設定③
各項目を設定したら右下[Save Changes]を選択します。

8)メール送信確認①
[Confirm new email addresses]画面が表示され、設定したメールアドレスに確認メールが送付されます。

9)メール送信確認②
設定したメールアドレスに、次のようなメールが届いているため、リンク先をクリックします。
- 件名:AWS Notification - Subscription Confirmation
- 送信元:no-reply@sns.amazonaws.com

10)メール送信確認③
リンクをクリックすると、確認完了画面が表示されます。
注意)表示された画面の「click here to unsubscribe」をクリックしてしまうと、メールアドレスの設定が解除されるため注意!

11)メール送信確認④
[Confirm new email addresses]画面に戻ると送信先アドレス確認設定が完了しているため、[View Alarm]を選択します。

これでAlarmが設定できました。
今回は、「CPU使用率が10分間(5分×2)90%超え続けるとAlarmをカウントする」という項目を追加しました。
実証のため、設定したインスタンスにて、負荷をかけて試験してみます。
今回は以下のような単純なvbsを作成し、CPUに負荷をかけてます。
メモ帳に貼り付け、名前を「cpu_busy.vbs」で保存しダブルクリックで実行してみます。
Dim goal Dim before Dim x Dim y Dim i
goal = 1000000
Do While True before = Timer For i = 0 to goal x = 0.000001 y = sin(x) y = y + 0.00001 Next
y = y + 0.01
Loop
実行前)

実行後)

これで先ほどのCloudWatch ManagementConsoleにてAlarm画面を見てみます。
5分後・・・

おや、閾値を超えたぞ・・・?
10分後・・・

Alarmsがカウントされた!!
この状態で、先ほど設定した送信先アドレスにメールが届いているか確認してください。
きっとAlarmの項目名が件名となっているメールが届いていると思います!
#届いていない場合は、フィルターがかかってないか受信環境も併せて確認してみてください
まとめ)
Cloudwatchを設定することによって、簡易的なリソース監視ができるようになります。
また、設定する項目によっては請求レポート(Billing)やCPU高負荷時に一時的に強化される値(バースト値:CPUCreditUtil値)の設定、
最近ではOSのログを蓄積し、リアルタイムに監視する設定もできるようになっているため、
お使いの環境にていろいろと試してみてください。