AWS Lambdaを使ってRDSを起動停止してみた

Pocket

こんにちは!Tamaです!

今回は2017年6月より使用可能になったRDSの停止機能を使ってDBインスタンスを起動・停止するLambda関数を作成したいと思います。
Lambda環境で使用されるAWS SDKのバージョンが上がったことで最新のモジュールをインストールする必要なくRDSの起動停止が利用できるようになりました。

AWS SDKのバージョン確認方法ですが以下のレシピで紹介しています。
AWS Lambdaで使用されるモジュールバージョンの調べ方

Lambda関数の作成

まずは起動用のLambda関数を作成します。

「関数の作成」をクリックします。

設計図の選択では「一から作成」を選択します。

名前と説明を入力します。
今回はPython3.6で実装を行います。

RDS起動のLambda関数のPythonコードは以下になります。
testdbには指定のDBインスタンス識別子を入力します。

ロールは以下のCloudWatchLogsとRDSの起動、停止権限を含んだポリシーを持ったもので実行可能です。

次へ進み内容を確認語「関数の作成」を選択します。
これでRDS起動用のLambda functionが作成できました。

停止中のRDSを起動してみます。
テストをクリックし関数を実行、無事成功しました!

RDSのコンソールからも確認してみます。
ステータスが起動中になり、しばらくすると利用可能に遷移しました!
イベントにもログが残っています。

停止の場合のPythonコードは以下になります。

トリガーにCloudWatch Eventsを指定することでスケジュール起動停止が可能です。
1週間のスケジュールであれば問題ありませんがRDSの停止は7日をすぎると自動で起動してしまうので注意が必要です。

今回は以上になります!
お疲れさまでした!

またお会いしましょう!