負荷分散入門
本連載では、信頼性の高いシステムを構築する上で欠かせない要素となってきた負荷分散技術と負荷分散装置(ロードバランサ)について解説します。
これまでの連載
- 第1回 負荷分散の必要性
- 第2回 負荷分散装置の基本機能
- 第3回 リクエストの分散機能 (1/2)
- 第4回 リクエストの分散機能 (2/2)
- 第5回 コンテンツ単位の負荷分散機能
- 第6回 セッション維持機能
- 第7回 故障監視機能と自動切り離し機能
- 第8回 連続サービス機能
第5回 コンテンツ単位の負荷分散機能
Webサーバでは、テキストデータ、イメージデータ、プログラムなど、さまざまな形式のコンテンツを扱います。 これらのコンテンツはそれぞれ異なった特性をもっており、システムの能力を最大限に発揮させるために、それぞれの特性に合わせた専用のサーバへ分散することが必要となります。
また、Webサーバにアクセスする手段が多様化し、携帯電話やPDAからもインターネットにアクセスできます。 これらのクライアントは種類(携帯電話の種類、PDAやPC)によりブラウザ仕様が異なるため、処理するサーバを分離することで、応答処理を最適化し、サーバアプリケーションの作りを単純化することができます。
この様なWebサーバでは、アクセスするURLは共通のまま、各クライアントの種類に応じてリクエストを最適なサーバへ分散することが必要となります。
この様な、コンテンツやクライアントのリクエストをその特性応じて分類し、分散対象サーバを選択する機能が、「コンテンツ単位の負荷分散」機能です。
コンテンツ単位の負荷分散機能は、リクエストに含まれるURL、HTTPヘッダー、cookieヘッダーなどの情報を解析し、コンテンツ単位に分散対象サーバを選択することができます。
コンテンツ単位の負荷分散には、以下の2つがあります。
- URLベース負荷分散
- HTTPヘッダー負荷分散
今回は、これらの機能について説明します。
URLベース負荷分散
URLベース負荷分散機能は、クライアントがアクセスしようとしているURLを解析し、要求されているコンテンツ単位に分散対象サーバを選択する機能です。
また、分散対象サーバをコンテンツ単位にグループ化し、サブ・サーバグループを構成することもできます。 この場合、サブ・サーバグループ内のどのサーバに振り分けるかは、指定した分散方式に基づいて制御されます。
URLベース負荷分散を利用した例を以下に示します。
例1.ホスト名による振り分け
以下の図は、URLの ホスト名に基づいて、サブ・サーバグループを構成した例を示しています。
仮想IPアドレスは一つですが、負荷分散装置がリクエストに含まれる ホスト名を判別し、それぞれ専用のサーバグループに振り分けています。
図 1. URLのホスト名による振り分け
例2.パス名による振り分け
以下の図は、URLの パス名に基づいて、サブ・サーバグループを構成した例を示しています。
負荷分散装置が、コンテンツの種類を パス名から判断し、画像データやCGIのリクエストを専用のサーバグループに振り分けています。
この様に構成することで、それぞれのWebアプリケーションに要求されるレスポンスやサービス品質を確実に保証します。
図 2. URLのパス名による振り分け
HTTPヘッダー負荷分散
HTTPヘッダー負荷分散は、リクエストのHTTPヘッダー情報を解析(端末種別や言語種別など)し、アクセスしてきたクライアントを最適なサーバに振り分ける機能です。 HTTPヘッダー負荷分散機能を利用することで、クライアントの要求に見合った最良のレスポンスと差別化サービスを提供します。
HTTPのリクエストには、次のようなHTTPヘッダーが含まれています。
Host: www.fsastech.com
User-Agent: Mozilla/5.0 ~
Accept: text/html, ~
Accept-Language: ja
Accept-Charset: Shift_JIS, ~
Accept-Encoding: gzip, ~
:
この中で、1行目は「開始行」で、2行目以降が「HTTPヘッダー」です。
1行目と2行目には、それぞれクライアントがアクセスしているURLのドメイン名とパス名が含まれています。 この情報は、URLベース負荷分散で利用されます。
3行目以降には、以下のようなクライアントの情報が含まれています。
- Accept
クライアントで受け入れ可能なデータ形式が通知されます。 - Accept-Language
クライアントで受け入れ可能な言語の種類が通知されます。 - Accept-Charset
クライアントで受け入れ可能な文字コードの種類が通知されます。 - Accept-Encoding
クライアントで受け入れ可能な圧縮形式が通知されます。 - User-Agent
パソコンの場合には、Webブラウザの種類が通知されます。携帯電話やPDAなどでは、端末の種類が通知されます。
HTTPヘッダー負荷分散を利用した例を以下に示します。
例3.端末の種類による振り分け
以下の図は、端末の種類に基づいて、サブ・サーバグループを構成した例を示しています。
負荷分散装置が、端末の種類を User-Agentヘッダーから判断し、それぞれ専用のサーバグループに振り分けています。
この様に構成することで、それぞれの端末に要求されるレスポンスやサービスを提供します。
図 3. 端末の種類による振り分け
これまでの連載
- 第1回 負荷分散の必要性
- 第2回 負荷分散装置の基本機能
- 第3回 リクエストの分散機能 (1/2)
- 第4回 リクエストの分散機能 (2/2)
- 第5回 コンテンツ単位の負荷分散機能
- 第6回 セッション維持機能
- 第7回 故障監視機能と自動切り離し機能
- 第8回 連続サービス機能
負荷分散装置(IPCOM)のラインナップ
負荷分散装置 IPCOMシリーズは、システムに合わせて搭載機能を追加し、段階的な統合を可能にすることにより、常にシステムに最適なネットワーク環境を実現します。