サーバロードバランシングとは
サーバロードバランシング(Server Load Balancing)とは、
コンピュータネットワークにおいて、クライアントからの要求を複数の
サーバに分散させる技術です。ロードバランサと呼ばれる装置をクライアントと
サーバの間(通常はフロントエンド)に配置し、要求を適切な
サーバへ転送することで、特定の
サーバへの負荷集中を避け、システム全体のパフォーマンスと可用性を向上させます。
ロードバランサの役割
ロードバランサは、クライアントからのサービス要求に対して、
サーバファーム内から最適な
サーバを選択・制御します。クライアントからの最初の要求を受けた際、ロードバランサは適切な
サーバを選び、その後の要求も原則として同じ
サーバに転送します。これは、クライアントの状態を
サーバ側で管理するアプリケーションにとって重要です。ただし、
サーバに障害が発生した場合、この仕組みが問題となることがあります。この問題を解決するために、ロードバランサは状態情報を共有データベースに保存し、Cookieなどのトークンを使ってクライアントと状態情報を関連付けます。
外部ネットワークから見ると、ロードバランサは単一の仮想
サーバとして認識されます。つまり、
IPアドレスやポート番号は、ロードバランサのものだけが見えます。
サーバ群で動作するサービスは、この仮想
サーバが提供しているように見えます。クライアントは仮想
サーバに要求を送り、ロードバランサが適切な物理
サーバを選択して転送します。
仮想
サーバの構成は、サービスの種類によって異なります。ロードバランサは、TCPやUDP上のサービスだけでなく、HTTP、FTP、SSL、NNTP、SIP、DNSなどの多様なプロトコルをサポートします。
サーバの監視と障害対応
ロードバランサは、
サーバ群が正常に動作しているかを監視します。定期的にキープアライブパケットを送信し、応答がない場合は
サーバがダウンしていると判断します。
サーバダウン時には、残りの
サーバで負荷分散を継続し、仮想
サーバを構成する全ての
サーバがダウンした場合は、バックアップ
サーバに要求を転送するか、保守ページにリダイレクトします。
ロードバランシングの対象
ロードバランシングは、Web
サーバだけでなく、以下の対象にも適用できます。
サーバファーム
キャッシュ
ファイアウォール
侵入検知システム
SSLオフロードまたは圧縮
コンテンツ監視
サーバ
広域サーバ負荷分散(GSLB)
ロードバランサの機能
ロードバランサは、以下のような機能を提供します。
SSLオフロードと加速: SSL処理の負荷を軽減します。
Secure Remote Access (SSL-VPN): 安全なリモートアクセスを提供します。
DDoS攻撃への防御: D
DoS攻撃からシステムを保護します。
圧縮: データ転送量を削減します。
TCP負荷低減: TCP接続の負荷を軽減します。
クライアント・キープアライブ: クライアント接続を維持します。
TCPバッファリング: TCP接続のバッファリングを行います。
統合ロギング: ログを統合管理します。
アプリケーションのキャッシュ化: アプリケーションの処理を高速化します。
コンテンツのフィルタリング: 不適切なコンテンツをフィルタリングします。
優先度別キューイング: 要求に優先度を設定します。
コンテンツ切り替え: コンテンツを動的に切り替えます。
キャッシュのリダイレクト: キャッシュを効率的に利用します。
広域サーバ負荷分散: 地理的に離れたサーバ群に負荷を分散します。
リンク負荷分散: 複数の回線を束ねて利用します。
ロードバランシングの手法
負荷分散には、様々な手法があります。
最小コネクション: コネクション数が少ないサーバを選択します。
DNSラウンドロビン: DNSを利用して
サーバを分散します。
*
ソフトウェアによる負荷分散:
コンピュータ・クラスターを実現するソフトウェアに負荷分散機能を利用します。
Webサーバでの負荷分散
Webサイトへのアクセス集中を制御するために、負荷分散が用いられます。例えば、
ウィキメディア財団では以下の手法で負荷分散を行っています。
1. DNSラウンドロビンで、ページ要求をSquid
サーバに分散。
2. Squid
サーバが応答時間を測定し、Web
サーバにページ要求を分散。
3. Squidキャッシュで要求の75%を処理。
4. Web
サーバはPHPスクリプトで、要求の種類に応じてデータベース
サーバを分散。
レイヤ4スイッチや
Linux Virtual Server、リバースプロキシなども負荷分散に利用されます。
無線LANでは、Wireless LAN Controllerがクライアント接続を分散させます。アクセスポイントの負荷を均一化します。
サーバ技術とネットワーク技術の統合
サーバロードバランシングでは、
サーバ構築とネットワーク構築の統合が不可欠です。
まとめ
サーバロードバランシングは、システム全体のパフォーマンスと可用性を向上させるための重要な技術です。適切なロードバランサの選択と設定、および、最適な分散アルゴリズムの選択が重要です。