CloudWatch Alarm で高解像度のメトリクス監視をしているアラームを一覧で確認する方法を教えてください

CloudWatch Alarm の高解像度アラームは、より高い精度でリソース監視を実現できる便利なものですが、標準解像度のアラームよりもコストがかかります。この記事では高解像度に設定したアラームを一覧で確認する方法をご紹介します。
2021.07.20

困っていた内容

いくつかの CloudWatch Alarm で高解像度のメトリクス監視を行っていますが、アラームが増えて利用料金が上昇しているため、高解像度の設定になっているアラームを特定して設定を見直したいです。どうすれば一覧で確認できますか。

「Amazon CloudWatch アラームを使用する」より引用

高解像度メトリクスでアラームを設定する場合、10 秒または 30 秒の期間で高解像度アラームを指定するか、60 秒の倍数の期間で通常のアラームを設定できます。高解像度のアラームには高い料金が発生します。

どう対応すればいいの?

まずマネジメントコンソールからは、以下の箇所で確認できます。 上記に引用した通り「期間」が 60 秒未満( 10 秒や 30 秒など)になっているものが、高解像度の監視アラームです。

しかしアラームが多数あると、一つずつ画面を確認していくのは大変ですよね。

そこで、CLI コマンドを使用して一覧で確認してみました!

AWS CLI で高解像度の監視アラームを特定してみた

まずは cloudwatch describe-alarms コマンドで確認します。

$ aws cloudwatch describe-alarms

出力例

上記の出力内の「Period」がマネジメントコンソール上の「期間」に該当するため、この値が 60 未満のアラームを確認すればよいわけです。 これで複数のアラームを一度に確認できますね!

けど、もっと見やすくしたい!という方のために、grep でアラーム名と期間の行のみを抜き出してみました。

$ aws cloudwatch describe-alarms | grep -e \"AlarmName\" -e \"Period\"

出力例

これなら多数あるアラームの中で、どれが高解像度監視のアラームか一目瞭然ですね!

さらにコマンドを工夫すれば「"Period"が 60 未満のアラーム(= 高解像度の監視アラーム)のみ表示する」なども出来そうですね。 参考になれば幸いです!

参考資料

Amazon CloudWatch アラームを使用する
describe-alarms — AWS CLI 1.19.85 Command Reference