ロードバランサー(負荷分散装置)

更新日:

用語解説

利用者から仮想IPアドレスなどで受けた要求を複数の実サーバへ振り分け、処理能力、可用性及び保守性を高める装置又はソフトウェアです。単純に均等配分するだけでなく、サーバ状態、接続数、重み、要求内容及びセッションの継続性を考慮します。

■ 試験で押さえるポイント

  • L4ロードバランサーは主にIPアドレス、TCP/UDPポート及び接続情報で振り分け、L7ロードバランサーはHTTPのホスト名、URL、ヘッダ、Cookie等のアプリケーション情報を解釈できます。必要な判断情報と終端するプロトコル層が異なります。

  • 代表的な方式にはラウンドロビン、重み付きラウンドロビン、最少接続数、応答時間、送信元ハッシュ等があります。サーバ性能や処理時間が異なる場合、要求件数を完全に均等にしても負荷は均等になりません。

  • ヘルスチェックはTCP接続、HTTP応答、業務用の確認URL等で実サーバの状態を調べ、異常なサーバを振分け対象から外します。ポートが開いているだけではDB接続や業務処理の正常性を保証しないため、適切な深さと失敗・復帰条件を設計します。

  • 状態をサーバ内だけに持つアプリケーションでは、同じ利用者を同じサーバへ送るセッション維持が必要になる場合があります。ただし固定化すると負荷の偏りと障害時のセッション喪失が起きるため、状態を共有ストアへ分離する設計も検討します。

  • L7型やリバースプロキシ型ではTLSを終端し、証明書管理、復号後の検査、再暗号化及びHTTPヘッダ付加を行えます。バックエンドが認識する送信元IP、信頼する転送ヘッダ及びロードバランサー以降の暗号化範囲を明確にします。

  • ロードバランサー自体が単一障害点又は性能上限にならないよう、装置、電源、経路、設定及び状態を冗長化し、切替えを試験します。複数サーバへ振り分けるだけでロードバランサー自身の可用性は確保されません。

  • サーバを追加しても、共有DB、ストレージ、外部API又はライセンスがボトルネックなら全体性能は比例して増えません。処理能力、接続上限、キュー、タイムアウト及び下流依存先を含めて測定します。

■ 過去問での着眼点

ロードバランサーは仮想サービスへの要求を正常な実サーバへ振り分けますが、要求件数の均等化、単一サーバへのセッション維持及び装置自身の冗長化は別々に設計します。L4は主にIP・ポート・接続情報、L7はHTTP等の内容を判断材料にできます。ヘルスチェックの対象が業務の正常性を十分に表すかも確認します。L4は通信情報、L7はアプリケーション内容でも振分けできる点が主要な違いです。

例: 仮想IP宛てのHTTPS要求を、正常なWebサーバA・Bへ最少接続方式で振り分けます。Aの確認URLが連続失敗したらAを除外しBへ送りますが、共有DBが停止して両方の確認URLも失敗するなら、Webサーバ台数を増やすだけでは復旧しません。

音声で聞く

同じ分野の用語