運用 Windows 2000 LAN防衛術

ISA ServerのWeb Proxy機能(第3回)

1.アクティブ・キャッシング

デジタルアドバンテージ
2002/03/21


FTPオブジェクトの有効期限の設定

 FTPプロトコルでは、HTTPプロトコルと違って、オブジェクトに対する有効期限などを受け渡すことができない。そのため、FTPプロトコルでやり取りされるオブジェクトに対して、システムが自動的に有効期限を設定することはできず、ISA Serverでは以下のようにして、管理者が手動でその期限をセットすることになっている。各種のソフトウェア・アップデート・モジュールやセキュリティ・パッチ、デバイス・ドライバなど、1つの組織内のユーザーが同時に何回もFTPサーバから取得するような場合には、このFTPキャッシュ機能を使うことにより、ネットワークの帯域を有効に利用することができる。

FTPオブジェクトのキャッシュ設定
FTPオブジェクトもキャッシュすることができるが、その有効期限は管理者が設定する必要がある。
  FTPオブジェクトの設定はこの[FTP]タブで行う。
  FTPオブジェクトもキャッシュするならばこれをチェックする。多数のユーザーが同じFTPオブジェクトへアクセスするケースが多ければ、キャッシュするメリットがあるだろう。
  FTPオブジェクトの有効期限。デフォルトでは1日になっているが、FTPオブジェクトはWebページなどと比べると更新の頻度は少ないので、もう少し長くてもよいだろう。

アクティブ・キャッシングの設定

 「アクティブ・キャッシング」とは、Webサーバへのアクセス履歴に基づいて、使用頻度の高そうなオブジェクトをあらかじめキャッシュ中へ取り込んでおいて、常に最新のHTTPオブジェクトが利用できるようにする機能である。ユーザーからのWebアクセス要求がなくても、有効期限が切れそうなHTTPオブジェクトを見つけて、その期限が切れる前に自動的にWebサーバへアクセスして最新のオブジェクトを取得しておく。こうすれば、後でユーザーからの実際のアクセス要求が発生した場合でも、キャッシュ上にあるオブジェクトをすぐに返すことができ、応答速度が向上する。ただしこのアクティブ・キャッシングによるデメリットとして、ネットワークのトラフィックが不用意に増加してしまうという可能性がある。まったくユーザーが要求を出していないのに、ISA Serverが自発的にWebサーバへのアクセスを行うからである。

 ISA Serverのアクティブ・キャッシング機能では、このような不用意なネットワーク・トラフィックの増加と、常に最新のHTTPオブジェクトを準備しておくという要求のバランスを取るために、次のようなアルゴリズムでキャッシュを更新している。

 まずアクティブ・キャッシングを行う時期であるが、これはISA Serverの稼働率に応じて、稼働率の低い時に行うようになっている。ISA Serverの稼働率が低ければ有効期限の中ほどの時間にキャッシング動作(Webサーバへアクセスして、最新のオブジェクトを取得すること)を開始するが、稼働率が高ければ有効期限が切れる直前までキャッシングする時期を遅らせ、アクティブ・キャッシング以外のWebアクセスへの影響が少なくなるようにしている。

 次にどのオブジェクトをアクティブ・キャッシュの対象とするかであるが、ISA Serverでは、繰り返しアクセスされるオブジェクトを「アクティブ キャッシング リスト」という候補リストに登録することによって管理を行っている。Webサーバから取得したオブジェクトはその有効期限情報とともにキャッシュへ保存されるが、さらに以下のような基準によってアクティブ・キャッシング・リストへも登録され、自動更新の対象となる。

  • あるオブジェクトがキャッシュへ登録される。
  • 時間が経過して、そのオブジェクトの有効期限が切れると、そのオブジェクトは「古く」なる。
  • 有効期限が切れてから、さらに「n×有効期限」時間が経過する前にそのオブジェクトへのアクセス要求が発生すると、そのオブジェクトを更新するとともに、アクティブ・キャッシング・リストへ登録される。ここで「n」は1か2か3であり、以下で述べるアクティブ・キャッシュの設定ダイアログ中の選択肢に相当する。具体的には「頻繁に取得する=3」、「標準=2」、「頻繁に取得しない=1」である。
  • オブジェクトの更新後、「n×有効期限」時間以内に再度アクセス要求があると、そのオブジェクトはアクティブ・キャッシング・リストに残る。
  • オブジェクトの更新後、「n×有効期限」時間を過ぎてもアクセス要求がなければ、そのオブジェクトはアクティブ・キャッシング・リストから削除される。

 やや分かりづらいかもしれないが、簡単にいうと、(有効期限が切れてから)一定期間内に再度アクセス要求があればアクティブ・キャッシング・リストへ登録され、以後自動的に更新され続けるが、最後のアクセスからある一定期間がたつとリストから外される、ということである。通常の更新と比べると、何回か余計に(頻繁に)Webサーバへアクセスすることになるが、クライアントからの要求がなくなるとリストからも外されるので、いつまでも無用なアクセスが発生するというわけではない。あくまでもクライアントからのアクセス要求がきっかけとなって、要求が多くなればリストに登録され、なくなってくれば外されるだけである。クライアントからの要求回数をモニタする期間は、ダイアログの設定によって異なり、オブジェクトの有効期限のそれぞれ1、2、3倍となっている。このモニタ期間が長くなるほど、多くのオブジェクトが該当するようになり、それらが自動的に更新されることになる。例えば有効期限が1時間のオブジェクトを1時間に1回以上参照していれば、それはアクティブ・キャッシングの対象となるが、1日に1回しか参照しなければ対象外となる。

 アクティブ・キャッシング機能は、ダイヤルアップ・ユーザーではあまり現実的ではないかもしれないが、昨今の高速な常時接続インターネット・アクセス回線を利用しているユーザーで、ネットワーク・トラフィックに余裕があるようならば、有効にしておいても問題はないだろう。心配ならば、更新頻度を「頻繁に取得しない」にしておけばよい。

