分散システムとは?仕組みや種類、メリット・デメリットを解説|サイバーセキュリティ.com

分散システムとは?仕組みや種類、メリット・デメリットを解説



複数のコンピュータをネットワークで接続して稼働させるシステムのことを「分散システム(distributed systems)」といいます。1台のコンピュータを独立させて使用する時と比べて、高い安定性を保ち、負荷も分散させることができるなど、分散システムにはいくつかのメリットがあります。

今回は分散システムの概要と仕組み、種類、メリット・デメリット、そしてセキュリティ対策などについて解説します。

分散システムとは

分散システムとは、ネットワークで接続された複数のコンピュータから構成されるシステムのことです。複数のコンピュータに作業を分担させて稼働させることで、各コンピュータにかかる負荷を分散させることができ、安定した処理をさせることが可能です。

分散システムの仕組み

分散システムはミクロな視点で見ると、複数の独立したコンピュータがネットワークで接続されたように見えますが、外部からマクロな視点で見ると、1つの高性能なコンピュータのように見えます。実際には複数のコンピュータで処理を分散させていますが、外部からはそのようには見えません。

現在はインターネット回線を利用した分散システムが普及しています。特にクライアントサーバーシステムは代表的です。クライアントはサーバーに対して様々な処理をリクエストし、サーバーはリクエストされた処理を行い、クライアントに結果を返却します。

具体例:処理を分担する仕組み

例えば、1本の動画を完成させるレンダリング処理を考えてみましょう。この処理を管理するアプリケーションが、動画の各フレームを12台の異なるコンピュータにそれぞれ割り当て、各コンピュータが担当分のレンダリングを行います。すべてのフレームの処理が完了すると、それらがつなぎ合わされて1本の動画が完成します。1台のコンピュータで処理すれば数日かかるような作業も、多数のコンピュータに分散させることで数分で終えることができます。

分散システムの種類

垂直型分散システム

複数のコンピュータに上下関係を持たせて配置する分散システムです。それぞれのコンピュータは異なる処理を実行します。本社に大きなコンピュータを用意して複数の支店にある小型のコンピュータを接続する形態や、クライアントサーバーシステムは代表的な垂直型分散システムの例です。

水平型分散システム

同じ処理能力を持つ複数のコンピュータを対等に接続させる分散システムです。1つの大きな処理を分散させることで負荷を平均化させる「水平負荷分散システム」や、複数の機能を分散させて1つのコンピュータに1つの機能を処理させる「水平機能分散システム」があります。分散データベース(複数のデータベースをネットワークで接続し、1つのデータベースのように扱う仕組み)は、水平型分散システムの代表例です。

自律分散システム

垂直型・水平型に加え、近年注目されているのが自律分散システムです。中央となる大型コンピュータを持たず、それぞれの端末が自律的に判断・稼働しながら、全体として1つのシステムとして機能します。一部の端末にトラブルが発生してもシステム全体への影響が小さく、信頼性の高いシステムとして評価されています。

代表例としては、参加者同士でネットワーク上に同じ台帳を管理・共有する「ブロックチェーン」や、特定の管理者を持たずに自律的なネットワークが連携して稼働している「インターネットそのもの」が挙げられます。

分散システムのメリット

分散システムには以下の3つのメリットがあります。

負荷分散

複数のコンピュータで処理を分担させるため、1つ1つのコンピュータにかかる負荷を分散させることができます。その結果、1台のコンピュータを利用する時より、高速な処理が可能で、1台のコンピュータでは手に負えない処理も実行できます。

故障・障害に強い

分散システムを構築している1つのコンピュータに故障や障害が発生しても、他のコンピュータで処理を継続できるため、システム全体がダウンすることがありません。分散システムを構築しているコンピュータの数が多いほど、1台のコンピュータの故障の影響範囲が少なくなり、故障したコンピュータだけピンポイントで修復すれば、元の分散システムとして処理が再開できます。

低コスト

