IISの歴史は、「セキュリティ強化と堅牢性向上の歴史」と言い換えることができるかもしれない。その一環として、IIS6.0から導入されたのが、「ワーカープロセス分離モード」だ。今回は、このモードを取り上げよう。

ワーカープロセス分離とは?

ワーカープロセス分離モードを一言でまとめると、「Webサーバ上で動作する各種のアプリケーションをそれぞれ独立したメモリ空間で動作させるもの」ということになる。メモリ空間がアプリケーションごとに分かれていれば、どれか1つのアプリケーションがクラッシュしても、他のアプリケーションを巻き込まずに済み、結果としてシステム全体の安定性が向上するという理屈だ。

また、アプリケーションが他のアプリケーションのメモリ空間に勝手にアクセスできなくなるので、安全性も向上する。実行権限がアプリケーションプールごとに別々に設定されることから、どれか1つのアプリケーションが乗っ取られただけですべてのアプリケーションが好き放題にされてしまう事態も回避できる。

このほか、アプリケーションの動作を監視して、動作異常が発生すると自動的にアプリケーションを再起動する仕掛けもある。

ワーカープロセス分離モードでアプリケーションを動作させるには、アプリケーションごとに「アプリケーションプール」を作成したうえで、そこにアプリケーションを割り当てる作業が必要になる。アプリケーションプールとは、クライアントからの要求を受け付ける「リクエストキュー」と、その要求を受けてWebサーバ側でASP.NETアプリケーションを実行する「ワーカープロセス」の総称だ。

そのアプリケーションプールを作成して、Webサイトと関連付けることで、ワーカープロセス分離モードで動作することになる。すなわち、分離する数だけのWebサイトが必要というわけだ。そのため、作業の流れは以下のようになる。

  • アプリケーションプールを作成する
  • Webサイトを作成する
  • Webサイトにアプリケーションプールを関連付ける

アプリケーションプールの追加

IIS 7.xの既定値では、「DefaultAppPool」と「Classic .NET AppPool」と、合計2個のアプリケーションプールがある。そして、前者と[Default Web Site]を関連付けた状態が既定値だ。このままでは、[Default Web Site]で動作するアプリケーションはすべて同一のアプリケーションプールで動作することになり、分割は行われていない。

アプリケーションプールの分割を行うには、最初に以下の手順でアプリケーションプールの作成を行う。

(1)IIS管理ツール左側のツリー画面で、[(コンピュータ名)]以下の[アプリケーションプール]を選択する。すると、画面右側に既存のアプリケーションプール一覧を表示する。

(2)ツリー画面の[アプリケーションプール]、あるいは右側の一覧画面にある空白部で右クリックして[アプリケーションプールの追加]を選択する。

作成するアプリケーションプールの名前などを設定して[OK]をクリックする

(3)続いて表示されるダイアログで、作成するアプリケーションプールの名前、.NET Frameworkのバージョン、マネージパイプラインモードの種類(統合またはクラシック)、[アプリケーションプールを直ちに開始する]チェックボックスのオン/オフを設定する。

(4) [OK]をクリックすると、新しいアプリケーションプールを作成して、それが一覧に加わる。

アプリケーションプールに対する設定

アプリケーションプールに対して行える設定操作には、以下のものがある。いずれも、右クリックメニューか、画面右側に並んでいるアイテム一覧を利用する。

  • .NET Frameworkのバージョンとマネージパイプラインモードの変更 : [基本設定]を選択すると、新規作成時と同様にこれら2項目の変更が可能。ただし、名前の変更は行えない。

アプリケーションプールの基本設定画面を呼び出す

  • リサイクル関連の設定→画面右側の[アプリケーションプールの変更]以下にある[リサイクルの設定]をクリックする。リサイクル機能とは、ユーザーが設定した閾値を超えるメモリ冗費が発生した際に、自動的にプロセスを再起動して無駄を抑える機能のこと。

リサイクル機能の設定画面

  • その他の設定変更→画面右側の[アプリケーションプールの変更]以下にある[詳細設定]をクリックすると現れる設定画面で、それぞれの項目をマウスでクリックする。すると、右端に下向き矢印(▼)が現れて、値の選択が可能になったり、値を直接入力できるようになったりする。

* 削除→アプリケーションプール一覧で、右クリックメニューを使って[削除]を選択すると、選択しているアプリケーションプールを削除できる。

アプリケーションプールとWebサイトの関連付け

次に、作成したアプリケーションプールとWebサイトと関連付ける作業が必要になる。

先にアプリケーションプールを作成してからWebサイトを追加する場合、追加作業の途中でアプリケーションプールを選択する画面を表示するため、そこで選択すればよい。つまり、先にアプリケーションプールを作成してからWebサイトを追加すると、手順としては合理的だ。

既存のWebサイトは、後から設定変更によってアプリケーションプールを選択できる。IIS管理ツールで目的のWebサイトを選択した状態で、画面右側の[サイトの編集]以下にある[基本設定]をクリックする。続いて表示するダイアログで[選択]をクリックと、アプリケーションプールの選択が可能だ。

既存のWebサイトでは、[基本設定]をクリックすると表示するダイアログ(上)で[選択]をクリックすると、アプリケーションプールの選択が可能(下)