🐙

[CDK For Terraform]Cloudwatch Alarm の設定をcsvで管理する

2024/04/22に公開

コナン映画面白かったです。毎年の楽しみになりつつありますね。

はじめに

監視設計設定やってますか?
監視設計設定は一度実施したら終わりではなく、サービスの状況を鑑みて継続的に設定を見直す必要があります。
ただ、監視設定を手動で行うのは苦行の道、、以前TerraformでCloudwatch Alarmの設定を
実装したことあるのですが、Alarmの設定が多くなるとhclファイルの記述が膨大になってしまい
運用体験がよくありませんでした。

そのため、設定をcsvで管理し、一括で設定を反映できるCDKTFのツール実装しました。

想定対象者

  • Cloudwatch Alarm の設定を一元管理したい方

なのでサービスをプロビジョニングしたら、Cloudwatch Alarm の設定も自動的に
行うようしているイケてる運用している人には向かないかもしれませんw

事前準備

  • cdktf のインストール
brew install cdktf
  • 対象のAWSアカウントにてProfile設定済であること

対象リポジトリ

尚、通知方式はChatbot + Slackで固定しています。

をラッパーしているツールに近いですね。

実装ポイント

Chatbotの設定がTerraformで対応していない

2024/04/21時点では、TerraformがChatbotのリソースをサポートしていないため、
Cloudformationを実行するようにしています。

元々はAWS SDK GOがChatbotをサポートしていなかったため
開発が進んでいなかったようですが、最近サポートされたみたいで、
そのうちサポートされるのではないかと期待しています。

csv形式で読み込むためPapa Parseライブラリを追加

ヘッダーの制御もパラメータで指定できるので、便利でした。

dimensionsの値はObject型で設定する

そのままStringで渡すとエラーになってしまうので
Object型に変換する処理をしています。

https://github.com/Myabaou/cdktf-cwalarm/blob/afc97a3e76809d78566a1616b538d19146d0128e/main.ts#L138-L141

まとめ

Cloudwatch Alarmの設定をcsvで管理する方法の紹介でした。
GitHubで差分確認時は行単位の差分表示になってしまい、値の変更だけなどの
差分がわかりにくくなってしまうというデメリットはあります。
ただ、既存の監視設定がcsvファイルで一元管理かつ後で設定を見直すときに
何の監視設定がされているのかわかりやすくなり、フィルタやソートも可能で個人的には管理しやすいと感じています。

Goals Tech Blog

Discussion