この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
第三シスの趙(@realdapeng)です。
久しぶりの投稿です。
今まで、CloudWatchAlarmを使って、EBSのDisk容量を監視しています。
突然通知先のSNSトピックを変更する要件が来ましたので、
効率且つシンプルの作業方法を調査して見ました。
そもそも、手修正でしたら?だめ?
-
二つのAWSアカウント、トータル100以上のCloudWatchAlarmに対して、手作業が効率的な方法ではないと思います。
-
AWSマネコンまでのアクセスルート下記となり、遅いです。
リモートデスクトップ → AWS Workspaces → 踏み台サーバ → AWSマネコン
CLIを調査して、使ってみる
put-metric-alarm
Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model.
調査してみると、CloudWatchAlarm設定変更の関数はありません。
変更は作成と同じの関数【put-metric-alarm】となり、上書き更新の形になります。
下記CLI DOCSから提供のサンプルより説明します。
CPU使用率が70%を超えた時にSNS【SNS_Topic_01 】に送信する、CloudWatchAlarmを作成する。
aws cloudwatch put-metric-alarm
--alarm-name cpu-mon
--alarm-description "Alarm when CPU exceeds 70%"
--metric-name CPUUtilization
--namespace AWS/EC2
--statistic Average
--period 300
--threshold 70
--comparison-operator GreaterThanThreshold
--dimensions Name=InstanceId,Value=i-02abcdefg0123
--evaluation-periods 2
--alarm-actions arn:aws:sns:ap-northeast-1:123456789012:SNS_Topic_01
--unit Percent
SNS【SNS_Topic_02】に変更したい時、【alarm-actions】のSNSのみ変更して、これ以外の内容は前のままで、再実行すれば、SNSトピックを変更できます。
aws cloudwatch put-metric-alarm
--alarm-name cpu-mon
--alarm-description "Alarm when CPU exceeds 70%"
--metric-name CPUUtilization
--namespace AWS/EC2
--statistic Average
--period 300
--threshold 70
--comparison-operator GreaterThanThreshold
--dimensions Name=InstanceId,Value=i-02abcdefg0123
--evaluation-periods 2
--alarm-actions arn:aws:sns:ap-northeast-1:123456789012:SNS_Topic_02
--unit Percent
最後に
マネコンより画面操作が速く、手操作の単純ミスも避けるので、AWSの大量リソース設定変更するとき、CLIを使用することを推薦です。
参照
AWS CLI Command Reference
https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html