Open2
【AWS Aurora】クロスリージョンリードレプリカを夜間停止したい時にやったことを箇条書きしていく
要件
とあるアプリケーションがあって、DBの構成は東京(リージョン別クラスター)と大阪(レプリカクラスター)にそれぞれAuroraクラスターが存在してる。
これらの環境は、夜間使われるものではないので18時以降に停止して翌日の9時までに起動できる仕組みを作りたい。
上記要件の整理
- 夜間停止に伴い、レプリカ側は不要となるため昇格して削除する。
- レプリカ削除後は、東京側のクラスターは一時停止しておいて、翌日起動される設定にする。
- リージョン別クラスターが利用可能な状態になったらレプリカクラスターを再構築する。
ざっくり構成案
- LambdaでPythonのboto3から各サービスの操作を行えば想定している制御が行えそう。
- Eventbridgeのルール、スケジューラーの機能を使ってよしなにLambdaを呼び出せば時間になったら起動させる部分はクリアできそう。
- レプリカが削除されたか、リージョン別クラスターが利用可能になったかの判定はAuroraクラスターやインスタンスが出力してるイベントから拾えるはず。
boto3関連の情報まとめ
RDS
- promote_read_replica_db_cluster(レプリカクラスター昇格)
- modify_db_cluster(削除保護の制御に使う)
- delete_db_cluster(クラスター削除)
- delete_db_instance(インスタンス削除)
- stop_db_cluster(クラスターの停止)
- start_db_cluster(クラスター開始)
- create_db_cluster(クラスター作成(レプリカクラスター作成に使う))
- create_db_cluster(クラスター作成(レプリカクラスター作成に使う))
- create_db_instance(インスタンス作成)