IIS【アプリケーションプール】ってなんだ?

IIS

IISのアプリケーションプールとは何か、どんな風に使うのか、そしてなぜこのような設定ができるのかについて説明したいと思います。

スポンサードサーチ

アプリケーションプールってなんだ

アプリケーションプールはメモリ空間に名前を付けたものです。

この名前を付けたメモリ空間に、アプリを割り当てることができます。

IISの設定を見てみると上の方にアプリケーションプールと書いてありますね。
書き出してみると、

  • DefaultAppPool
  • b2cAppPool

などなど。これらは全部メモリ空間です。

図で書いてみると、アプリケーションプールのひとつにDefaultAppPoolb2cAppPoolがあるという事です。

この名前が付いた領域にアプリを当てることができます。
また、DefaultAppPoolは、IISでデフォルトで割り当てられるメモリ空間です。

アプリってなんだ?サイトってなんだ?

そもそも『アプリを割り当てる』とは何でしょうか?また、アプリとはなんでしょうか?

アプリを説明する前に、今回紹介しているIISは、Webサーバーの一種です(他はApacheとか)。

そしてアプリとは、動的なWebアプリケーションの事を指しています(Twitterとかfacebookとかを想像してください)。

そして、そのアプリは、サイトという単位がまとめています。

DefaultWebSiteというのは、最初から作られているサイトです。
新しくサイトを区切ることもできます。このサイトの下にアプリケーションがたくさん紐づきます。

アプリをアプリケーションプールに割り当てる

さて、これらアプリに対して、アプリケーションプールを割り当てることができます。アプリを選んで『詳細設定』を見ると、割り当てているメモリ空間(アプリケーションプール)を見ることができます。

そして、アプリを3つ取り上げて、それぞれがどのアプリケーションプールに割り当てられているのかというのを図にしたのが以下になります。

そして、アプリは割り当てられたメモリ空間上で動作するわけです。

何でこんなややこしいことするの?

そもそもなぜ、『アプリケーションをアプリケーションプールに割り当てる』というややこしいことをしているのでしょうか。

おそらく、便利だからと言えます。
このようにある区画で動いているということが分かっていると、なにかトラブった時に、『動作しているアプリケーションプールのみをリサイクルする』ことができ、不具合の解消に役立ちます。

似たようなこととして、サイトの再起動も可能なのですが、そうするとサイト内で動作しているアプリケーションすべてをクリアしてしまう事になってしまいます。この状態というのは、ユーザーから見れば、応答無しでアプリが動かなくなったと見えてしまう訳です。

そこで、アプリごとにアプリケーションプールに紐づけておくことで、対象のアプリケーションプールだけをリサイクルすることができます。

まとめ

今回はIISのアプリケーションプールの役割について解説しました。

以下の記事も参考にしていただければと思います。
【VS2019 & .net core でIISホスティングをする①】
【VS2019 & .net core でIISホスティングをする②】