シャーディング
Sharding/しゃーでぃんぐ
ひとことで言うと
巨大なデータを複数のサーバーに分けて保管し、規模と速さを伸ばす手法です。
📖 もうちょい詳しく
何が新しいの?
サービスの利用者が増えると、データの量も一気にふくらみます。1台のサーバーにすべてを詰め込むと、保管できる量にも、同時にさばける処理の数にも限界が来ます。そこで「データそのものを分けて、複数のサーバーに散らして持つ」という考え方が生まれました。それがシャーディングです。
どうやって動いてるの?
データを「シャード」と呼ばれる小さなかたまりに分け、それぞれを別のサーバーに保管します。どのデータをどのサーバーに置くかは、たとえば利用者IDの範囲や、IDを一定のルールで計算した結果(ハッシュ)で決めることが多いです。読み書きのときは、そのルールをもとに「目的のデータがいる1台」だけを探しに行きます。
何ができるの?
サーバーを増やすほど、保管できる量と同時にさばける処理が増えていきます。利用者が10倍になっても、台数を足して負荷を分け合えるので、応答の速さを保ちやすくなります。大規模なSNSやゲーム、ECサイトの裏側でよく使われています。
🌱 身近なたとえ
大きな図書館で例えると、すべての本を1つの棚に積むと取り出すのが大変です。そこで「あ行は1番の棚、か行は2番の棚」と分けておくと、探す範囲がぐっと狭まります。シャーディングも同じで、データを決まったルールで棚(サーバー)に振り分け、必要な棚だけを見に行く仕組みです。
✅ まず覚えるポイント
- データそのものを分割して、複数のサーバーに散らす手法です
- 分けたかたまりを「シャード」と呼びます
- IDの範囲やハッシュ計算で、置き場所のルールを決めます
- 台数を増やすほど、容量と処理能力を伸ばしやすくなります
- 大規模サービスの裏側で広く使われています
🧭 よくある勘違い
コピーをたくさん作ること?
いいえ、それは別の手法です。同じデータの複製をいくつも持つのは「レプリケーション」と呼ばれ、主に故障への備えや読み取りの分散に使います。シャーディングは複製ではなく、データを「分けて」別々の場所に置く点が違います。
入れれば速くなる魔法?
万能ではありません。複数のシャードにまたがる集計や検索は、あちこちの棚を見に行く必要があって、かえって複雑になることがあります。一度決めた分け方を後から変えるのも手間がかかるため、設計の段階で慎重に選ぶことが多いです。
🧩 関連して覚えると楽な言葉
- リレーショナルデータベース: データを表の形でためて、表どうしの関係でつなぐ仕組み。シャーディングはその拡張手段の1つです
- レプリケーション: 同じデータの複製を複数持つこと。分割するシャーディングとは目的が違います
- ロードバランサー: アクセスを複数のサーバーに振り分けて負荷を分散する仕組み
- インデックス: 目的のデータを速く見つけるための索引。検索を速くする仕組みです
🏁 ひとことでまとめ
データを棚に振り分けるように分割し、台数を足して規模と速さを伸ばす考え方です。
TERM SEARCH
ほかの用語を調べる
検索ボックスを準備中…