設定した CloudWatch Alarm をテストする方法

2020.06.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

障害テストの一環として設定している CloudWatch Alarm を実際に意図した通り動作するかを検証しておきたい。

どう対応すればいいの?

Alarm を実際に実行させるには、2つ方法があります。

  1. 閾値を本来と異なるすぐに Alarm が実行される値へ変更を行う
  2. AWS CLI cloudwatch set-alarm-state を利用してステータスを強制的に変更し Alarm 実行させる

もう一つとしては実際に Alarm 実行条件を満たす状況を発生させるのが想定されますが EC2 CPUUtilization などであればコマンドで再現可能ですが、コストが発生するレベルで手間をかけてあげなければならないメトリクスも想定されます。 またステータスチェックなど利用者側ではコントロール不可のメトリクスも存在します。現実的ではないケースもあります。

上記1 でも大半のケースで適用されますが、閾値の戻し漏れがリスクとして残ります。状況によって取捨選択ではありますが、今回は上記2 を紹介させていただきます。

Alarm 作成

以下のような Alarm があったとします。実行のアクションはメール通知としています。

ステータスを変更

参考情報を元に以下のように Alarm 名と変更したいステータス(ALARM)、コメントを入力して実行します。

$ aws cloudwatch set-alarm-state --alarm-name blog-alarm-test --state-value ALARM --state-reason "test"

実行確認

マネジメントコンソール上の CloudWatch Alarm では アラーム状態 となっています。

アクションとして設定していたメールも通知されました。

参考情報