ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

AWS RDS の Engine と Engine Version を Prometheus 形式で Export する OSS 作った

作った。

github.com

きっかけとしては、1月いっぱいに RDS の upgrade をしろというお達しが AWS からきていた件。

  • 廃止対象の PostgreSQL マイナーバージョン - 9.6.8, 9.6.9, 9.6.11, 9.6.12, 最低限必要な推奨バージョン - 9.6.16

  • 廃止対象の PostgreSQL マイナーバージョン - 10.4, 10.5, 10.6, 10.7, 最低限必要な推奨バージョン - 10.11

  • 廃止対象の PostgreSQL マイナーバージョン - 11.4, 最低限必要な推奨バージョン - 11.6

で、あわててあげたわけだが、結構前から通知がきていた。

このバージョンが Datadog にきていればバージョンによってはアラートをつけたりできなくもない?っていうのが発想。でもまぁ結局その AWS のお達しに気付けなければどれがヤバいか気付けないし、何バージョン離れてたところでやばいとか判断できない気もするが。。。まぁとりあえず送ってみることに。

こんな感じ。

f:id:take_she12:20210128155230p:plain

工夫した点

特にない。。。。。。。。。

go-aws-sdk は EKS の認証するツール書く時に書いたことがあった。

取得するのは以下3つ - Cluster Identifier - Engine - Engine Version

こんな感じになる。

aws_custom_rds_cluster_count{cluster_identifier="postgres-aya-production-a",engine="aurora-postgresql",engine_version="9.6.16"} 1
aws_custom_rds_cluster_count{cluster_identifier="postgres-aya-release-1595371533",engine="aurora-postgresql",engine_version="9.6.16"} 1
aws_custom_rds_cluster_count{cluster_identifier="postgres-aya-report-1611765597",engine="aurora-postgresql",engine_version="9.6.16"} 1
aws_custom_rds_cluster_count{cluster_identifier="postgres-rdev-02-a",engine="aurora-postgresql",engine_version="9.6.16"} 1
aws_custom_rds_cluster_count{cluster_identifier="recommendation-develop-a",engine="aurora-mysql",engine_version="5.7.12"} 1
aws_custom_rds_cluster_count{cluster_identifier="recommendation-edge-a",engine="aurora-mysql",engine_version="5.7.mysql_aurora.2.07.2"}

まぁ現状どのバージョンが残ってるかとかを探しやすくはなるし、どれぐらい残ってるかは見易くはなる気がする。

Deploy

いつものように Kubernetes Deployment として動かすが、AWS へのアクセスが必要。DescribeDBClusters を実行できる必要があるので。

で、IRSA 対応をはじめて手を動かしながらやってみている。

IAM Role 作って serviceaccount と紐づけて、deployment から serviceaccount を参照させる感じ。

おわりに

次回作は aws-ecr-image-scan-findings-prometheus-exporter の予定。ECR の image scan findings の結果を、Severity とかを送る。

木曜金曜はオフなので毎日新作リリースはおやすみ。土曜にでも出そうと思う。