サーバー以外の負荷分散や広域ロードバランシングを学ぶ
ますます高機能化するロードバランサーの技術
2010年03月29日 06時00分更新
サービスの可用性を確保
ロードバランサーの役割は、負荷を分散してパフォーマンスを引き上げるだけではなく、サービスの可用性を高めるのも重要だ。これに対しては、前回紹介したようにサーバー側への定期的にヘルスチェックを行ない、障害や高い負荷を抱えたサーバーを早い段階で把握する。その上で、振り分けるリクエストを動的に調整することで可用性を確保する。
また、ロードバランサーをうまく使えば、サーバーの計画的な増設や設定変更にも無停止で対応できる。作業の時間だけ、ロードバランサー側でサーバーを振り分け対象から外せば、ユーザー側からはサービスが止まったように見えないわけだ。この際、ロードバランサーでは振り分けの再開時にリクエストを急激に増やさないように調整する「スロースタート」の機能や、保守作業中も処理能力が落ちないよう代替のサーバーに自動的に振り分ける機能などを持っている。現場の声を反映させた細やかな機能といえるだろう。
WAN回線の負荷
分散サイトの可用性を考えれば、冗長化はサーバーやセキュリティ機器だけではなく、WAN回線も対象となる。通常のルーターの回線バックアップ機能では、WAN回線を二重化しておき、一方に障害等が発生した際には、ダイナミックルーティング等で自動的に迂回経路に切り替える(図3)。これに対してロードバランサーのWAN回線負荷分散を用いれば、ラウンドロビンや重み付けのほか、回線コストや到達までのホップ数(ルーターの数)、接続先のサーバーのレスポンスタイム、転送容量などの値(メトリック)を条件にした高度な負荷分散が可能になる。
たとえば、帯域の80%を使い切ったら、別のWAN回線を用いるとか、もっともコストのかからない回線を用いてトラフィックを転送するといった柔軟な経路制御が実現できる。また、一方のWAN回線のみを用いるアクティブ/スタンバイの構成だけではなく、複数の回線を同時に利用するアクティブ/アクティブの利用形態にも対応する。
これに加え、前回紹介した帯域制御や圧縮などWANでの高速化処理などを追加し、製品としての付加価値を高めている。
統合的トラフィック管理装置への進化
このようにロードバランサーでの処理には、レイヤ3のアドレス情報に留まらず、アプリケーション層のデータの解析が必須となる。Webサーバーの負荷分散であればURLやHTTPヘッダ、クッキー、セッションID、XMLなどを精査することで、はじめて適切なサーバーに振り分けることができる。
それに留まらず、ロードバランサーは通信データを直接書き換えることまで行なう。ロードバランサーは本来1対1で通信しているクライアントとサーバーの間に割り込んで、パケットの転送を制御する。そのため、前回紹介したセッション維持の機能では、サーバーの情報をクッキーに埋め込むような処理を行なって、通信に矛盾が生じないようにしている。
このようにロードバランサーは進化の過程で、アプリケーション層のデータの参照や書き換えを行なえる機能を取得していく。アプリケーショントラフィックの挙動に合わせて、ユーザーのパケットを振り分け、柔軟にコントロールすることが可能になったのだ。この結果、古典的な負荷分散のみが目的ではない統合的なトラフィック管理装置という意味で、「アプリケーションスイッチ」「ADC:Application Delivery Controller)」といった言い方もされるようになった。
とはいえ、単一のハードウェアに複数の機能を搭載した統合型の製品だけではなく、ロードバランシングのみに絞ることで価格を落としたり、セキュリティ製品と統合したり、各ベンダーの実装はさまざまだ。
次回はサーバーの処理を肩代わりするオフロード技術について解説する。
この連載の記事
-
第6回
ネットワーク
TCPの改良やキャッシング、圧縮でより速く -
第5回
ネットワーク
WANの遅延を抑えて、レスポンスアップする -
第4回
ネットワーク
サーバーの処理を肩代わりする「オフロード」とは? -
第2回
ネットワーク
知っておきたいロードバランサーの基礎技術 -
第1回
ネットワーク
アプリケーションを快適に使うためになにが必要? -
ネットワーク
アプリケーショントラフィック管理入門<目次> - この連載の一覧へ