「落とさない」「高速に」が重要だったドットコム時代に生まれた
知っておきたいロードバランサーの基礎技術
2010年03月15日 06時00分更新
ヘルスチェックとセッション維持
ロードバランサーに必須の機能として、サーバーの状態を把握する「ヘルスチェック」と、同じクライアントのリクエストを継続的に同一のサーバーに振り当てる「セッション維持」がある。
さまざまなヘルスチェックの手法
サーバーに障害が発生したら、ロードバランサは振り分け対象からそのサーバーをいち早く外し、別のサーバーに処理を引き継がなければならない。また、負荷の高いサーバーがあれば、そのサーバーへのリクエストの振り分けの数は絞った方がよい。リクエストをサーバーに振り分けるにあたっては、サーバーの動作状態をロードバランサー側できちんと把握する必要がある。こうした機能をヘルスチェックと呼ぶ。
ロードバランサーが行なうヘルスチェックは多種多様だ。Pingを定期的にサーバーに送信したり、TCPでセッションを張ったり、HTTPなどで実際にデータの送受信を行なうといった、詳細なチェックも可能(図3)。
セッション維持の手法
ロードバランシングを用いて、リクエストを振り分けると複数のサーバーを有効活用できる。しかし、Webショッピングのように、クライアントからのリクエストが、異なるサーバーに振り分けられると困る場合もある。Webショッピングでは、品物を探し、カートに入れ、決済を行なうという一連の手続き(トランザクション)が発生する。しかし、ロードバランサーによって、最初に接続したサーバーとは異なるサーバーに振り分けられると、この一連の流れが途切れてしまう。2度目以降に振り分けられたサーバーからは、クライアントは一見さんにしか見えず、どの商品をカートに入れたかわからないので、当然エラーが戻ってきてしまう。
これを解決するため、1つのトランザクションを継続して特定のサーバーに振り分けるのがセッション維持(セッション・パーシステンス)である(図4)。これを実現するには、ロードバランサーが、送信元のクライアントを一意に識別する必要がある。もっとも単純なのは、送信元のIPアドレスをチェックし、そのIPアドレスからのリクエストを同一のサーバーに振り分けるというものだ。また、HTTPでの利用を前提に、クッキーを使う方法もある。この方法では初回接続時、ロードバランサーがサーバーの情報を埋め込んだクッキーをWebブラウザ側に保存。その後のセッションは、ロードバランサーがクッキーを発行したサーバーに対して振り分けるわけだ。
ちなみにWebショッピングではSSLが利用されていることが多いので、この場合はクッキーが暗号化されている。こうなると、ロードバランサーがクッキーを参照することができないことになる。そのため、サーバーの代わりにSSLの暗号化処理を肩代わりする機能を持つロードバランサーもある。これであれば、クッキーは復号化された状態で参照できるので、ロードバランサー側でクッキーにサーバー情報を挿入できます。
今回は、アプリケーショントラフィック管理の重要性とキャッシングやQoS、ロードバランシングなどの技術について解説してきた。次回は、より高度なアプリケーショントラフィックの制御技術について見ていく。
この連載の記事
-
第6回
ネットワーク
TCPの改良やキャッシング、圧縮でより速く -
第5回
ネットワーク
WANの遅延を抑えて、レスポンスアップする -
第4回
ネットワーク
サーバーの処理を肩代わりする「オフロード」とは? -
第3回
ネットワーク
ますます高機能化するロードバランサーの技術 -
第1回
ネットワーク
アプリケーションを快適に使うためになにが必要? -
ネットワーク
アプリケーショントラフィック管理入門<目次> - この連載の一覧へ