特集 Windows Server 2003完全ガイド
アーキテクチャを一新した新世代アプリケーション・サーバ

3.IIS 6.0の管理

田口景介
2003/03/19

 IIS 6.0は、2つの面からアプリケーション・サーバとしての能力を向上させた。1つは前回解説したワーカー・プロセス分離モードに代表されるプロセス・モデルの改善。もう1つが、ASP.NETに代表されるプラットフォームとしての強化である。今回は、後者のアプリケーション・プラットフォームとしてのIISについて解説する。また本稿の最後では、そのほかの細かなトピックについて取り上げる。

IIS 6.0の管理

 IIS 6.0の管理面に着目すると、Webベースの管理コンソールが大幅に拡張されたことが目に付くが、やはり一番のトピックは、メタベースの保存形式がXMLファイルに変更されたことに尽きる。

画面9 Webベースの管理コンソール
デザインが洗練されると同時に、ネットワーク・インターフェイスの設定変更ができるなど、機能も拡張されている。また初期状態から仮のサーバ証明書がインストールされており、初期状態でもSSLによるアクセスが可能になっている。
  Webサイトの管理。
  管理する対象となるサイトの一覧。
  サイトに割り当てられているIPアドレス。
  リッスンしているTCPのポート番号。
  現在の状態。
  管理タスク。

XMLメタベースによる構成情報の保存

 従来のIISでは、Webサイトの構成情報であるメタベースが、バイナリ・ファイルに保存されていたため、IISマネージャやMetaEditといった専用ツールを使わなければ、サイト構成を編集できなかったのだが、IIS 6.0ではこれらがXMLメタベースと呼ばれるテキスト・ベースのXMLファイルに保存されるようになったため、ごく一般的なテキスト・エディタでも編集が可能だ(ただし、エディタはUTF-8対応が必須)。しかも、テキスト・エディタで編集した結果を即座に反映させることもできるので、完全にIISマネージャと同等の作業が可能である。

<?xml version ="1.0"?>
<configuration xmlns="urn:microsoft-catalog:XML_Metabase_V54_0">
<MBProperty>
<IIsComputer Location ="/LM"
EnableEditWhileRunning="0"
EnableHistory="1"
MaxBandwidth="4294967295"
MaxHistoryFiles="10"
>
</IIsComputer>
<IIsConfigObject Location ="/LM/IISADMIN">
</IIsConfigObject>
XMLメタベースの例

 XMLメタベースを直接編集するには、もちろんファイル・フォーマットを詳細に理解しなければならないが、扱いの自由度はバイナリ形式のファイルとは比べようもない。例えば、構成の変更前と変更後のXMLメタベースをdiffのようなツールを使って比較すれば、容易に修正個所を特定できるし、CVS(Concurrent Versions System)のようなバージョン管理ツールを利用して、バージョン管理を行うこともできる。頻繁に行う作業があれば、簡単なスクリプトを作成して、管理を自動化することもできるだろう。ファイル・フォーマットが完全には公開されていなかったバイナリ形式のメタベースとは違って、XMLメタベースならば、すべての設定項目が完全に解説されることはなかったとしても、少なくともファイル・フォーマットに曖昧さがないので、各種ツールを利用した操作の自由度は飛躍的に高まる。

構成情報のバックアップ

 XMLメタベースのバックアップは、単にMetaBase.xmlファイルをコピーするだけもよいが、IIS 6.0では自動ヒストリ機能によってこれが自動的に行われる。ヒストリはIISマネージャを起動するたびに作成されるので、定期バックアップのように、前回バックアップを行った時点まで巻き戻されるようなことはない。なお、自動ヒストリによるバックアップもXMLファイルに作成されるので、誤って編集してしまっても、最新バージョンのMetaBase.xmlと比較すれば簡単に編集個所を見つけ出して修復できる。

 自動ヒストリ機能はシステムを正常化するには便利な機能だが、これを使ってリストアすると、XMLメタベース全体がしばらく前の状態に戻ってしまうため、気軽には使えない。従来のIISは、こうしたメタベース全体のバックアップしかできなかったのだが、IIS 6.0には待望の部分バックアップ機能が装備され、一番利用頻度が高いと思われるアプリケーション単位でのバックアップ/リストアが可能になった(Webサイト単位での部分バックアップも可能)。こうしてバックアップされたXMLファイルをアプリケーションのソース・コードとまとめてバージョン管理しておけば、実行環境との整合性も自動的に管理できるというわけだ。

