ある程度規模の大きいサイトを運用する際にはサーバの負荷分散を目的としてロードバランサ装置が用いられます。ところがロードバランサの効能については「負荷を軽減してくれる装置」と誤認されているケースがあるようです。
その名の通り、負荷を適切に各サーバに分配してくれる機能が中心の装置ですが、システム全体でみた場合には決して負荷を"軽減"してくれる装置ではありません。
ロードバランサが持つ負荷分散機能は様々な指標の閾値によって設定が可能です。その方式は均等分散、割合分散(アクセス数、帯域)、フィードバック型分散などが選択できる仕様になっています。フィードバック型分散はサーバ毎に負荷状態を検知し負荷が高い場合にはトラフィックの割り当てを他のサーバに振り分けるという高度な機能です。
図らずもロードバランサ管理下のクラスタ(サーバ)が故障してサービスを継続できない障害が発生します。このような状況で故障したクラスタにトラフィックの割り当てを行ってしまうと、タイミングによっては運の悪い利用者のサービス継続が中断してしまいます。このような状況を防止するためにWebサービス等の自動監視を行い、サービスが継続できていないクラスタを自動的に切り離す機能も備えています。
更に高機能なロードバランサはレイヤー7の処理機能を備えています。この機能を用いるとアクセスしてきたURLによってサーバの配分を変えたり、HTTPヘッダ情報から端末の振り分けを行うことが可能です。またショッピングカートなどセッション継続中は同一サーバとの通信を持続させることも重要な役割となっています。
最後に、サーバを複数台構成して負荷分散を行いたい要件があっても、必ずしも高価なロードバランサが必須というわけではありません。一つの解決策としてDNSラウンドロビンという方式があります。これはDNSのゾーン情報に複数のIPアドレスに対して同一のFQDNを割り当てることで、ネームサーバがIPアドレスを巡回して返すという特性を利用して負荷分散します。当然高い付加価値は期待できませんが費用対効果を鑑みた場合に採用されるケースも多くあります。
コメント