構成
構成はEC2インスタンスを立てて、cloudwatchでCPU使用率を監視します。
わざとCPU使用率を上げて、アラームをメールで飛ばしてみます。
EC2インスタンスを構築
適当なEC2インスタンスを立てました。
作成方法は こちらをごらんください
このインスタンスのインスタンスIDを後で使うので控えておいてください。
i-xxxxxx
ってやつです。
cloudwatchでアラームを作成
- 移動
ホーム > cloudwatch > アラーム > アラーム で、
アラームを作成します。
- メトリクスと条件の指定
ここではメトリクスの選択をします。
何を監視するか
を決めます。
今回はEC2インスタンスの使用率(CPUUtilization)を見るので、
EC2 > インスタンス別メトリクス とたどっていきます。
ここで、 先程控えておいたインスタンスID(i-xxxxx) と CPUUtilization(CPU使用率) を検索窓で検索します
検索結果が出てきます。
こちらが先ほど作成したEC2インスタンスのCPU使用率を確認するメトリクスになります。
これにチェックを入れてメトリクスを選択します。
メトリクスの条件が出てきましたが、あまり待ってられないので期間を5分にします。
アラームの条件としては
これでCPU使用率(指定したメトリクス)が20%以上になればアラームが鳴る条件にしました。
普通に使う分であれば80%などでOKだと思います。
- アクションの設定
ここでは通知を行いたいので、アラーム状態のときのトリガーを定義します。
SNSトピックで通知を行うことができ、
トピック名と通知先のメールアドレスを記載し、トピックを作成します。
トピックが設定されたらこのような状態になります。
他のアクションは何もしなくてOKです。
- 名前と説明を追加
アラーム名とそれに対する説明を記載します。
- プレビューと作成
設定に問題ないことを確認して、作成を行います。
- 作成完了
アラームが作成されました。
※宛先のメールにSNSの承認メールが来ているので承認が必要です。
アラームが鳴ることを確認
- 対象のEC2インスタンスで負荷を上げる
yesコマンドで負荷をかけます。
yes dev/null &
- 負荷の確認
実行前のtopコマンド
特に負荷が上がってる感じはありません。
top - 13:20:54 up 41 min, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 94 total, 1 running, 57 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1006896 total, 490820 free, 91708 used, 424368 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 774884 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125504 5376 3976 S 0.0 0.5 0:01.80 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
実行後のtopコマンド
yesコマンドが上位にきており、CPU使用率は20%を超えています。
top - 13:23:18 up 43 min, 2 users, load average: 0.50, 0.11, 0.04
Tasks: 95 total, 3 running, 56 sleeping, 0 stopped, 0 zombie
%Cpu(s): 28.9 us, 63.5 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 7.6 si, 0.0 st
KiB Mem : 1006896 total, 490152 free, 92376 used, 424368 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 775844 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3306 ec2-user 20 0 150524 4472 3144 R 36.7 0.4 1:01.77 sshd
3552 root 20 0 114636 676 616 R 36.7 0.1 0:06.03 yes
1565 root 20 0 0 0 0 I 26.3 0.0 0:20.25 kworker/u30:3
- メールの確認
アラームのメールが来ておりました。
画像忘れちゃいました、すみません
勉強後イメージ
案外簡単だったなー
cloudwatchのメトリクス自体は触ったことあったからそんなに難しくなかったかも
次はlambdaと連携とかしてみたい