この章では、Load Balancer の概要について説明します。この章には、以下のセクションが含まれています。
ユーザーのネットワーク管理に使用する機能を計画する上で役に立つ、Load Balancer の各コンポーネントで提供される構成機能のハイレベルなリストについては、ユーザー・ネットワークの管理: 使用する Load Balancer 機能の判別を参照してください。
Load Balancer は、着信するクライアント要求を各サーバー間に分散するための ソフトウェア・ソリューションです。 これは、TCP/IP セッション要求をサーバー・グループ内の各サーバーに指図することによって、サーバーのパフォーマンスを高め、これによりすべてのサーバー間における要求を平衡化します。このロード・バランシングは、ユーザーや他のアプリケーションに透過的に行われます。Load Balancer は、e-mail サーバー、ワールド・ワイド・ウェブ・サーバー、 分散並列データベース照会などのアプリケーションや、その他の TCP/IP アプリケーションに有効です。
Web サーバーで使用する場合、Load Balancer はユーザー・サイトの潜在能力を最大化するために、 ピーク需要の問題に対して強力で、柔軟性があり、拡張が容易な解決策を提供します。 最大需要時にビジターがサイトにアクセスできないような場合、 Load Balancer を使用すると着信要求の処理に最適なサーバーが自動的に検出され、 顧客満足度と収益性が向上します。
Load Balancer は次の 5 つのコンポーネントから構成されており、これらの機能を別々または一緒に使用して、より有効なロード・バランシング結果を得ることができます。
HTTP プロトコルの場合は、Dispatcher のコンテンツ・ベースのルーティング 機能を使用してクライアント要求の内容に基づきロード・バランシングを行うこともできます。指定されたルールに対して URL を突き合わせた結果に応じて、サーバーが選択されます。 Dispatcher のコンテンツ・ベース・ルーティング (CBR 転送方式) では、 キャッシング・プロキシーは必要とされません。
Dispatcher、CBR、Site Selector、Cisco CSS Controller、および Nortel Alteon Controller コンポーネントに関する詳細については、Load Balancer のコンポーネントを参照してください。
グローバル・インターネットに接続されたユーザーおよびネットワークの数は急速に増えています。この増加によりスケーラビリティーの問題が生じ、 人気サイトへのユーザー・アクセスが制限されることがあります。
現在、ネットワーク管理者は、アクセスの最大化を図るためにいろいろなメソッドを使用しています。それらメソッドの中に は、最初に選択した処理が遅かったり応答しなかったりした場合に、別のサーバーを無作為に選択できるようにするものもあります。 この方法は面倒で、いらいらさせ、非効率です。この他に標準ラウンドロビン・メソッドもあり、この場合は、ドメイン・ネーム・サーバーが要求処理のためのサーバーを順番に選択します。この方法は前にあげた方法よりも優れてはいますが、サーバー作業負荷を考慮に入れないでトラフィックを 転送するという理由から、やはり非効率です。さらに、サーバーが失敗しても、要求は引き続きそこへ送信されます。
Load Balancer はさらに強力な解決策が必要であるというニーズから作成されました。 これは、従来の競合する解決策に比べ、数多くの利点を備えています。
クライアント要求の増加に伴い、サーバーを動的に追加して、何十、何百ものサーバーで 1 日当たり何千万という要求に対するサポートを提供することができます。
ロード・バランシングは、標準ラウンドロビン・メソッドの場合に頻繁に起こるホット・スポットを最小化することにより、各サーバー・グループがそれぞれのハードウェアを最適使用するようにします。
Load Balancer は標準の TCP/IP または UDP/IP プロトコルを使用します。 既存のネットワークに物理的な変更を加えることなく、そのネットワークにこれを追加できます。これのインストールと構成は簡単です。
簡単な MAC レベル転送方式を使用すると、Dispatcher コンポーネントは、クライアントからサーバーへのインバウンド・フローだけをモニターします。サーバーからクライアントへのアウトバウンド・フローをモニターする必要はありません。このために他の方法に比べてアプリケーションに対する影響を大幅に軽減し、ネットワーク・パフォーマンスを向上させることができます。
Dispatcher、Cisco CSS Controller、および Nortel Alteon Controller コンポーネントは組み込みの高可用性を提供します。そのため、プライマリー・サーバー・マシンに 障害が発生した場合には、いつでもロード・バランシングを引き継げるようになっている バックアップ・マシンを使用します。 サーバーの 1 つに障害が発生した場合、要求へのサービス提供は別のサーバーによって継続されます。 このプロセスによってサーバーが Single Point of Failure ではなくなるため、 サイトの高可用性が実現されます。
詳細については、Load Balancer で高可用性を実現する方法を参照してください。
Caching Proxy とともに、CBR コンポーネントには要求したコンテンツに基づいて特定のサーバーに対する HTTP 要求および HTTPS (SSL) 要求を代行する機能があります。例えば、要求において URL のディレクトリー部分にストリング "/cgi-bin/" が含まれて、サーバー名がローカル・サーバーである場合は、CGI 要求を処理するために特に割り振られている一連のサーバーで最適なサーバーに CBR は要求を送信できます。
Dispatcher コンポーネントも Content Based Routing を提供しますが、これは Caching Proxy をインストールする必要がありません。Dispatcher コンポーネントの Content Based Routing はパケットを受け取るとカーネル中で実行されるので、CBR コンポーネントより 高速 の Content Based Routing を提供できます。Dispatcher コンポーネントは、HTTP (「コンテンツ」タイプ・ルールを使用) および HTTPS (SSL セッション ID アフィニティーを使用) の コンテンツ・ベースのルーティング を実行します。
Dispatcher コンポーネントは、組み込みの高可用性機能を提供し、 ユーザーのネットワークから Single Point of Failure となる Dispatcher を除去します。 この機能は、2 番目の Dispatcher マシンを使用して、メインの (すなわちプライマリー) マシンをモニターし、プライマリー・マシンが失敗した場合にいつでもロード・バランシングのタスクを引き継げるように待機する機能を含みます。 また、Dispatcher コンポーネントは高可用性を相互に提供し合うので、これにより 2 つのマシンが互いにプライマリーとセカンダリー (バックアップ) になることができます。 高可用性を構成するを参照してください。
CBR を備えた複数のサーバー間で、Dispatcher マシンがトラフィックを ロード・バランシングする、2 層の構成を使用する場合は、 CBR コンポーネントを使用して一定レベルの高可用性を達成することもできます。
コントローラーには、Single Point of Failure としてのコントローラーを除去する高可用性機能があります。 1 つのマシン上のコントローラーがプライマリーとして構成され、別のマシン上のコントローラーがバックアップとして構成されることが あります。バックアップは、プライマリーをモニターし、プライマリーが失敗した場合には、サーバーの重みをスイッチに指定するタスクを引き継げるように待機します。 詳細については、高可用性を参照してください。