【れぷりけーしょん】

レプリケーション とは?

💡 データを複数サーバーに「自動で写し続ける」仕組み
📌 このページのポイント
レプリケーション(データベース複製) クライアント (書き込み) INSERT UPDATE プライマリ Master DB 同期 同期 レプリカ1 Replica 1 レプリカ2 Replica 2 クライアント (読み取り) SELECT 書き込み 同期(レプリケーション) 読み取り
レプリケーションの仕組み
ひよこ ひよこ

レプリケーションって何?バックアップと違うの?

ペンギン先生 ペンギン先生

バックアップは定期的にデータをコピーして別の場所に保存する仕組みで、取得した時点のデータしかない。レプリケーションは「リアルタイムでデータを別のサーバー同期し続ける」もので、常に最新のデータが別サーバーにある状態を保つ。

ひよこ ひよこ

プライマリとレプリカって何?

ペンギン先生 ペンギン先生

プライマリ(マスターとも呼ぶ)が書き込みを受け付けるメインのサーバーで、レプリカ(スレーブ)がコピーを持つサーバー。プライマリに書き込みが来たら、その内容がレプリカに自動で転送・反映される。

ひよこ ひよこ

なんで読み込みをレプリカに分散するの?

ペンギン先生 ペンギン先生

データベースへのアクセスって、読み込みが書き込みより圧倒的に多いことが多いんだ。レプリカを増やして「読み込みはレプリカから、書き込みはプライマリに」と振り分けることで、プライマリの負担を減らして全体のスループットを上げられる。

ひよこ ひよこ

「レプリケーションラグ」って問題があるって聞いたんだけど?

ペンギン先生 ペンギン先生

同期レプリケーションだと、プライマリに書き込んだ直後はレプリカにまだ反映されていない「ラグ」が生じるんだ。この間にレプリカを読むと古いデータが返ってくる(「汚れ読み」に近い状態)。負荷が高いときほどラグが大きくなる。これを防ぐには同期レプリケーションにするしかないけど、今度はプライマリの書き込みがレプリカの確認を待つ分、書き込み性能が落ちるトレードオフがある。どちらを選ぶかがシステム設計の重要な判断ポイントなんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
レプリケーション」って出てきたら「データを複数サーバーに自動でコピーして冗長化する仕組みだな」と思えばだいたいOK!
📖 おまけ:英語の意味
「Replication」 = 複製・複写
💬 ラテン語の「replicare(繰り返す・折り返す)」が語源。データを「繰り返し」複数の場所に再現するイメージ
← 用語集にもどる