【 ここから本文 】
アプリケーション・サーバ
ソーシャルブックマークに登録 :
印刷用ページの表示
【解説】
システム管理者のための「IIS 7.0」概論
モジュール化を実現した新世代のWebサーバ
(2008年04月04日)
Windows Server 2008に備わるWebサーバ「インターネットインフォメーションサービス(IIS)」は、最新バージョンの「7.0」だ。IIS 7.0は、Webサーバとしてのコアサービスに加え、アプリケーション開発・実行環境が統合されたアプリケーションプラットフォームとなる。本稿では、特にシステム管理者やWebサイト管理者向けにIIS 7.0のコア部分、WebサーバとしてのIIS 7.0について、改善された機能や新機能を紹介する。
山市 良
IIS 6.0で実証済みのプラットフォーム
互換性を維持しつつ、より強固に
| 画面1:IIS 7.0はコア部分を含めモジュール化されている。すでに登録済みのモジュールも、不要な場合はいつでも無効化できる |
IIS 7.0はWindows Vistaにも搭載されているが、Windows Server 2008と同じものではない。Windows VistaのIIS 7.0はWebサイト/Webアプリケーション開発やテストでの利用が想定されており、いくつか使用上の制約もある。IIS 7.0にとって、Windows Server 2008が本番環境への事実上のデビューとなる。
Windows Server 2008のIIS 7.0は、IIS 6.0で実証済みの強化されたセキュリティ(マイクロソフトによるとIIS 6.0は出荷以来4年以上、脆弱性評価の深刻度で「緊急」レベルのパッチはリリースされていない)を継承し、さらに強固かつハイパフォーマンスなプラットフォームとなるべく、アーキテクチャが大幅に変更されている。最も大きな変更点は、“モジュール化されたWebサーバ”になることだ。
| 画面2:不要な機能は最初からインストールしないか、いつでも完全にアンインストールできる |
IIS 7.0は、Webサーバを軽量なコア部分と、そのコアにプラグインできる40以上の機能モジュールに分割されている。例えば、静的なWebコンテンツをパブリッシュする「StaticFileModule」、Windows(NTLM)認証をサポートする「WindowsAuthModule」、CGI(Common Gateway Interface)プログラムの実行をサポートする「CGIModule」などだ。
これらのモジュールは、不要な場合は個別に無効にできる(画面1)。もちろん、最初からインストールしないこともできるし、いつでも完全にアンインストールすることができる(画面2)。
IIS 7.0に含まれるすべてのサーバ機能は、パブリックな拡張API(Application Programming Interface)上に構築されたものなので、開発者はネイティブコードまたは.NET Frameworkのマネージドコードを使用して、既存のサーバ機能を独自の機能と交換したり、カスタムモジュールを開発してIIS 7.0の機能セットに追加したりすることも可能だ。
これにより、開発者は静的なWebコンテンツを提供するだけの軽量なサーバから、カスタムモジュールを組み合わせた専用サーバまで、容易かつ柔軟な構築と拡張が可能となる。
コンポーネント化されたアーキテクチャは、攻撃対象領域が劇的に減少し、セキュリティリスクの軽減と、修正プログラムの必要性を最小化するのに役立つ。また、必要なコードのみがサーバに配置・実行されることになるので、パフォーマンスの向上にもつながる。
アーキテクチャが大幅に見直されたIIS 7.0だが、アプリケーション、管理インタフェースの両面でIIS 6.0との高い互換性は維持されている。
アプリケーションプラットフォームである「ASP.NET」は、IIS 6.0ではISAPI拡張として実装されていた。これが、IIS 7.0ではASP.NET 2.0と完全に統合される(統合モード)。これにより、これまでIISとASP.NETの双方が備えていた認証機能などの重複がなくなり、シンプルな開発を実現できる。また、C++APIを使用してネイティブコードで開発しなくても、ASP.NET 2.0と.NET Framework上で言語に依存しないマネージドコードでの開発が可能だ。
一方、IIS 6.0向けに開発されたアプリケーションとの互換性を維持するため、従来のISAPI方式で動作する「クラシックモード」も提供される。ASP(Active Server Pages)、ISAPI、CGIのための拡張モジュールも提供されるので、IIS 6.0向けに開発されたASP、ASP.NET 1.1、ASP.NET 2.0、ISAPI拡張、ISAPIフィルタ、CGIアプリケーションは、コード変更なしでそのままIIS 7.0に移行できるはずだ。
IIS 6.0では構成情報ストアが、IIS 5.0以前のバイナリ形式のメタベース(Metabase.bin)から、XMLベースの構成ファイル(Metabase.xml)に変更された。IIS 7.0では、この部分が分散構成と階層構成を実現するためにさらに変更され、複数のXMLファイル(applicationHost.configやweb.configなど)で構成される。
これに伴い、IIS 6.0のメタベースを操作する、あるいはIIS 6.0のWMI(Windows Management Instrumentation)インタフェースを使用するアプリケーションやスクリプトツール、インストーラは、ネイティブなIIS 7.0上では動作しない可能性が高い。この問題に対する回避策もIIS 7.0では用意されており、役割サービスとして「IIS 6管理互換」を追加して対応できるようにしている(画面3)。
IIS 6.0以前向けに提供されたURLScan機能は、IIS 7.0では「要求リクエスト」モジュール(RequestFilterModule)としてビルトインされている。これまで「URLScan.ini」で定義していたものは、IIS 7.0の新しい構成ストアである「applicationHost.config」や「Web.config」で構成することになるので注意しよう。
| 画面3:IIS 6.0のメタベースを操作するアプリケーションやスクリプトツールは「IIS 6管理互換」サービスを追加すれば、IIS 7.0上でも動作させることができる |
Web専用サーバのための
Server CoreのIIS 7.0対応
Windows ServerはWebサーバだけでなく、ファイルサーバ/プリントサーバをはじめ、ディレクトリサービス、DNSサーバ、DHCPサーバ、メディアサーバ、ターミナルサービス、アプリケーションサーバなどの統合プラットフォームでもある。
IIS 7.0を単なるWebサーバとして構成したい場合には、これらのほとんどの機能は必要ない。逆に、存在することがセキュリティリスクを高めることになるかもしれないのだ。
Windows Server 2008では、Webサーバに特化したサーバを構成できるように2つのオプションが用意されている。
1つは、すべてのエディションで利用可能な最小構成のインストールモード「Server Core」だ。Server CoreはGUIレスのWindows Serverであり、Windowsシェル(Explorer.exe)をはじめ、GUIのインタフェースや管理ツールを持たない。インストールされるコンポーネントが少ないぶん、脆弱性の影響を受けにくく、メンテナンス機会も少なくて済むといったメリットがある。
| 画面4:Server Core環境にIIS 7.0をインストールするには「ocsetup IIS-WebServerRole」コマンドを実行する。個々の役割サービスは「oclist」コマンドでサービス名を確認後、「ocsetup」コマンドで追加すればよい |
Server Coreでは「DHCPサーバ」「ファイルサービス」「印刷サービス」「Active Directoryドメインサービス」「Active Directoryライトウェイトディレクトリサービス」「Webサーバ(IIS)」などの役割を実行できる。
Server Core環境にWebサーバの役割をインストールするには、「Oclist.exe」と「Ocsetup.exe」コマンドを利用する。
「Oclist.exe」はインストール可能な役割/機能と現在のインストール状況を表示するコマンド、「Ocsetup.exe」は役割や機能をインストール/アンインストールするコマンドである。例えば、Webサーバの役割をインストールするには、次のコマンドラインを実行すればよい(画面4)。
Ocsetup IIS-WebServerRole このコマンドラインによりWebサーバのコア(IIS-WebServer)、HTTP基本機能(IIS-CommonHttpFeatures)など、最小限の役割サービスがインストールされる。あとは、「Oclist.exe」で未インストールの役割サービスから、必要なサービスを「Ocsetup.exe」の引数に指定して追加していけばよい。ただし、Server Coreでは利用できない役割サービスもあるので注意してほしい。
Webサーバ専用のエディション
Windows Web Server 2008
| 画面5:Windows Web Server 2008はWebサーバの機能に特化したエディション。「Webサーバ(IIS)」と「Windows SharePoint Services」の2つの役割しか存在しない。追加で「Windows Media Services」の役割がダウンロード提供される予定だ |
Windows Server 2003にはWebサーバ専用のエディションとして「Windows Server 2003 Web Edition」があるが、Windows Server 2008でも「Windows Web Server 2008」という専用エディションが提供される。名前のとおり、インターネットWebサーバ構築のための専用OSとなり、Webサーバに必要のない役割、機能は最初から搭載されない。
デフォルトの役割は「Webサーバ(IIS)」と「Windows SharePoint Services」の2つで、将来的には「Windows Media Services」がダウンロード提供される予定になっている(画面5)。
追加可能な機能はWindows SharePoint Servicesに必要な「.NET Framework 3.0の機能」や「Windows Internal Database」など、計26機能。ちなみに、Windows Server 2008 Enterprise Editionがサポートする役割は17、機能は36に上る。
Windows Web Server 2008では、Windows Server 2003 Web Editionの2プロセッサ、最大メモリ2GBまでというハードウェアの制約が緩和され、4プロセッサ、最大メモリ4GB(32ビット版)/32GB(64ビット版)にまで対応する。IIS 7.0、ASP.NET、.NET Framework 3.0に関しては制限がなく、フルに機能を利用できる。
実は、Windows Web Server 2008にもServer Coreインストールオプションが用意されている。当然、サポートされる役割は「Webサーバ(IIS)」と「Windows SharePoint Services」の2つだけ。通常のWindows Server 2008のServer Coreとの違いがややこしいが、必要な機能やライセンスコストなどを考慮すれば、Windows Web Server 2008のServer Coreを選択するということも現実にありそうだ。
【column 01】
IIS 7.0をインストールする4つの方法
Windows Server 2008にIIS 7.0をインストールするには、標準で次の4つの方法が提供される。
[1] 役割の追加ウィザード(初期構成タスク/サーバーマネージャ)
[2] ServerManagerCmd.exe
[3] PkgMgr.exe
[4] Ocsetup.exe
通常はWindows Server 2008のインストール完了後に表示される「初期構成タスク」や「サーバーマネージャ」から起動する「役割の追加ウィザード」を使用して、「Webサーバ(IIS)」の役割を選択し、必要なコンポーネント(役割サービス)や関連機能をインストールすればよい。
残り3つは、コマンドラインからインストールするためのツールである。このうち、Server Core環境で利用できるのは「Ocsetup.exe」と「PkgMgr.exe」だ。また、「ServerManagerCmd.exe」と「PkgMgr.exe」では、1行のコマンドラインでインストールを実行できる。
【解説】Windows Server 2008「NAP」大解剖


クライアント検疫機能「Network Access Protection」を検証する
サーバの仮想化はどう進化するのか!?
【Windows Server 2008 実践評価ガイド】Windows Server 2008が革新するITインフラストラクチャ

SOHOからデータセンターまで、すべてのシステムを支える!
Windows Server 2008 アップグレードに足る「9つの理由」


製品出荷の最終段階に入った次期サーバOSのベータ3を徹底検証
[国内]【Videoニュース】マイクロソフト、Windows Server 2008の新機能を国内イベントで披露

「システム管理者の負担を劇的に軽減する機能が満載」とアピール
[米国]マイクロソフト、Windows Server 2008のCTP版をリリース
目玉機能の「Server Core」に「IIS 7.0」を追加