HTTPオブジェクトのアクティブ・キャッシュ設定
この画面では、HTTPのアクティブなキャッシュをするかどうかを設定する。デフォルトではこの機能はオフであり、クライアントからの要求がない限りWebサーバへの自動的なアクセスは行わない。しかしこの機能を有効にすると、使用頻度の高いオブジェクトを積極的に先読みアクセスしておき、クライアントからの応答時間を短縮させるように働く。
  HTTPオブジェクトのアクティブ・キャッシュの設定
  アクティブ・キャッシュ機能を有効にする場合にチェックする。デフォルトでは無効になっている。高速なインターネット・アクセス回線を使っていて、トラフィックに余裕があるようならば有効にしても問題ないだろう。
  積極的にオブジェクトの先読みを行い、なるべく多くのオブジェクトを自動的に先読みするという設定。実際にはこの設定は、クライアントからのアクセス状況をモニタする期間の長短に影響を与える。この設定では、オブジェクトの有効期限の3倍以内の間に再アクセスがあると、それはアクティブ・キャッシュの対象となる。
  標準設定。の中間の設定。オブジェクトの有効期限の2倍以内の間に再アクセスがあると、それはアクティブ・キャッシュの対象となる。
  先読みはするが、対象となるオブジェクトの数を限定し、ネットワーク・トラフィックをなるべく抑えるための設定。オブジェクトの有効期限と同じ時間以内に再アクセスがあるものだけがアクティブ・キャッシュの対象となる。

Web Proxyサービスの詳細設定

 [詳細設定]のタブでは、Web Proxyに関するそのほかの各種設定を行う。例えば動的なコンテンツ(URLに“?”が含まれている、CGI経由で生成されるようなコンテンツなど)もキャッシュするかどうかや、キャッシュ可能なオブジェクトの最大サイズ、Web Proxyサービスで使用するメモリ容量などである。

Web Proxyサービスの詳細設定
このタブでは、Web Proxyサービスに関する詳細な設定を行う。基本的にはデフォルトのままで構わないが、メモリの使用量などはシステムの(空きメモリの)状況などに応じてチューニングするとよいだろう。
  Web Proxyサービスに関する詳細な設定を行うにはこのタブを選択する。
  キャッシュ可能なオブジェクトの最大サイズを設定する。巨大な画像データやFTPファイルなど、大きなオブジェクトを多数キャッシュすると、キャッシュの利用効率を下げることになるので、このような制限を付けて、大きなオブジェクトをキャッシュさせないようにできる。だがGbytes単位の大きなキャッシュを用意できるならば、特に制限する必要はないだろう。
  を有効にした場合に、キャッシュ可能なオブジェクトの最大サイズを指定する。
  オブジェクトの最終変更時刻が指定されていないようなオブジェクトでもキャッシュするかどうかを決めるための指定。デフォルトでは有効になっている。
  Webサーバによって、無効とされたオブジェクト(正常終了の応答コード200以外を返すオブジェクト)でもキャッシュするかどうかの設定。デフォルトでは無効。
  動的なコンテンツでもキャッシュするかどうかの設定。動的とは、例えばCGIによって生成されたようなページ(URLに“?”を含んでいることが多い)のこと。このようなページをキャッシュすると、ページの内容が正しく更新されないというトラブルになることがあるので、デフォルトでは無効になっている。
  オンメモリでキャッシュできるURLの最大サイズの指定。
  インターネット上の指定されたURLに接続できない場合に(例えばサイトそのものがダウンしていたり、途中のネットワーク経路がダウンしていたりした場合)、クライアントにエラーを返すかどうかを決めるための設定。これを選択すると、クライアントには指定された宛先に接続できないというエラーが表示される。
  で接続できない場合でも、キャッシュ中に以前のデータが残っていれば、それを返すための設定。本来ならば、現時点で接続できない相手ならばエラーを返すべきだろうが、以前の有効なデータがキャッシュに残っているならば、それを代わりに返すこともできる。
  キャッシュからオブジェクトを返す場合の条件の1つ。オブジェクトをキャッシュしてからの経過時間が、ここで指定されたオブジェクトの有効期限のパーセンテージ以下の場合、それをクライアントへ返す。そうでなければエラーを返す。
  有効時間の上限。オブジェクトをキャッシュしてからの経過時間がこの時間以内なら有効であるとみなし、それをクライアントへ返す。そうでなければエラーを返す。
  オブジェクトをキャッシュするメモリの制限値(%)。オンメモリのキャッシュは一番応答が速く(ディスク上のキャッシュよりも高速)、多く割り当てるほどパフォーマンスが向上するが、その分システムで利用可能なメモリを圧迫するので、システム全体の空きメモリ容量を見ながら設定する必要がある。最初はデフォルトのまましばらく運用し、空きメモリ・サイズを見ながら少しずつ増やしていけばよいだろう。
 

 INDEX
  [運用]Windows 2000 LAN防衛術
  第3回 ISA ServerのWeb Proxy機能
  1.アクティブ・キャッシング
    2.自動的なコンテンツのダウンロード
    3.特定サイトへアクセスの許可/禁止
 
 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間