EventBridge SchedulerでCloudWatchアラームを指定時刻に無効化・有効化してみた

EventBridge SchedulerでCloudWatchアラームを指定時刻に無効化・有効化してみた

2025.12.24

この記事は アノテーション株式会社 AWS Technical Support Advent Calendar 2025 | Advent Calendar 2025 - Qiita 24日目の記事です。

はじめに

こんにちは 岩崎 です。

CloudWatchアラームのアクションを一時的に無効にしたい場面があり、Amazon EventBridge Schedulerで特定時刻に抑制する設定を実施してみました。

参考にさせていただいた記事では、特定期間で定期的に抑制する方法を実施いただいておりましたため、本記事では一度きりの抑制かつ、Amazon EventBridge スケジュールのリソースが実施後に自動で削除される方法で実施してみました。

特定時刻だけ CloudWatch アラームを抑制する、Amazon EventBridge Scheduler で。 | DevelopersIO

また、本記事では全てGUIによる操作で実施してみます。

CloudWatchアラームの準備

今回作成するCloudWatchアラームは、EC2インスタンスのstatusCheckのアラートを作成しました。
※任意の EC2 インスタンスを事前に作成します。

アラートのアクションとしては、インスタンスが正常に起動できた場合に、SNS経由でSlackのDMに通知されるように設定しています。

アラートを作成してメトリクスを確認すると、「無効化されたアクション」との表記がありました。

image (6).png

アラートのアクションについても、有効になっていることが詳細タブで確認できます。

image (8).png

アクション抑制時にどのような表記となるか確認してみます。

EC2を起動して確認してみる

まずは確認のため、EC2 インスタンスを起動し、アラームを確認してみます。

先ほどは灰色だったステータスのバーが一部黄緑色になりました。

image (9).png

また、設定していたSlackへの通知も正常に行われました。

image (10).png

Amazon EventBridge Schedulerの設定を行う

IAM ロールの作成の作成

EventBridge SchedulerにアタッチするIAMロールの作成と設定を行います。

カスタム信頼ポリシー選択し、下記を入力します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "scheduler.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

image (11).png

ポリシーは今はアタッチせず、ロールの作成を完了させます。

ロール名は任意の名前を設定してください。

ポリシーの作成と設定

ロールが作成できたら、ポリシーを作成しアタッチします。

作成したロールを選択 → 許可を追加 → インラインポリシーを作成 の順で選択していきます。

アクセス許可を指定は下記を入力します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:EnableAlarmActions",
                "cloudwatch:DisableAlarmActions"
            ],
            "Resource": "*"
        }
    ]
}

こちらもポリシー名は任意の名前を設定してください。

スケジュールを作成する

Amazon EventBridge よりスケジュールを作成します。

無効化のスケジュールを作成します。

今回は、定期的ではなく、一度だけ無効化したいので、スケジュールのパターンを「一度きりのスケジュール」を選択してみます。

image (12).png

次に、ターゲットの選択で CloudWatchDisableAlarmActionsを選択し、下部で作成したアラーム名を入力します。

image (13).png

次に設定の項目で、今回は一度きりの実行となるため、スケジュール完了後のアクション部分で DELETE を選択します。

ロールは先ほど作成したロールを選択します。

image (14).png

次へを選択し、スケジュールを作成します。

アラームを確認する

設定した時刻を過ぎた後に、対象のアラームを確認すると、青いバーが下部に表示され、カーソルを合わせると「アクションが無効なっています」を表示されました。

image (15).png

詳細タブでも、アクションが無効であることが確認できました。

image (16).png

また、無効の状態でインスタンスの起動をしましたが、SlackのDMに通知はありませんでした。

有効化スケジュールも作成し確認してみる

無効化のスケジュールと同様の手順で、DisableAlarmActionsを選択した部分を EnableAlarmActionsに変更し、アクションを有効化するスケジュールを作成し、確認しました。

こちらも、設定した時刻を過ぎた後確認すると、青いバーが途切れており、詳細タブの部分でもアクションが有効であることが確認できました。

image (17).png
image (18).png

スケジュールのリソースを確認してみる。

Amazon EventBridge スケジュールの一覧を確認してみると、リソースは残っていませんでした。
意図通り、実行後は削除されていることが確認できました。

image (19).png

まとめ

今回CloudWatchアラームのアクションを無効にする方法を検証してみました。

一度限りの設定が可能であるため、メンテナンス等で特定の日時でアクションを無効化し、再度有効化することが可能であることが確認できました。

また、アラートメトリクスの部分で、無効化されたアクションが青いバーとして視覚的にもわかりやすいと思いました。

実行後に自動でスケジュールのリソースが削除されるため、実行後のリソースの処理を意識しなくても良い点があります。

参考

特定時刻だけ CloudWatch アラームを抑制する、Amazon EventBridge Scheduler で。 | DevelopersIO

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

この記事をシェアする

FacebookHatena blogX

関連記事