AI活用の教科書

レプリケーション

Replicationれぷりけーしょん

ひとことで言うと

データベースの複製を別のサーバーに保ち続け、故障や負荷に備えるしくみです。

📖 もうちょい詳しく

何が新しいの?

レプリケーションは、データベース(データをためておく入れ物)の複製を、別のサーバーにつくって持ち続けるしくみです。
サーバーは機械なので、いつかは壊れます。1か所にしかデータがないと、そこが止まった瞬間にサービス全体が止まってしまいます。そこで「同じ中身をもう1つ別の場所に用意しておこう」という考え方が、レプリケーションです。新しい技術というより、止まらないサービスを支えるための定番のしくみです。

どうやって動いてるの?

ふつうは、書き込みを受け付ける「主(マスター)」と、その複製を受け取る「副(レプリカ)」に役割を分けます。
主のデータが更新されると、その変更内容が副へ次々と送られ、副も同じ状態に追いつきます。送る方法には、すぐ反映するやり方と、少し遅れて反映するやり方があり、後者では一瞬だけ中身がずれることもあります。これを「遅延(ちえん)」と呼びます。

何ができるの?

まず、主が壊れても副に切り替えてサービスを続けられます。これが故障への備え(冗長化)です。
さらに、読み取り(データを見るだけの操作)を副に振り分ければ、主の負担を減らせます。これが負荷分散です。アクセスが集中するサービスでは、副を何台か用意して「見るだけの問い合わせ」を分担させることがよくあります。

🌱 身近なたとえ

大事なノートを、つねに同じ内容で書き写したコピーで例えると分かりやすいです。
本物のノートに何か書き足すたびに、すぐ隣のコピーにも同じことを書き写しておきます。もし本物を失くしても、コピーがあれば困りません。さらに、誰かに「中身を見せて」と頼まれたときは、本物ではなくコピーを見せれば、本物に書き込む作業のじゃまになりません。レプリケーションも、この「書き写したコピーを持っておく」考え方と同じです。

✅ まず覚えるポイント

  • レプリケーションは、データベースの複製を別サーバーに保ち続けるしくみ
  • 「主(書き込み役)」と「副(複製を持つ役)」に分けることが多い
  • 主が壊れても副に切り替えてサービスを続けられる(冗長化)
  • 読み取りを副に振り分ければ、負荷を分散できる
  • 反映に少し遅れが出て、一瞬だけ中身がずれることがある

🧭 よくある勘違い

レプリケーションがあれば、バックアップはいらないの?

そうとは限りません。
レプリケーションは「今の状態」を複製し続けるので、もし主で誤ってデータを消すと、その削除も副にそのまま伝わってしまいます。過去の状態に戻したいときには向きません。ある時点の状態を別に保存しておくバックアップとは、役割が違うものだと考えてください。

副はいつも主とまったく同じ中身なの?

少しだけずれることがあります。
変更を主から副へ送るのに、ごくわずかな時間がかかるためです。書き込んだ直後に副を見ると、まだ反映されていない、ということが起こりえます。すぐに一致させたい場面では、反映を待ち合わせる方式を選ぶこともあります。

🧩 関連して覚えると楽な言葉

  • RDB: 表でデータを管理するデータベース。レプリケーションの対象になることが多い
  • ロードバランサー: アクセスを複数のサーバーに振り分ける装置。副への読み取り分散も考え方は同じ
  • バックアップ: ある時点の状態を別に保存すること。レプリケーションとは役割が違う
  • 高可用性: 一部が壊れても止まらず使える度合い。レプリケーションで高められる

🏁 ひとことでまとめ

レプリケーションは、同じ中身のデータベースを別の場所にもう1つ持ち続けるしくみです。
書き写したコピーを手元に置いておくのと同じで、片方が止まっても困らず、見るだけの問い合わせはコピーに任せて全体を軽くできるのです。