前回、ec2-schedulerでEC2の定期起動・停止を試してみましたが、今回はRDSで実行してみたいと思います。RDSについてもほぼEC2と同様の設定になります
設定方法
DynamoDBのConfigTableに以下を設定
テーブル名はスタック名+ConfigTableになっています。
ex)
月曜から金曜までの9:00 – 20:00(日本時間)の間だけRDSを起動する設定
configレコード
type | name | use_metrics | default_timezone | regions | schedule_lambda_account | scheduled_services | tagname | trace |
---|---|---|---|---|---|---|---|---|
config | scheduler | true | Asia/Tokyo | { “ap-northeast-1” } | true | { “ec2”, “rds” } | Schedule | false |
scheduled_servicesにrdsを追加します
scheduleレコード
type | name | description | periods | timezone |
---|---|---|---|---|
schedule | rds_stopstart | rds stop start | {“weekday_9to20”} | Asia/Tokyo |
periodレコード
type | name | description | timezone | weekdays | begintime | endtime |
---|---|---|---|---|---|---|
period | weekday_9to20 | Office hours | Asia/Tokyo | {“mon-fri”} | 9:00 | 20:00 |
RDS側にタグを付与
対象のRDSに以下のタグを付与します
動作確認
まず停止状態にしておき、時間が来るまで待ちます
設定した時間内になれば自動的に起動されました
注意点
- RDSクラスターの一部もしくはAuroraはec2-schedulerでは自動起動・停止はできません。
- EC2でも同様ですが、設定時間から起動が開始されているためインスタンスが利用可能となっているわけではないので、利用可能としたい時間にあわせて事前に起動しておく必要があります。
- メンテナンスウィンドウを考慮したスケジュールも可能となっています。詳しくはドキュメントを参照してください。
- 本番で利用する場合は、正常に起動しない場合も想定して監視をするなどの考慮してください。
RDSも停止することが可能になったので、定期的な停止をしてコスト削減を検討してみてはいかがでしょうか。