AWS CLIでCloudWatchのアラームを制御する
はじめに
サービス運用していく上で、サービスレベルを保つためには監視が必須なわけですが、 監視をどうしても止めなきゃいけないときってありますよね。関係各位に通知が飛んじゃうので。 例えば、サーバメンテナンスでサーバを止めなきゃいけないときとか。
そういったケースにおいて、AWSではどうしたらいいんだろう?と考えました。 CloudWatchってアラームで通知設定してるけど、通知停止とかしてないんですよね・・・私。 ということで、気になって調べてみました。
目的
できること
CLIを見ると、下記ができるらしい。
disable-alarm-actions
、enable-alarm-actions
!
通知止められそうなコマンド発見〜。
set-alarm-state
でアラームのテストもできそうだ。
- delete-alarms
- describe-alarm-history
- describe-alarms
- describe-alarms-for-metric
- disable-alarm-actions
- enable-alarm-actions
- get-metric-statistics
- list-metrics
- put-metric-alarm
- put-metric-data
- set-alarm-state
検証
コマンド名を見れば何ができるかだいたいわかるので、アラーム制御できるっぽいコマンドを試してみる。
とりあえず、検証用のメトリクスとアラームを作る。
aws cloudwatch put-metric-data \ --namespace 'test-metrics' \ --metric-name 'test-metrics' \ --unit 'Count' \ --value '1' aws cloudwatch put-metric-alarm \ --alarm-name test-alarm \ --actions-enabled \ --alarm-actions arn:aws:sns:ap-northeast-1:ACCOUNT_ID:test-sns \ --metric-name test-metrics \ --namespace test-metrics \ --statistic Sum \ --period 60 \ --evaluation-periods 1 \ --threshold 1 \ --comparison-operator GreaterThanOrEqualToThreshold
作ったアラームがこちら。
アラームのアクションを無効化する。
aws cloudwatch disable-alarm-actions \ --alarm-name test-alarm
無効にした結果がこちら。
下記のコマンドでアラームのアクションを有効化する。
aws cloudwatch enable-alarm-actions \ --alarm-name test-alarm
まとめ
AWS CLIでCloudWatchアラームの通知を停止、再開できることがわかりました。 このコマンドをJenkinsか何かで利用しやすくしてやれば、メンテナンス時に無駄な通知が飛ぶこともなくなりますね!