RDSのマルチAZを使えば冗長化させることは可能です。バックグラウンドで2台が動いていて自動的に同期を行ってくれるのでデータの欠損が発生する可能性は低いです。スレーブ側のインスタンスは管理者が管理してくれているので利用者が意識する必要はありません。
マルチAZ
複数のアベイラビリティゾーンに跨ってマスタとスレーブを分けて構築することで耐障害性を高めています。マスタとスレーブはレプリケーションしたものを使います。通常時はマスタ側を使用して何か障害が発生した場合は、IPアドレスを自動で切り替えてスレーブを使用します。(アプリ側で何か設定する必要がないです。)
マルチAZを有効化する。
RDSを開いて「マルチAZ」を有効化します。これだけでDBがマスタとスレーブ構成になり冗長化されます。
マルチAZの注意点
設定は簡単ですが、マルチAZにすることで2台分の料金がかかってしまいます。しかも、RDSは他のサービスに比べて料金が割高になっています。実務で使うのでないのであればお金が無駄になってしまうので必ずマルチAZは無効に戻しておきましょう。
リードレプリカの活用事例
RDSのリードレプリカは非常に柔軟です。
リードレプリカ
トランザクションログを利用したマスタと同期された読み込み専用のRDSインスタンスを起動することです。アプリケーションからの読み込みをリードレプリカの方を使うことによって、DBの負荷を下げたり高速に読み込むことが可能にします。最大5台(Auroraは15台)用意できます。
マルチAZでの活用
別々のAZにマスタとスレーブをそれぞれ用意してそれぞれデプロイします。マスタもスレーブもそれぞれ同じトランザクションログからそれぞれリードレプリカを生成します。
マルチリージョンでの活用
別々のリージョンにリードレプリカを生成します。
異なるタイプ
レプリカのサイズを変動させることで適切な形にコントロールできます。
別のDBとして昇格させる。
レプリカへのRead/Write
MySQLとMariaDBのみ
レプリカのカスケード
レプリカをカスケードすることでリージョン間のデータ転送コストを削減できます。
カスケードレイプケーションとは?
レプリカから別のレプリカへと多段で非同期にレプリケーションする仕組みです。レプリカの参照速度を大幅に向上できます。
対応DB
MySQLとMariaDBのみでしたが、PostgreSQLも14.1から使えるようになりました。
この記事へのコメントはありません。