
2026年2月に Amazon CloudWatch Alarm の「ミュートルール (Mute Rules)」 という新機能がリリースされた❗️
計画メンテナンスのときなど Amazon CloudWatch Alarm のアクションを一時的に止めたい場合に今までだと「無効化」を設定する必要があった.もしくは計画メンテナンス中に大量にアラートが鳴ってしまって「すいません!今作業中だから無視してください🫡」みたいなアナウンスをしてしまっているチームもあると思う.「ミュートルール」を使えば柔軟にアラートを抑制できる.
現時点では Terraform AWS Provider で未サポート
2026年3月3日時点では Terraform AWS Provider ではサポートされていなかった.issue は出ていてサポートされそうな未来はある😀
AWS Cloud Control Provider (awscc) ではサポートされている
AWS Cloud Control Provider (awscc) では2026年2月18日にリリースされた v1.72.0 からサポートされている.リソースとしては awscc_cloudwatch_alarm_mute_rule を使えば OK👌
さっそく試す \( 'ω')/
今回は「1回限り」を試す.他には「定期的なスケジュール」という設定もある🕐️
Amazon CloudWatch Alarm をデプロイする
まずは検証用の Amazon CloudWatch Alarm と Amazon SNS トピックをデプロイする.Amazon CloudWatch Alarm のメトリクスは適当に設定しておく😀
resource "aws_sns_topic" "alarms" { name = "sandbox-alarms" } resource "aws_sns_topic_subscription" "mail" { topic_arn = aws_sns_topic.alarms.arn protocol = "email" endpoint = "y.yoshida22@gmail.com" } resource "aws_cloudwatch_metric_alarm" "sandbox" { alarm_name = "sandbox-for-mute" comparison_operator = "GreaterThanThreshold" evaluation_periods = 1 namespace = "Sandbox" metric_name = "DummyMetric" period = 300 statistic = "Sum" threshold = 1 treat_missing_data = "notBreaching" alarm_actions = [aws_sns_topic.alarms.arn] ok_actions = [aws_sns_topic.alarms.arn] }
Amazon CloudWatch Alarm を発火させる
デプロイした Amazon CloudWatch Alarm の動作確認をするために aws cloudwatch set-alarm-state コマンドを使って一時的に ALARM に変更してアラートを発火する🔥
$ aws cloudwatch set-alarm-state \ --alarm-name sandbox-for-mute \ --state-value ALARM \ --state-reason 'Testing alarm action without mute'
すると ALARM: "sandbox-for-mute" in Asia Pacific (Tokyo) というメールが届いた📩
AWS Cloud Control Provider (awscc) でミュートルールをデプロイする
AWS Cloud Control Provider (awscc) の awscc_cloudwatch_alarm_mute_rule リソースを使ってミュートルールをデプロイする.schedule で開始時刻と期間を指定できる.今回は検証として 12:15 - 12:30 の時間帯でアラートを抑制する🕐️
resource "awscc_cloudwatch_alarm_mute_rule" "maintenance" { name = "maintenance" description = "Maintenance schedule for mute" rule = { schedule = { expression = "at(2026-03-03T12:15)" duration = "PT15M" timezone = "Asia/Tokyo" } } mute_targets = { alarm_names = [aws_cloudwatch_metric_alarm.sandbox.alarm_name] } }
期待通りにミュートルールをデプロイできた👌

もう一度 Amazon CloudWatch Alarm を発火させる
今度は設定した時間帯でアラートを発火する🔥
$ aws cloudwatch set-alarm-state \ --alarm-name sandbox-for-mute \ --state-value ALARM \ --state-reason 'Testing alarm action with mute'
すると今度はメールは届かず,マネジメントコンソールでも「アラーム状態」と「ミュート時間帯」が重なるようになっていた.

ちなみに「アクション履歴」を見たら以下のようなメッセージが出ていた💡
Successfully muted the alarm action arn:aws:sns:ap-northeast-1:000000000000:sandbox-alarms with the one-time alarm mute arn:aws:cloudwatch:ap-northeast-1:000000000000:alarm-mute-rule:maintenance.
まとめ
マネジメントコンソールのメニューにある「クイックミュート」を使えばワンクリックで一時的なミュートルールを追加できて便利だけど,計画メンテナンスや周期性のあるイベントの場合は Terraform などでミュートルールを管理したくなると思う.現状では AWS Cloud Control Provider (awscc) でサポートされていて,Terraform AWS Provider はもう少し待ちという感じ❗️
X ポスト
CloudWatch Alarm の「ミュートルール機能」を試してるけど良さそう👏今まではアラーム自体を有効/無効にしないといけなかったし
— カック (@kakakakakku) 2026年2月23日
AWS CloudWatch Alarm Mute Rules eliminate alert fatiguehttps://t.co/8g6ebmS3Ye