分散システムで使われるコンピュータの1つ1つは低価格で、それほど性能が高くないコンピュータです。また分散システムに必要な処理スピードや機能に応じて、自由にコンピュータを追加したり削除したりできます。そのため柔軟にシステムのカスタマイズが可能となるため、結果として大型コンピュータを導入するより、コストが低くなります。

分散システムのデメリット

分散システムにはメリットもありますが、以下のようなデメリットも含まれます。

管理が複雑

分散システムでは複数のコンピュータを管理しなければならないため、管理が複雑になります。ソフトウェアやOSのアップデートも全てのコンピュータが対象となるため、かなり時間がかかります。さらにトラブル発生時には、どのコンピュータで障害が発生しているのか、全てのコンピュータをチェックしなければならないため時間も必要です。

セキュリティ対策が難しい

分散システムでは管理しているコンピュータ全てにセキュリティ対策が必要です。またコンピュータだけでなくネットワーク内にファイアウォールなどの機器の設置も必要です。そのため分散システム全体では1台のコンピュータにセキュリティ対策を施す場合より、コストもかかり難易度も上がります。

分散システムで求められるセキュリティ対策

分散システムは、ネットワークを利用して複数のコンピュータを接続しています。そのため、各コンピュータに対して個別のセキュリティ対策を施すだけでなく、接続に使用しているネットワーク回線に対するセキュリティ対策が必要です。

セキュアチャネルとSSLによる通信の保護

ネットワーク回線にセキュリティを確保する概念のことを、セキュアチャネルと言います。セキュアチャネルは、分散システムを構築しているコンピュータ同士の1つの通信について、受信者と送信者の2つの役割に分けて、通信された情報の盗聴や改ざんから保護することを目的としています。特にネットワーク回線としてインターネットを使用する場合、暗号化プロトコルであるSSLが最も使われています。

認証(公開鍵暗号)による正規通信相手の確認

正規の通信相手と通信しているかどうか確認する手段として、認証も必要です。認証は暗号化とセットで用いることが望ましく、セキュアチャネルとしては公開鍵暗号が使用されることが多いです。

単一ノード侵害からの横展開リスクへの備え

分散システムはノードの数が多いほど、攻撃者に狙われる箇所(攻撃対象領域)も広くなります。1台のノードが侵害されると、そこを足がかりに他のノードへ被害が拡大する「横展開」のリスクがある点も、分散システム特有の注意点です。ノードごとにアクセス権限を必要最小限に分離しておく、侵害されたノードを迅速に切り離せる仕組みを整えておくといった対策が重要になります。

先ほども紹介したように、分散システムではスタンドアロンのシステムと比べて、一般的にセキュリティ対策は困難です。だからと言って過剰なセキュリティ対策を施してしまうと、ユーザーの利便性を損なう結果となってしまいます。そのためバランスの取れたセキュリティ対策を施すことが重要となってきます。

分散システムと集中システムの違い

分散システムが複数のコンピュータをネットワークで接続するシステムであることに対して、中央に1台の大型コンピュータを設置して全ての処理を集中させるのが「集中システム(Centralized Systems)」です。中央にある大型のコンピュータは「メインフレーム」と呼ばれます。メインフレームにはデータの入出力だけを行う端末が接続されており、ユーザーはその端末の操作のみを行います。

集中システムの場合、分散システムと比べて、管理やセキュリティ対策は簡便で信頼性が高いのが特徴です。しかしひとたびメインフレームに障害が発生すると、全ての業務が停止するだけでなく、復旧にも多くの時間を要します。現在はインターネットの普及にともない、一部のシステムを除いて、低コストで導入できる分散システムが主流となっています。

まとめ

分散システムは現在、低コストで障害に強いという特徴があり、様々なシステムで使われています。垂直型・水平型に加え、ブロックチェーンやインターネット自体に代表される自律分散システムも広く普及しています。

一方で、ノードの数が多いほど管理やセキュリティ対策は複雑になります。セキュアチャネルやSSL、認証による保護に加え、単一ノードの侵害が全体に広がらないような権限分離の設計まで含めて考えることが、安全な分散システムの運用には欠かせません。

SNSでもご購読できます。