ロードバランサ

読み:ろーどばらんさ / 英語表記:load balancer

クライアントからの要求を複数のサーバへ振り分ける装置やソフトウェア。処理の集中を抑え、正常な処理先を選ぶためにヘルスチェックを行う構成がある。

イマシルちゃんの解説

お店にレジがいくつもあっても、みんなが一つに並ぶと混んでしまうね。
入口の係が、次のお客さんを空いているレジへ案内するんだ。
休止中のレジへ案内しないことも大切だよ。
続きの手続きなら、同じ担当者へ案内した方がよい場合もあるね。

より深い解説

振分けに使う情報

分類判断に使う代表的な情報特徴
L4IPアドレス、ポート番号、接続状態トランスポート層の接続単位で扱う
L7HTTPのホスト名、URLなどアプリケーション層の内容で処理先を選べる

接続の行き先は、ラウンドロビン、重み付け、接続数の少なさなどで決める。単純に順番に配る方法では、要求ごとの処理量の違いまで均等化できない。

稼働状態の確認

ヘルスチェックでは、TCP接続の成功やHTTP応答などを確認する。ポートが開いていても、データベースに接続できず業務が使えない場合があるため、確認対象を目的に合わせる。

故障を検出した処理先を新しい要求の対象から除外し、回復を確認して戻す。確認が頻繁すぎると負荷が増え、まれすぎると検知が遅れる。回数や間隔、判定条件を設計する。

続きの要求をどう扱うか

買い物かごなどの状態を一台だけで持つ場合、次の要求が別のサーバへ届くと状態を参照できない。このため同じ利用者を同じ処理先へ寄せるセッション維持を用いることがある。

方法注意点
送信元IPを使うNAPTの背後の利用者が一台に集中しうる
Cookieを使うHTTPの内容を扱える構成が必要
状態を外部で共有する振分け先の制約を減らせるが、共有先の可用性も必要

他の機能との区別

TLSを終端してサーバの暗号処理を肩代わりする機能はTLSオフロードである。搭載されることはあるが、振分けそのものとは違う。リンクアグリゲーションが束ねるのは物理回線であり、複数サーバへの要求配分ではない。

DNSラウンドロビンでは名前解決の応答で行き先を分散する。キャッシュがあるため、レコードを変更しても接続先が直ちに切り替わるとは限らない。負荷分散装置自身が単一障害点にならない構成も検討する。

実際の試験ではここに出る!

この用語が出てくる記事

↑