CloudWatchアラームの状態変化でLambdaアクションが実行できるようになりました

■概要

CloudWatchアラームのステータス変更が起きた際の地味アプデを見かけたので書いてみます。
アラームの状態が変移した際にAWS Lambdaを指定できるというものです。

Amazon CloudWatch alarms adds AWS Lambda as an alarm state change action
https://aws.amazon.com/about-aws/whats-new/2023/12/amazon-cloudwatch-alarms-lambda-change-action/

■CloudWatchアラームのアクションについて

cloudWatchアラームを設定する際、閾値に引っかかった時の動作を決定できます。
アクションとして、例えばよく使いそうなものだと、前もってSNSトピックにメールアドレスのリストを設定していて、そのリストにメールを送付する等です。

■コンソールからアクションを確認する

実際にコンソールから見てみましょう。
今回は現在設定済みのCPUアラートを編集する形で調べてみます。
アラーム編集の画面にてアクションの設定画面へ移るとスクショのような項目を確認できます。

編集1_20240109232449.png

アップデート通りにLambdaも項目としてありますね。
何だか前からあったような…という自然な感じであります…

編集2_20240109233135.png

Lambdaアクションの詳細です。
他アクションと同様で、アラーム状態、OK、データ不足での変移でトリガーする事ができます。
よくよく見てみると別アカウントにあるLambda関数も実行できるみたいですね

アラームの状態変化でLambdaと連携できる、という所まではありそうな話ですがクロスアカウントで利用できるという点は結構痒いところに手が届きそうです。(今のところ使う機会なさそうですが…)

後は単純なインスタンス再起動や停止、削除に留まらずインスタンスのスペック変更、停止起動、他サービスの呼び出しなんかでも使えそうですし、Lambdaの自由度の分やれる事は広そうですね。

■その他のアクション項目

ざっと書きます。
特に「Systems Manager アクション」のアクションの部分はかなり興味あります。

・ 通知

AWS User Notificationsを使用してCloudWatchアラームの状態変更を通知することができます。
これにより、CloudWatchアラーム毎に通知設定を行わずに全てのアラームの状態変更を通知可能です。

・ Auto Scaling アクション

CloudWatchアラームにEC2の標準メトリクス(CPUUtilzation)を監視させ、
それが一定値を超えた場合にアラームを起動することで、AutoScaling内のインスタンス数を調整することができます。

・ EC2 アクション

インスタンスの停止、再起動、削除もできます。
特定のインスタンスタイプではインスタンスの復旧まで出来るらしい…

・ Systems Manager アクション

CloudWatchアラームの発動により、Systems Managerからタスクやアクションが実行できます。
例えば、System Manager Automationでインスタンスにパッチ適用をするシーンで活用できます。

■最後に

今回アクションとしてLambdaが使用できるようになったので、回り道してLambdaを動作させていた方にとっては朗報だったのかもしれませんね…
かなり短い内容になりましたが、今回は以上です!

この記事を書いた人

aws-recipe-user