結論: ロードバランサーとは、届いたアクセスを、複数のサーバーへ振り分ける仕組みです。スーパーのレジが、空いている列に客を案内するようなもので、1台への集中を避け、1台が止まってもサービスを続けやすくします。
レジの行列で考える
人気のスーパーで、レジが1つしかなければ、行列が長くなり、レジが壊れれば、誰も会計できません。レジが3つあり、案内係が、空いている列へお客さんを振り分ければ、待ち時間も短く、1つが止まっても営業を続けられます。
- レジ = サーバー
- お客さん = アクセス
- 案内係 = ロードバランサー
ロードバランサーの役割
| 役割 | 内容 |
|---|---|
| 負荷分散 | アクセスを均等に振り分けて、1台に集中しないようにする |
| 可用性の向上 | 1台が止まっても、残りのサーバーで、サービスを続ける |
| 保守のしやすさ | サーバーを、1台ずつ止めて、更新しやすい |
| 拡張のしやすさ | アクセスが増えたら、サーバーを足して、対応する |
振り分け方式の種類
| 方式 | 仕組み | 特徴 |
|---|---|---|
| ラウンドロビン | 順番に、1台ずつ割り当てる | 単純で分かりやすい |
| 重み付け | 性能の高いサーバーに、多めに割り当てる | 性能が違うサーバーを混ぜる時に向く |
| 最小接続数 | その時点で、接続が少ないサーバーに送る | 処理時間にばらつきがある時に向く |
| IPアドレスの固定 | 同じ利用者を、同じサーバーに送る | 利用者の状態を保ちたい時に使う |
ヘルスチェックで、故障を見つける
ロードバランサーは、振り分け先のサーバーが正常かを、ヘルスチェックで定期的に確認します。応答がないサーバーは、振り分けの対象から外されるため、利用者は、止まったサーバーにつながらずに済みます。
L4とL7:どこまで見て振り分けるか
ロードバランサーには、何を手がかりに、振り分けるかで、2つのタイプがあります。
- L4(レイヤー4):IPアドレスやポート番号など、通信の基本情報で振り分ける。処理が速い。ポート番号は、ポート番号とはで解説しています
- L7(レイヤー7):URLや、HTTPの内容を見て、振り分ける。「このURLなら、このサーバー」といった、細かい制御ができる
L4とL7の違いを、さらに詳しく知りたい方は、L4ロードバランサーとL7ロードバランサーの違いをご覧ください。
注意したいこと
- ロードバランサー自体が、止まると影響が大きい:1台のロードバランサーに頼ると、そこが、障害点になる。複数台で、冗長化する考え方が重要
- サーバー間で、データを共有する工夫が必要:振り分けのたびに、別のサーバーにつながるため、ログイン状態などを、共通の場所に保存する仕組みが必要になる
- 更新時の切り替え:サーバーの入れ替えを、無停止で行う方法は、ブルーグリーンデプロイとはでも解説しています
どんな場面で使われる?
- アクセスが、一時的に集中するWebサービス
- 止まると困る、業務システムや、予約サービス
- サーバーを、複数台構成にしている、クラウド環境
クラウドの考え方は、クラウドはどこにある?をご覧ください。
振り返ると
ロードバランサーは、アクセスを複数のサーバーに振り分けて、負荷を分散し、障害に強くする仕組みです。振り分け方式や、ヘルスチェックの考え方を知っておくと、システムの構成が、理解しやすくなります。
関連記事:CDNとは
関連記事:サーバーとは