【ぶんさんしすてむ】

分散システム とは?

公開:
💡 複数のコンピュータが力を合わせて「1つの仕事」をこなす仕組み

複数の独立したコンピュータがネットワークで連携し、あたかも1つのシステムのように動作する仕組み。

📌 このページのポイント
分散システムのノード連携 Node A Node B Node C Node D メッセージ 複数の独立したノードがネットワークで連携し、1つのシステムのように動く
分散システムのイメージ
ひよこ ひよこ
分散システムって具体的にどんなもの?
ペンギン先生 ペンギン先生
例えばGoogle検索やAmazonのショッピングサイトの裏側は、何千台ものサーバーが連携して動いているよ。ユーザーからは1つのサービスに見えるけど、実際には複数の独立したコンピュータが役割分担しながら協力しているんだ
ひよこ ひよこ
なんで1台の高性能なコンピュータでやらないの?
ペンギン先生 ペンギン先生
1台にはどうしても限界があるからだよ。処理能力にも上限があるし、その1台が壊れたらサービス全体が止まってしまう。複数台に分散させれば、性能をスケールさせやすいし、一部が故障しても他が代わりに動ける
ひよこ ひよこ
でも複数のコンピュータをまとめるのって難しくないの?
ペンギン先生 ペンギン先生
すごく難しいよ。ネットワーク越しの通信には遅延があるし、途中でメッセージが届かなかったり、ノードが突然落ちたりすることもある。「ネットワークは信頼できない」という前提で設計しないといけないんだ
ひよこ ひよこ
みんなの意見がバラバラになったりしないの?
ペンギン先生 ペンギン先生
まさにそれが分散システムの大きな課題で、合意形成の問題と呼ばれているよ。複数のノードが同じ状態を認識できるように、Paxosやraftといった合意アルゴリズムが使われるんだ
ひよこ ひよこ
分散システムを設計するときに一番大事な考え方って何?
ペンギン先生 ペンギン先生
部分的な障害は必ず起きるという前提を持つことだね。CAP定理が示すように、一貫性・可用性・分断耐性を同時に完璧には満たせない。だからこそ、自分のシステムでは何を優先するかを明確にして設計することが重要なんだよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「分散システム」って出てきたら「複数のコンピュータが連携して1つのシステムのように動く仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Distributed System」 = 分散システム
💬 Distributed(分散した)+ System(系・仕組み)。1台に集中させず複数のコンピュータに処理を分けるのが特徴だよ
← 用語集にもどる