データベース運用・管理

リードレプリカ りーどれぷりか

リードレプリカレプリケーション読み取り分散マスター・スレーブスケールアウト高可用性
リードレプリカって何のために作るの?

簡単に言うとこんな感じ!

リードレプリカは「読み取り専用のDBコピー」を作って、検索や集計の重い処理をそっちに振ることで、メインDBへの負荷を減らす仕組みだよ!「書き込み専用のサーバー」と「読み取り専用のサーバー」に仕事を分けて、全体のパフォーマンスを上げるんだ。


リードレプリカとは

リードレプリカ(Read Replica) とは、メインのデータベース(プライマリ / マスター)と同じデータを持つ読み取り専用のコピーDBです。レプリケーション機能を使ってプライマリの変更をリアルタイムに反映しながら、SELECT(読み取り)専用のクエリをリードレプリカに分散させます。


構成図

アプリケーション
    ├─ 書き込み(INSERT/UPDATE/DELETE) → プライマリDB
    └─ 読み取り(SELECT)              → リードレプリカ × N台
                                              ↑ レプリケーションで同期

プライマリとリードレプリカの役割

役割プライマリリードレプリカ
書き込み(INSERT/UPDATE)
読み取り(SELECT)◎(専用)
フェイルオーバー障害時にレプリカが昇格プライマリに昇格可能

リードレプリカの注意点

  • レプリケーション遅延(Lag):プライマリとレプリカの間に数ミリ〜数秒の遅延が発生することがある。書き込んだ直後の読み取りで古いデータが返る場合がある
  • 結果整合性(Eventual Consistency):レプリカのデータは最終的にはプライマリと一致するが、瞬間的には古い可能性がある

クラウドサービスでのリードレプリカ

サービス対応
Amazon RDSリードレプリカ機能(最大15台)
Azure SQL Databaseジオレプリカ
Google Cloud SQLリードレプリカ
Supabaseリードレプリカ(Postgres)

歴史と背景

  • 2000年代:MySQLのマスター・スレーブレプリケーションが普及
  • 2010年代:クラウドDBサービスでリードレプリカがマネージドサービスとして提供開始
  • 現在:マルチリージョン展開での地理的分散にも活用

関連用語