このページの本文へ

前へ 1 2 次へ

アプリケーショントラフィック管理入門 第2回

「落とさない」「高速に」が重要だったドットコム時代に生まれた

知っておきたいロードバランサーの基礎技術

2010年03月15日 06時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

ヘルスチェックとセッション維持

 ロードバランサーに必須の機能として、サーバーの状態を把握する「ヘルスチェック」と、同じクライアントのリクエストを継続的に同一のサーバーに振り当てる「セッション維持」がある。

さまざまなヘルスチェックの手法

 サーバーに障害が発生したら、ロードバランサは振り分け対象からそのサーバーをいち早く外し、別のサーバーに処理を引き継がなければならない。また、負荷の高いサーバーがあれば、そのサーバーへのリクエストの振り分けの数は絞った方がよい。リクエストをサーバーに振り分けるにあたっては、サーバーの動作状態をロードバランサー側できちんと把握する必要がある。こうした機能をヘルスチェックと呼ぶ。

 ロードバランサーが行なうヘルスチェックは多種多様だ。Pingを定期的にサーバーに送信したり、TCPでセッションを張ったり、HTTPなどで実際にデータの送受信を行なうといった、詳細なチェックも可能(図3)

接続先のサーバーの状態を調べるヘルスチェックの機能

セッション維持の手法

 ロードバランシングを用いて、リクエストを振り分けると複数のサーバーを有効活用できる。しかし、Webショッピングのように、クライアントからのリクエストが、異なるサーバーに振り分けられると困る場合もある。Webショッピングでは、品物を探し、カートに入れ、決済を行なうという一連の手続き(トランザクション)が発生する。しかし、ロードバランサーによって、最初に接続したサーバーとは異なるサーバーに振り分けられると、この一連の流れが途切れてしまう。2度目以降に振り分けられたサーバーからは、クライアントは一見さんにしか見えず、どの商品をカートに入れたかわからないので、当然エラーが戻ってきてしまう。

 これを解決するため、1つのトランザクションを継続して特定のサーバーに振り分けるのがセッション維持(セッション・パーシステンス)である(図4)。これを実現するには、ロードバランサーが、送信元のクライアントを一意に識別する必要がある。もっとも単純なのは、送信元のIPアドレスをチェックし、そのIPアドレスからのリクエストを同一のサーバーに振り分けるというものだ。また、HTTPでの利用を前提に、クッキーを使う方法もある。この方法では初回接続時、ロードバランサーがサーバーの情報を埋め込んだクッキーをWebブラウザ側に保存。その後のセッションは、ロードバランサーがクッキーを発行したサーバーに対して振り分けるわけだ。

トランザクションに対して継続して特定のサーバーに振り分ける「セッション維持」の機能

 ちなみにWebショッピングではSSLが利用されていることが多いので、この場合はクッキーが暗号化されている。こうなると、ロードバランサーがクッキーを参照することができないことになる。そのため、サーバーの代わりにSSLの暗号化処理を肩代わりする機能を持つロードバランサーもある。これであれば、クッキーは復号化された状態で参照できるので、ロードバランサー側でクッキーにサーバー情報を挿入できます。

 今回は、アプリケーショントラフィック管理の重要性とキャッシングやQoS、ロードバランシングなどの技術について解説してきた。次回は、より高度なアプリケーショントラフィックの制御技術について見ていく。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事