CloudWatchのアラームでメール通知機能を使う
今回は、CloudWatchを使ってCPUが指定の使用率以上になったら、
メール通知し、EC2インスタンスを落としてみる
※未完で途中までです。 
そもそもCloudWatchのアラーム機能とは?
EC2やEBSなど、CloudWatchでAWSリソース(以外も可?)を監視し、メトリクス(設定値)が規定の上限を上回った場合にメール通知などを行うことができる
アラームの作成
AWSのメニューからCloudWatchを選択し、アラーム項目を開く

今回は、以前に作成したEC2のCPU使用率を監視する
すべてのメトリクスからCPUUtilizationを選択する

グラフ化したメトリクスの項目で1分ごとにCPU使用率の"最大値"を測定するように設定する

線グラフ化するので、横軸の時間は日本のタイムゾーンに設定する

閾値の設定をする
CPUの使用率が > 10% を超えた場合に設定

※アラーム作成後に動作が安定しないため、下記の項目を追加した。

これは、EC2のCPU使用率をCloudWatchが監視する場合、監視値が取得できないときは欠落データとして無視するように設定する
通知に関する設定をする
今回はメールを送るためのトピックという機能を追加する
下記の項目を入力してトピックの作成を押下
入力したメールアドレスにメールが届くので、承認する
※メール内容

作成後のアラームを確認
EC2を起動させていない、また、アラームの作成直後でCPUのデータを収集できていないためデータ不足が発生している

EC2を起動させてしばらく時間が経つと、OKに変わりCPU使用率が表示される

アラームとEC2の停止を確認する
HTTP GET DOS攻撃でEC2を落とす。
(CPU使用率の閾値が大きすぎるため10%から1%に変更する。)
アラームの更新で設定完了
EC2にapacheを入れているので、エンドポイントに向けて短時間でcurlコマンドを送る(HTTP GET DOS攻撃)
使用したShellは下記
(※下記のIPはセキュリティ制限を行なっています。)
[dos.sh]
# !/bin/sh
for i in `seq 10000`
do
  curl http://ec2-54-65-248-190.ap-northeast-1.compute.amazonaws.com &
done
ローカルホストからEC2に向けて実行する
レスポンスは[apache test]で実行される
bash dos.sh 
apache test
apache test
apache test
apache test
apache test
apache test
EC2インスタンスで監視する
sar -Pコマンドを使用する
50秒あたりから、user/systemの値が表示されている。
ここでいうuser/systemの合計値が実際のCPU使用率になるので
下記より、最大値で4~5%使用していることがわかる
(※stealに関しては不明、今後調査予定)
CloudWatchの設定で、1分間ごとにCPU使用率の最大値を取得しているので、
ここで5%程度の値がプロットされているか確認する必要がある
sar -P ALL 1 10
15時20分48秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分49秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分49秒       0      0.00      0.00      0.00      0.00      0.00    100.00
15時20分49秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分50秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分50秒       0      0.00      0.00      0.00      0.00      0.00    100.00
15時20分50秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分51秒     all      0.99      0.00      0.99      0.00      0.00     98.02
15時20分51秒       0      0.99      0.00      0.99      0.00      0.00     98.02
15時20分51秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分52秒     all      0.00      0.00      0.00      0.00      1.01     98.99
15時20分52秒       0      0.00      0.00      0.00      0.00      1.01     98.99
15時20分52秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分53秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分53秒       0      0.00      0.00      0.00      0.00      0.00    100.00
15時20分53秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分54秒     all      1.01      0.00      1.01      0.00      0.00     97.98
15時20分54秒       0      1.01      0.00      1.01      0.00      0.00     97.98
15時20分54秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分55秒     all      1.02      0.00      1.02      0.00      0.00     97.96
15時20分55秒       0      1.02      0.00      1.02      0.00      0.00     97.96
15時20分55秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分56秒     all      1.04      0.00      3.12      0.00      1.04     94.79
15時20分56秒       0      1.04      0.00      3.12      0.00      1.04     94.79
15時20分56秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分57秒     all      0.00      0.00      1.00      0.00      0.00     99.00
15時20分57秒       0      0.00      0.00      1.00      0.00      0.00     99.00
15時20分57秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時20分58秒     all      0.00      0.00      0.00      0.00      0.00    100.00
15時20分58秒       0      0.00      0.00      0.00      0.00      0.00    100.00
平均値:      CPU     %user     %nice   %system   %iowait    %steal     %idle
平均値:      all      0.40      0.00      0.71      0.00      0.20     98.69
平均値:        0      0.40      0.00      0.71      0.00      0.20     98.69
EC2の時間設定を行なっていないので時間表示が間違っているが、
JSTで00:20:55あたりの時刻をCloudWatchで確認する
うーん、最大値測定で0.3%程度・・・
彼は何を見ていたのだろう(笑

現在は、監視時間の粒度が1分おきになっているが、今後粒度を小さくして確認する
夜も遅いので、今後この記事に追記していきます。
以上







