🐉

Aurora Autoscaleのリードレプリカに任意のタグを自動で付与する

2022/06/09に公開

これは何

Event Bridge + Lambda でAurora Autoscaleインスタンスに任意のタグ自動でを付与する方法

Aurora Autoscaleインスタンスに任意のタグを付与したい

Aurora Autoscale設定でリードレプリカにタグを付与したい時ありますよね
しかし、現状スケールするリードレプリカに任意のタグを付与する設定はありませんでした
(2022年6月9日 現在)

仕方がないので、Lambdaとその周りのリソースをServerless Frameworkで作成してみました

構成


Aurora Auto Scaling によって作成されたインスタンスには下記のタグが付与されているため
対象のKeyが付与されているRDSに対して、任意のタグを付与する

Key Value
application-autoscaling:resourceId hoge

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Integrating.AutoScaling.html#Aurora.Integrating.AutoScaling.Concepts.Tagging

事前準備

Serverless Frameworkで実行するのでインストールが必要です
https://serverless.co.jp/blog/25/

手順

1.下記のリポジトリをローカルにクローン
https://github.com/Ryuji-1998/sls_aurora-autoscale-add-tags

2.variable.pyに付与したいタグのKeyとValueを入力

variable.py
key = ""
value = ""

3.デプロイ

$ serverless deploy -v

4.Autoscale台数を増やして任意のタグが付与されているか確認する

5.終わり!

課題点

現在の設定だと「付与したい対象のクラスター」まで対象が絞り込めれず
「Aurora Autoscaleで作成されたリードレプリカ全て」が対象になります

理由としては、最初は RDSイベント通知(SNS) → Lambda にしようかと思ったのですが
SNSのメッセージイベントからでは「add_tags_to_resource」に必要な情報のRDSのarnが上手く取得できずこのような形になりました

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.add_tags_to_resource

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/with-sns.html

Discussion