SharePoint を利用する上で、システム管理者もソリューション開発者もInternet Information Services 6.0(IIS)についての基礎知識は必要です。特に、ワーカプロセスとアプリケーション プールに関する理解は重要です。そこで、今回はこのことについて触れてみたいと思います。IIS 6.0 を前提にしていますが、Windows Server 2008 のIIS 7.0上でSharePoint を動作させる場合も、実際には下位互換モードであるクラシックモードで動作するため、IIS6.0での仕組みを理解しておくことがやはり重要です。
ワーカプロセスとアプリケーションプール
SharePoint Server 2007 などの ASP.NET Web アプリケーションは IIS 上のワーカプロセスというプロセス内で動作します。既定では通常、アプリケーションは1つのワーカプロセス内で動作しますが、複数のワーカプロセス上で動作させることもできます。
ワーカプロセスは、ワーカプロセスひとつひとつを管理するのではなく、アプリケーション プール(w3wp.exe) という単位にまとめて管理します。アプリケーションプールはIIS上に複数作成できます。アプリケーション プール単位でアプリケーションがメモリを共有できるため、たとえば、AとBというアプリケーションはアプリケーションプール1で動作させ、Cというアプリケーションはアプリケーションプール2で動作させるというように設定をしておくこともできます。この場合、たとえば、Cというアプリケーションに何か不具合があったとしてもAやBのアプリケーションには影響しないように管理できます。
アプリケーションプールとIIS Webサイトとの関係
SharePoint サイトが利用しているアプリケーション プールは、IIS管理マネージャを起動し、サイトのプロパティにある「ホームディレクトリ」タブ内で確認できます。
[図.ホームディレクトリタブ]
アプリケーションプールの設定は、プロパティで確認をします。たとえば、「識別」タブにはアプリケーション プールに割り当てられているアカウントを確認できます。
[図.アプリケーションプールのプロパティ]
SharePointではアプリケーションプールに設定されているこのアカウントがコンテンツ データベースなどにアクセスをすることとなるため、むやみにアカウントを変更しないようにしてください。
先ほど説明した通り、アプリケーションの実行環境の管理単位がアプリケーションプールです。通常は、1アプリケーション プールあたり、1ワーカプロセスが存在していますが、1つのアプリケーション プールに複数のワーカプロセスを生成することも可能です。これが Webガーデンです。
[図.Webガーデンの設定]
さて、このWebガーデンですが、下記ドキュメントによるとSharePointではこれを利用するとページの出力キャッシュの面で悪影響がでるとのことで、既定値を変更しないようにした方がよいようです。
セキュリティ面での考慮
アプリケーション プールで使用するアカウントの利用については、次に示すMSDNの記事が大変参考になりますので、まだ読んでいない方は必読です。
「SharePoint のセキュリティ アカウント 」
http://technet.microsoft.com/ja-jp/magazine/dd297618.aspx