Open5
RDSちゃんと理解する
AWSのアーキテクチャ解説資料
マルチAZ配置
2種類あるので、要注意。
1️⃣ Multi-AZ DB インスタンス
従来のマルチAZ配置。
すべてのDBエンジンで利用可能。
荒く言うと、
- スタンバイバックアップ専用のレプリカを別の1つのAZに立てておくと
- 同期でレプリケーションをしてくれて
- 障害発生時にフェイルオーバーできる(約60秒)
機能。あくまで、フェイルオーバー目的なので、スタンバイに対して、読み取り操作をしたりはできない。
読み取りを強化したい場合は、別途リードレプリカを配置する。
2️⃣ Multi-AZ DB Cluster
PostgreSQL 、MySQLのみで利用可能な新しい機能。
荒く言うと
- 2つのAZに読み取り操作もできるレプリカを配置しておくと
- DB Engine のネイティブなレプリケーションを利用して、WAL の書き込みの完了までしか待たない準同期レプリケーションをして(早い)
- 障害発生時にフェイルオーバーできる(約30秒)
機能。特に、
- マルチAZ用のインスタンスにも、読み取りアクセスができるようになっている
- DBのネイティブのレプリケーション機能を活用しているので、書き込みが従来より早い
- フェイルオーバー時の復旧がはやい
のが特徴。
ローンチ時の解説記事
比較表
バックアップ
- 自動
- 手動
がある
1️⃣ 自動バックアップ
- 日次でのスナップショット
- 5分ごとのトランザクションログ
をS3に自動収集してくれる。
RDSインスタンスを消してしまうと、自動バックアップも一緒に消えてしまうので、要注意。
(最大35日経っても消える)
マルチAZ配置(or Multi-AZ DB Cluster?)がされていないと、
スナップショット取得時にDBが止まってしまうため、注意。
設定されている場合は、そちらから取得するので影響なし。
2️⃣ 手動バックアップ
スナップショットを任意のタイミングで手動で保存する。
明示的に削除するまでは残り続ける
復元
既存のインスタンスでなく、新規のインスタンスを立ち上げることになる。
自動バックアップの場合は、トランザクションログを利用したポイントインタイムリカバリができる。
(手動の場合は、取得時点に戻るのみ)
Secrets Managerと組み合わせたパスワードのローテーション
1日〜365日の範囲でローテーションできる
RDS側でローテーションを有効化すると、RDSのパスワードを自動的に変更するlambdaが自動作成される仕組みの模様