LambdaとEventBridgeを使用してRDSインスタンスを自動停止してみた

LambdaとEventBridgeを使用してRDSインスタンスを自動停止してみた
この記事をシェアする

こんにちは!クラウドビルダーズのFukudaです。

LambdaとEventBridgeを使用してRDSインスタンスを自動停止してみたので、
その手順をブログにしました。

RDSは、インスタンスを停止しても7日で自動的に起動してしまうという仕様があります。
そのため、うっかり停止を忘れると課金が大きくなってしまう恐れが…。
また、毎週手動で停止をするのもちょっと面倒だなということで「RDSの自動停止」をする仕組みを作ってみました。

今回使用したサービス

・IAMロール、IAMポリシー
・Lambda
・EventBridge

今回作った設定

・毎日23時に指定したRDSインスタンスを自動で停止

大まかな手順

①IAMポリシーを作成

・今回は最小限のrds:StopDBInstanceのみで作成

②IAMロールを作成(①で作成したIAMポリシーを使用)

③Lambda関数を作

・先ほど作成したIAMロールを使用

・関数コードを記入(RDSインスタンスが3台あったので、それを記入しました)

・タイムアウトを念のため30秒に変更(デフォルトの3秒だと短すぎてRDSの停止命令が完了しないリスクがあるため)

④EventBridgeでスケジュールを作成

・タイムゾーンはAsia/Tokyoに設定
・スケジュールタイプはcronで毎日23時に設定
・ターゲットに先ほど作成したLambdaを選択

最後に

実務でLambdaを使用したことがなかったため、画面を見るのが新鮮で、関数の保存などに少し戸惑う部分もありましたが、無事設定が完了しました。

これでRDSを手動で停止する必要がなくなり、課金も抑えられるようになりました。

この記事が読んでくださった皆様の少しでも参考になれば嬉しく思います!

ありがとうございました。

この記事をシェアする
著者:Fukuda
2023年7月にAWS未経験で入社。現在は資格取得とAWSの知識を高めるため日々勉強中。