シャーディング・レプリケーションとは?|基本情報技術者試験で押さえる本質をやさしく解説

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

シャーディング・レプリケーションとは(全体像)

どちらも、たくさんのデータや利用者を、複数のサーバーでさばくための分散のしくみだよー。でも役割が違うのー。

身近にたとえると、引っ越しの荷物。シャーディングは「荷物を何台かのトラックに分けて運ぶ」レプリケーションは「大事な書類のコピーを何枚か持っておく」感じだよー。

押さえるのは、「分ける(シャーディング)」と「コピーする(レプリケーション)」は別ものということだよー。


詳しく:分割と複製の違いと分け方だけ覚えれば戦える

ここが記事の心臓部。まず2つの違いを見ていこーね。

シャーディングとレプリケーション

しくみ内容ねらい
シャーディングデータを分けて複数サーバーに置く(分割)たくさんさばく(スケール)
レプリケーション同じデータのコピーを複数持つ(複製)壊れても大丈夫・読み込み分担

ここで一番のひっかけが「シャーディングとレプリケーションは同じ」という誤解。シャーディングは「分割」、レプリケーションは「複製」で、役割が違うよー。

次に、シャーディングの分け方

シャーディングの分け方

方式内容
範囲分散IDの範囲で分ける(かたよると混雑=ホットスポット注意)
ハッシュ分散ハッシュ値で均等に配る(かたよりにくい)
コンシステントハッシングサーバーの追加・削除がしやすい工夫

ここで2つめのひっかけが「範囲分散のほうがハッシュ分散より常に良い」という思い込み。ハッシュ分散は、データのかたより(ホットスポット)を防ぎやすいので、状況によってはそちらが向いているよー。

わかりやすく言い換えると

要するに、引っ越しでイメージするとラクだよー。

シャーディング … 荷物を何台かのトラックに分けて運ぶ(分割)

レプリケーション … 大事な書類のコピーを何枚か持っておく(複製)

ハッシュ分散 … 荷物がどこかに集中しないよう、均等に配る

つまり、「シャーディングは分割・レプリケーションは複製」「ハッシュ分散はかたより回避」、この2点が試験の急所なのー。


試験のツボ

🔴 一番出る:シャーディングとレプリケーションの違い

①シャーディングはデータを分けて複数サーバーに置く(分割・スケール)

②レプリケーションは同じデータのコピーを複数持つ(複製・冗長や読み込み分担)

🔴 次に出る:シャーディングの分け方

①範囲分散はIDの範囲で分ける(かたよると混雑=ホットスポット注意)

②ハッシュ分散は均等に配ってかたよりを防ぐ。コンシステントハッシングは増減がしやすい

🟡 押さえると安定:レプリケーションの方式

①マスタ-スレーブ(主が書き込み・従が読み込みを分担)

②整合性とスケール(性能)のトレードオフがある


よくある間違い

「シャーディングとレプリケーションは同じものである」→ ✗  シャーディングは「分割」、レプリケーションは「複製」。役割が違う。

「範囲分散のほうがハッシュ分散より常に良い」→ ✗  ハッシュ分散はかたより(ホットスポット)を防ぎやすい。状況による。

「レプリケーションはデータを分けて置くことである」→ ✗  レプリケーションはコピーを持つこと。分けるのはシャーディング。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(分割と複製の違い)

📝 オリジナル問題 1 シャーディングとレプリケーションの違い

シャーディングとレプリケーションに関する次の記述のうち、正しいものはどれか。

  1. シャーディングもレプリケーションも、どちらも画面の色を決める設定だとされている
  2. シャーディングとレプリケーションはまったく同じもので、違いはないものだとされている
  3. シャーディングはデータを分けて置く分割、レプリケーションはコピーを持つ複製である
  4. シャーディングはコピーを持つこと、レプリケーションは分けて置くことだとされている
データスラ
データスラ 解答・解説

解答は 3 だよー。

シャーディングはデータを分けて複数サーバーに置く「分割」レプリケーションは同じデータのコピーを持つ「複製」なのー。荷物を分けるのと、書類をコピーするくらい違うよー。

選択肢1の「色を決める設定」、選択肢2の「まったく同じ」、選択肢4の「分割と複製が逆」はどれも誤りなのー。

選択肢判定理由
1色を決める設定ではない
2役割が違う別もの
3分割(シャーディング)と複製(レプリ)
4分割と複製が逆

オリジナル問題2(シャーディングとは)

📝 オリジナル問題 2 シャーディングとは

シャーディングに関する次の記述のうち、正しいものはどれか。

  1. シャーディングは音を鳴らして知らせるための機能のことだとされているものである
  2. シャーディングは大きなデータを複数のサーバーに分けて置く、水平分散のしくみである
  3. シャーディングはデータを必ず暗号化するための命令のことだとされているものである
  4. シャーディングは画面を必ず3つに割って表示する設定のことだとされているものである
データスラ
データスラ 解答・解説

解答は 2 だよー。

シャーディングは、大きなデータを複数のサーバーに分けて置く(水平分散)しくみなのー。1台に集中させず、たくさんさばけるようにするんだよー。

選択肢1の「音を鳴らす」、選択肢3の「暗号化」、選択肢4の「画面を3つに割る」はどれも誤りなのー。

選択肢判定理由
1音を鳴らす機能ではない
2複数サーバーに分けて置く水平分散
3暗号化の命令ではない
4画面を割る設定ではない

オリジナル問題3(分け方)

📝 オリジナル問題 3 シャーディングの分け方

シャーディングの分け方に関する次の記述のうち、正しいものはどれか。

  1. ハッシュ分散はデータを均等に配ってかたより(ホットスポット)を防ぎやすい分け方である
  2. 範囲分散のほうがハッシュ分散よりいつも必ず良く、かたよりも起きないものだとされている
  3. シャーディングの分け方は1種類しかなく、選ぶ必要はまったくないものだとされているものだ
  4. 分け方は画面の明るさで決まるもので、データとは無関係だとされているものである
データスラ
データスラ 解答・解説

解答は 1 だよー。

ハッシュ分散は、ハッシュ値でデータを均等に配って、かたより(ホットスポット)を防ぎやすい分け方なのー。範囲分散はかたよると混雑することがあるから、状況で使い分けるよー。

選択肢2の「範囲分散が常に良い」、選択肢3の「1種類しかない」、選択肢4の「明るさで決まる」はどれも誤りなのー。

選択肢判定理由
1ハッシュ分散は均等でかたより回避
2範囲分散はかたよることがある
3複数の分け方がある
4明るさで決まるのではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る