サーバーの構成について調べていると、「クラスタリング」という言葉を目にすることがあります。
この記事では、クラスタリングについて、次の内容を身近な例でわかりやすく説明します。
- クラスタリングの意味
- クラスタリングの代表的な使い方
クラスタリングとは?

クラスタリングとは、複数のコンピューターやサーバーをネットワークでつなぎ、連携して1つのシステムとして働かせる技術や仕組みです。
複数のサーバーがチームを組んで1つのサービスや処理を支え、クライアント(サービスを利用する側)からは、あたかも1台のマシンのように利用できるようにします。例えば、共通の接続先を用意することで、クライアントは裏側のどのサーバーが処理を担当しているかを意識せずに利用できます。
ネットショップを例に考えてみましょう。1台のサーバーで動かしている場合、そのサーバーが故障すると、お店のWebサイトが利用できなくなる可能性があります。
そこで、複数のサーバーを連携させ、故障時には別のサーバーが処理を引き継ぐ構成にします。利用者は、裏側でサーバーが切り替わっても、同じ接続先からネットショップを利用できます。これがクラスタリングの使い方の1つです。
このように連携するコンピューターのまとまりを「クラスター」、構成する各コンピューターを「ノード」と呼びます。
データ分析でも「クラスタリング」という言葉を使います。そちらは「似た特徴を持つデータをグループに分けること」で、この記事で説明したサーバーのクラスタリングとは意味が異なります。
クラスタリングの代表的な使い方
クラスタリングは、目的に応じてサーバーの協力の仕方が変わります。代表的な使い方として、故障時の引き継ぎ、アクセスの分散、大きな計算の分担があります。
1. 故障したサーバーの処理を別のサーバーが引き継ぐ
これは、サーバーに障害が起きても、サービスを続けやすくするための使い方です。
例えば、通常はサーバーAで会社の業務システムを動かし、サーバーBを待機させておきます。Aに障害が起きたら、Bへ処理を切り替えます。
このように、障害時に別のサーバーへ処理を切り替えることを「フェイルオーバー」といいます。
こうした仕組みを使い、サービスを利用できる状態を保ちやすくする構成が「HAクラスター」です。HAは「High Availability」の略で、日本語では「高可用性」といいます。
切り替え中に一時的に利用できなくなる場合もあります。「クラスタリングすれば、必ず一瞬も止まらない」という意味ではありません。
2. 複数のサーバーでアクセスを分担する
これは、アクセスを複数のサーバーへ振り分け、1台に負担が集中するのを防ぐ使い方です。
例えば、ネットショップに多くの人がアクセスしたとき、サーバーAとサーバーBで利用者からのリクエストを分担します。このように処理の負担を分けることを「負荷分散」といいます。
Webサイトでは、アクセスの振り分け役として「ロードバランサー」という装置やソフトウェアを使う構成があります。
「負荷分散」と「クラスタリング」は同じ意味ではありません。
負荷分散は処理を振り分ける仕組みであり、クラスタリングは複数のサーバーを連携させる仕組みです。目的に合わせて組み合わせて使われます。
3. 大きな計算を複数のコンピューターで分担する
これは、時間のかかる計算を分割し、複数のコンピューターで協力して処理する使い方です。
例えば、気象シミュレーションなどの大規模な計算では、計算の一部をそれぞれのコンピューターに担当させ、結果を組み合わせます。
コンピューターを2台にすれば、どんな処理でも必ず2倍の速さになるわけではありません。
処理を分担できるように作られたプログラムや、コンピューター同士の通信などを考慮した仕組みが必要です。
本記事のまとめ
この記事では、クラスタリングの「意味」と「代表的な使い方」を説明しました。
- クラスタリングは、複数のコンピューターを連携させ、1つのシステムとして働かせる技術・仕組みである。
- 「1台のように動く」とは、裏側の複数台を細かく意識せず、1つのシステムとして利用できるという意味である。
- 障害時の引き継ぎや処理の分担など、目的によって協力の仕方が異なる。
- ネットワークにつなぐだけでは実現せず、連携するためのソフトウェアや設定が必要になる。
お読みいただきありがとうございました。