【Terraform】CloudWatch Alarm の「欠落データの処理」を設定

2024/05/16に公開

はじめに

こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。

この記事では、Terraformを使ってECSの欠落データ処理を設定する方法について学んだことを共有します。

CloudWatch Metric Alarmの設定

CloudWatch Metric Alarmは、指定されたメトリクスが閾値を超えた場合に通知を送信する設定を行います。以下は、ECSのPendingTaskCountメトリクスに対するアラームを設定するTerraformコードの例です。

resource "aws_cloudwatch_metric_alarm" "ecs_throttling_alarm" {
  ・
    ・
    ・
  treat_missing_data  = "missing" # 欠落データを無視
    ・
    ・
    ・
}

上記のコードでは、treat_missing_data パラメータを "missing" に設定しています。

この設定により、アラーム評価範囲内のすべてのデータポイントが欠落している場合、アラームは INSUFFICIENT_DATA 状態に遷移します。

treat_missing_data のオプション

treat_missing_data パラメータは、欠落データが発生した場合の処理方法を指定します。以下のオプションがあります:

1. notBreaching: 欠落データを良好とみなす場合に使用します。アラームが閾値を超えていると見なされず、ALARM 状態には遷移しません。

2. breaching: 欠落データを悪いとみなす場合に使用します。アラームが閾値を超えていると見なされ、ALARM 状態に遷移します。

3. ignore: 欠落データが発生しても現在のアラーム状態を維持したい場合に使用します。

4. missing: アラーム評価範囲内のすべてのデータポイントが欠落している場合、アラームは INSUFFICIENT_DATA 状態に遷移します。

treat_missing_data が未指定の場合

treat_missing_data が未指定であると、欠落データの扱いが不明確になるため、アラームが正確に機能しない可能性があります。

データが欠落しているために、閾値を超えているかどうかの判定ができず、監視対象のステータスを ALARM 状態に遷移させることができなくなります。

参考

https://gkzz.dev/posts/metric-alarms-by-multiple-dimensions/

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-states

最後に

ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉

noteでも記事を執筆していますので、ぜひチェックしてみてください。
https://note.com/take_lifelog/n/n58df7ce7af6f

他にもこのようなことについて記載しているのでお読みいただければ幸いです。

https://zenn.dev/take_tech/articles/275e5f4242973d

https://zenn.dev/take_tech/articles/374817f256ec9d

最後までお読みいただき、誠にありがとうございました!

Discussion