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サイトを選択した状態で、画面右側の[サイトの編集]以下にある[基本設定]をクリックする。続いて表示するダイアログで[選択]をクリックと、アプリケーションプールの選択が可能だ。