CPT(Capacity Planning Tracing)

 Webサーバのログ解析には2種類ある。1つはいわゆるアクセス解析で、サイト内の人気ページやユニーク・ユーザー数、参照時間などを割り出すことを目的としたもの。もう1つは、Webサーバの負荷を調査してボトルネックとなっている個所を見つけ出す、パフォーマンス解析を目的として行うものだ。前者のアクセス解析を目的としたログは従来から提供されていたが、IIS 6.0には後者のパフォーマンス解析を目的としたCPT(Capacity Planning Tracing)と呼ばれるロギング機能が追加されている。

 CPTは、IISのパフォーマンス解析を目的としたログを記録するための仕組みだが、Windows Server 2003全体における位置づけは、あくまでパフォーマンス解析ツール群の1コンポーネントとして提供される。従来からWindowsには、GUI版のパフォーマンス・モニタが付属していたが、CPTを含むツール群は、logman.exeやtracerpt.exeといったコマンドライン・ツールによって構成されている。これらのツールは、プロバイダと呼ばれるパフォーマンス・データの収集モジュールを呼び出し、ここから得たデータを元にパフォーマンス解析を行う。Windows Server 2003には、このプロバイダとして、IISのパフォーマンス・データを収集するモジュールが提供されているのである。logman.exeやtracert.exeといったパフォーマンス解析ツールは、Windows XPでも提供されていた一般的なログ解析フレームワークなので、このIIS用プロバイダこそがCPTの実体だと考えてよい。

 IIS 6.0とともに提供されるプロバイダは、「IIS: WWW Server」や「IIS: Active Server Pages (ASP)」「ASP.NET Events」など用途ごとに分離されており、これらを利用して、最もCPUパワーを消費したページや、配信されるまでに最も時間がかかったページのランキング、キャッシュのヒット率など、パフォーマンス解析に役立つ情報を多数収集できる。ただ、実際にパフォーマンス解析を行うには、こうしたIISに依存したプロバイダからの情報だけでなく、ディスクI/O性能やネットワーク帯域の消費率など、より一般的なほかのプロバイダからの情報も必要となるはずだ。Windows Server 2003には、この種の情報を収集するためのプロバイダが多数付属しているので、IIS用プロバイダと組み合わせて同時に利用すれば、パフォーマンス解析に役立てることができる。

CPTによるレポート
logmanコマンドを使ってログに保存したデータは、tracerptコマンドを使って、以下のような表形式のレポートにまとめることができる。以下に示した項目(レスポンス・タイムの統計と処理時間の統計)以外にも、処理にかかった時間のページ・ランキングや最も転送量が多かったURLのランキング、それにディスク・パフォーマンスなど、多彩な統計情報をまとめることが可能だ。

コマンドライン・ツール

 コンソールからの管理にはIISマネージャが、リモート・クライアントからの管理にはWebインターフェイスが使え、さらにはテキスト・エディタを使ったMetaBase.xmlの直接編集も可能と、IIS 6.0には多彩な管理ツール(管理手法)が用意されているが、加えてコマンド・プロンプトから管理するためのツール群も用意されている。

コマンド名 機能
iisweb Webサイトの作成/削除、起動/一時停止/停止
iisvdir 仮想ディレクトリの作成/削除/一覧
iisback メタベース全体のバックアップ/リストア
iiscnfg メタベースの部分エクスポート/インポートほか
iisext Webサービス拡張の管理
iisapp 稼動中のアプリケーションを一覧表示
iisftp ftpサイトの作成/削除、起動/一時停止/停止
iisftpdr ftp仮想ディレクトリの作成/削除/一覧
IISの管理用コマンドライン・ツール

 いずれも、IISマネージャを使って実行できる作業ばかりだが、複数のIISを同じ状態にセットアップしたり、アプリケーションのインストールを自動化したりするスクリプトを開発するには、この種のコマンドライン・ツールが欠かせない。

 それに、ごくわずかながら、コマンドラインツールを使わなければできない作業もある。例えば、特定のアプリケーションに関する構成だけをエクスポートする機能はIISマネージャにも備わっているが、iiscnfgコマンドを使えば、継承プロパティもエクスポートするかどうかを指定できる。

 細かい話になってしまうが、継承プロパティについて簡単に解説しておこう。継承プロパティとは、アプリケーションに値が明示されず、デフォルト値が継承されているプロパティのことである。メタベースの情報は階層的に構成され、明示されていないプロパティの値は、上位階層の値を継承する仕組みになっている。従って、特定のノード(アプリケーション)を部分的にエクスポートしたとき、継承プロパティの値がエクスポートされなければ、その後インポートしたとき、上位階層の状態が変わっていれば、元のアプリケーション構成を復元できないことになる。継承プロパティを含めてエクスポートすれば完全に復元できるわけだが、環境によっては上位階層の状態を継承したい場合もあるので、完全な復元が常に優先されるべきとは限らない。そこで、iiscnfgコマンドでは、継承プロパティをエクスポートするか選択できるようになっているのである。なおIISマネージャでは、必ず継承プロパティもいっしょにエクスポートされる。

 またiiscnfgコマンドだけでなく、Webサービス拡張の管理(ASPやASP.NET、CGIの可否を設定する)を行うiisextコマンドも、IISマネージャにない機能を提供するツールの1つである。このコマンドを使ってアプリケーションが依存しているWebサービス拡張を登録しておくと、Webサービス拡張が無効化されたときに警告を受けられるようにできる。


 INDEX
  [特集]Windows .NET Server 2003完全ガイド
  IIS 6.0の機能の詳細
     1.信頼性を向上させるアプリケーション・プール
     2.動作状態の監視とセキュリティ機能
   3.IIS 6.0の管理
     4.そのほかの機能
 
目次ページへ  Windows Server 2003完全ガイド


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間