計画手順 3: IIS Web ファームの負荷分散を計画する
作成者: Keith Newman および Robert McMurray
IIS サーバーで Web ファームを計画するこのフェーズでは、負荷分散について説明します。 また、アプリケーション要求ルーティング処理 (ARR) を使用して、負荷分散を構成する方法についても説明します。 ARR は、プロキシ ベースの要求ルーティング処理や負荷分散を行う IIS のモジュールです。
これらのタスクが完了したら、設計に関する決定事項を記録してから、 Step 4: Plan SSL Central Certificate Storeに進んでください。
3.1. ARR で負荷分散を計画する
負荷分散は、複数の Web サーバーでワークロードを分散する方法です。 最適なリソース使用率の実現、要求スループットの最大化、応答時間の最小化、およびサーバー過負荷の回避を目的としています。
負荷分散装置は、このタスクを実行するためにさまざまなアルゴリズムを使用します。 最も単純なアルゴリズムにラウンド ロビンがあります。これは、すべてのサーバーの負荷を均等にするために、新しい要求をそれぞれ異なる Web サーバーに送信します。 その他のアルゴリズムでは、応答時間を短縮するために、特定の種類の要求を特定のサーバーに送信します。
アプリケーション要求ルーティング処理 (ARR) は、HTTP ヘッダー、サーバー変数、および負荷分散アルゴリズムを使用して、コンテンツ サーバーに要求を転送する方法を決定するプロキシ ベースのルーティング処理モジュールです。 ARR では、着信要求を検査するために URL Rewrite モジュールを利用します。
ARR の主要機能は、ホスト名アフィニティと呼ばれます。 ホスト名アフィニティでは、要求と指定されたサーバー (または一連のサーバー) の間のアフィニティ (接続の終了) を作成します。 これにより、指定されたサイトが定義されている数のサーバー上でのみリソースを消費するようになります。
ファーム内の全サーバーの IP アドレスのリストを準備します。 ARR の負荷分散を構成するにはリストが必要です。
3.2. ARR の他の機能を調査する
負荷分散に加えて、ARR はこのシナリオの範囲を超える多くの機能を提供します。 次の表に、ARR で利用可能な機能の概要を示します。
機能 | 説明 |
---|---|
UI でのキャッシュされたコンテンツの参照 | キャッシュされたディレクトリやファイルなど、複数のドライブ間でキャッシュされたコンテンツを IIS マネージャーで表示できます。 |
バイト範囲のサポート | ARR では、応答時間の影響を与えずにキャッシュのヒット/ミス率を高められるように、バイト範囲要求をセグメントに細かく分割します。 |
キャッシュ階層の管理 | ARR ではキャッシュ ノード間の関係を定義および管理できます。 これは、ARR をエッジ キャッシュ ノードとして構成できるように、キャッシュ配列ルーティング プロトコル (CARP) をサポートします。 |
CDN/ECN 環境のキャッシュ プロキシ ノード | コンテンツ配信ネットワーク (CDN) またはエッジ キャッシュ ネットワーク (ECN) の展開で、ARR をキャッシュ プロキシとして使用できます。 これは、ARR がディスク キャッシュと CARP をサポートするプロキシ ベースの HTTP 要求ルーティング モジュールであるためです。 |
圧縮オブジェクトのキャッシュ | ARR ではディスク ベースのキャッシュにオブジェクトを圧縮して格納するため、これらのオブジェクトはすべての要求に対してリアルタイムで圧縮されないまま保持されます。 |
応答の処理中にキャッシュ | ARR はリアルタイムで応答の処理中に大きなファイルをキャッシュできます。 |
クライアント アフィニティ | ARR では Cookie を使用して、クライアントからコンテンツ サーバーにすべての要求をアフィニティ化できます。 |
ディスク ベースのキャッシュ | ARR では、ユーザー定義のプライマリ キャッシュ ドライブとネットワーク ベースのセカンダリ キャッシュ ドライブにキャッシュされたコンテンツをサポートします。 |
失敗した要求トレースの規則 | ARR ではトレースの規則を使用して、失敗した要求のトラブルシューティングと診断を行います。 |
正常性の監視 | ARR では、ライブ トラフィック内で使用する構成パラメーターと、コンテンツ サーバーの正常性を判別する特定の URL テストを提供します。 |
ホスト名アフィニティ | ホスト名アフィニティ (共有のホスト側に固有の機能) では、2 つのプロバイダー、ラウンド ロビンおよびメモリによって提供される展開トポロジを変更し、ホストがアフィニティ化するサーバーを決定します。 |
HTTP ベースのルーティング決定 | アプリケーション要求ルーティング処理は、URL Rewrite モジュールと連動して、HTTP ヘッダーやサーバー変数に基づくルーティングの規則を書き込み、アプリケーション レベルでルーティングを決定します。 |
ライブ要求のサポート | ARR では、要求を元のサーバーに転送する前に、要求を統合してキャッシュ ミス要求を確認し、ライブ コンテンツの要求をサポートします。 |
負荷分散アルゴリズム | ARR では、どのコンテンツ サーバーを HTTP 要求に使用するかを識別するために使用できる負荷分散アルゴリズムを 6 個提供しています。 |
UI を使用する管理と監視 | ARR の構成設定および実行時の統計情報は IIS マネージャーに表示されます。 |
複数のサーバー グループ | ARR では、パイロット管理と A/B テスト シナリオでコンテンツ サーバーの複数のグループを管理できます。 |
キャッシュ制御ディレクティブのオーバーライド | ARR では、キャッシュ機能やキャッシュ期間など、キャッシュ動作を制御するキャッシュ制御ディレクティブを手動でオーバーライドできます。 |
キャッシュされたコンテンツの削除 | ARR では、URL パターンを一致させることによって、キャッシュされたコンテンツを削除できます。 |
キャッシュ ノードの準備 | ARR では、コンテンツが要求される前に需要を予測し、コンテンツを事前キャッシュできます。 親のキャッシュ層のみ、または親と子の両方のキャッシュ層を事前キャッシュできます。 |