ロードバランサー(Load Balancer)とは、多数のアクセス(負荷)を複数のサーバーへ振り分けて、1台に負担が集中しないように調整する仕組み・装置のことです。英語のLoad(負荷)とBalance(つり合い)を組み合わせた言葉で、日本語では「負荷分散装置」とも呼ばれます。
現実世界でいえば、行列を複数のレジへ案内するスーパーの案内係のような存在です。お客さん(アクセス)が一つのレジに殺到しないように、「こちらの空いているレジへどうぞ」と振り分けます。おかげで、どのレジも混みすぎず、全体をスムーズにさばくことができます。
ロードバランサーの仕組み
利用者からのアクセスは、まずロードバランサーがまとめて受け取ります。ロードバランサーは、後ろに並ぶ複数のサーバーの中から適切な1台を選び、そこへリクエストを渡します。利用者からは、あたかも1台のサーバーとやり取りしているように見えますが、実際には裏側で複数台が手分けして処理しています。
負荷を分散するメリット
アクセスを分けることで、サービス全体の安定性と性能が高まります。
- アクセス集中に強くなる
大量のアクセスを複数台で分担するため、1台がパンクするのを防げます。 - 止まりにくくなる(可用性)
1台が故障しても、残りのサーバーに振り分けを続けることで、サービスを止めずに済みます。 - 拡張しやすい
アクセスが増えたら、後ろにサーバーを追加するだけで処理能力を増やせます。 - メンテナンスしやすい
1台ずつ切り離して作業できるため、サービスを止めずに更新や点検ができます。
振り分け方式(アルゴリズム)
ロードバランサーがどのサーバーへ振り分けるかには、いくつかの方式があります。
| 方式 | 振り分けの考え方 |
|---|---|
| ラウンドロビン | 順番に1台ずつ、均等に割り当てていくシンプルな方式。 |
| 最小接続数 | その時点で接続数が最も少ない(=空いている)サーバーへ割り当てる方式。 |
| 重み付け | 性能の高いサーバーに多く割り当てるなど、サーバーごとに配分を変える方式。 |
ヘルスチェック
ロードバランサーは、後ろのサーバーが正常に動いているかを定期的に確認しています。これをヘルスチェックといいます。応答しないサーバーを見つけると、そのサーバーへの振り分けを一時的にやめ、正常なサーバーだけにアクセスを流します。これにより、故障した1台の影響が利用者に及ばないようにしています。
ロードバランサーの種類
実現方法によって、専用の機器を使う「ハードウェア型」と、ソフトウェアで実現する「ソフトウェア型」があります。近年はクラウド上でサービスとして提供されるものも一般的で、Nginxなどのソフトをリバースプロキシとして使い、負荷分散を担わせることも広く行われています。

コメント