はじめに
RDSはこの記事を執筆時点で、7日間以上継続的に停止することができない。
調べると、この制約を回避して停止し続けるためにLambdaとCloudWatchEventsを利用する方法が以下のようにいくつか見つかるが、業務で複数のAWSアカウント利用する状況があり、個別にこの設定を入れるのは非常に面倒だと感じた。
https://dev.classmethod.jp/cloud/aws/rds-auto-stop-start/
https://qiita.com/skyzt/items/1f971baaf915b1b90e89
https://qiita.com/aoi1/items/fe0caaedb036ab79773a
そこで、これらの設定を一発で行えるようにServerlessFrameworkを利用して設定を構築できるようにした。
ポイント
停止するRDSをDB識別子やインスタンスIDで指定する設定だとその都度LambdaFunctionのコードをいじったり、もしくは環境変数を設定したりするフローが目に浮かんだので、所定のタグが設定されているリソースを毎日停止するという仕組みを採用した。
おわりに
タグを設定するだけで、RDSがどんどん停止できるので気持ちが良い。
うん、すごく気持ちがいい。
。。。ということでRDSを停止したくてたまらない方ぜひ使ってください。