♡今日はクリスマス・イブ
とうとうこの日がやって参りました、クリスマス・イブ!
イエスの誕生日25日よりもイブにプレゼント交換や小洒落たレストランでディナーを食べたりと、
クリスマスを楽しむ方々が多いのではないでしょうか。
先日、
数多くの惜しむ声の中、最終回を迎えたフジテレビ 月9ドラマ「5時から9時まで」でもラスト、高嶺(山ピー)が桜庭(石原さとみ)にクリスマスツリーの前でプロポーズをしています。
ちなみに、わたしが一番好きなクリスマスソングは、竹内まりやさんの「すてきなホリデイ」です。
「クーリスマスが今年もやってくるー♪」の歌詞と共に、ケンタッキーフライドチキンのCM曲としてもお馴染み。
♡そんな聖なる夜にふと思ったこと
恒例行事として当たり前のように準備をしているクリスマスプレゼント、
そもそもクリスマスには、どうしてプレゼントをするのでしょうか?
調べてみると…
誰もがキリストにプレゼントするには
困っている人に「優しく」したり「親切」にする事で
キリストにもしている事になると言われ
その事からクリスマスプレゼントをする習慣が始まったそうです。
さて本題
クリスマスプレゼントをあげる意味のように、
当たり前になっているけど、実際よくわからないまま使っていたもの、
IIS の「アプリケーションプール」
について、過去に勉強したことをご紹介しようと思います。
アジェンダ
1. アプリケーションプールの実態
2. アプリケーションプールの設定
3. プロセスIDとは
4. リサイクルについて
5. アプリケーションへの紐付け
アプリケーションプールの実態
IIS の設定画面
アプリケーションプールとは、Webアプリケーションを動かす「プロセス」の設定のこと
Webアプリケーションが実行されると、アプリケーションプールの設定に基づいた「プロセス」が起動され、そのうえでアプリケーションが実行される
Webサーバのタスク マネージャ
プロセスは、タスクマネージャの「プロセス」タブからも見ることができる
プロセスの名前は「W3WP.EXE」と決まっている
ウェブサイトへ初めてリクエストが来たタイミングでプロセスが生まれる
アプリケーションプールの設定
新規で追加
↓↓
名前
- プールにつける任意の名前
- わかりやすいといい
.NET FrameWork バージョン
- 「2.0」か「4.0」を選択
- 動かすアプリケーションに合わせて選択
マネージパイプラインモード
- 「統合」か「クラシック」を選択
- 基本的に「統合」
- 「クラシック」は IIS6 以前と同じ動作をさせるための設定
作ったプールをWebサイトに紐付ける
アプリケーションプールをWebサイト、Webアプリケーションへ関連付ける
Webアプリケーションごとに設定できる
複数のWebアプリケーションで同じプールを使うことも可能
または
プールを分けるかどうか
分ける必要があるとき
→ .NETのバージョンが違う
→ マネージパイプラインモードを変えたいメリット、デメリットは後ほど改めて紹介します
プロセスIDの存在を知る
詳細設定画面
プロセスIDとは、詳細設定画面から設定できるWebアプリケーションの実行ユーザ
Webアプリケーションはこのユーザの権限で実行される
例:サーバ上のファイルにアクセスする権限
※デフォルトでは、ApplicationPoolIdentity というビルトインアカウント
※Windowsのユーザやドメインユーザを指定することもできる
または
実際に実行ユーザが変わっていることを確かめる
①プロセスIDに LocalService を指定する
②適当なWebサイトに①のプールを割り付ける
③Webサイトを起動し、アクセスする
④Webサーバ上でタスクマネージャを開くプロセスIDに LocalService を指定すると、タスクマネージャから見える実行ユーザが LocalService に変わっている
Windowsのユーザやドメインユーザを指定すれば、実行ユーザもそのユーザになる
DefaultAppPool という名前のプールのIDとしてApplicationPoolIdentity を指定した場合
ApplicationPoolIdnetity を指定した場合の実行ユーザは
IIS AppPool[アプリケーションプール名] となるこのユーザはIISによって自動的に作られる
リサイクルについて
リサイクルとは
プロセスをリセットして、メモリを解放することアプリケーションプール単位で実行できる
詳細設定から、いろいろな条件で自動的に実行できる
リサイクル実行時のプロセスの動き
流れ
①新しいプロセスが開始
②以降のリクエストは新しいプロセスで行う
③古いプロセスは今の処理がすべて終わったら終了ポイント
古いプロセスの処理がいきなり中断されることはない
メモリ上の情報はリセットされる
C#で持っているstaticなフィールドがリセットされる
セッションが1InProcモードのとき、リセットされる
InProcモード・・・Webサーバのメモリ上にセッションデータを保持
リサイクル結果をタスクマネージャで確認する
- タスクマネージャからも、リサイクルの瞬間にプロセスが増えていることが確認できる
- 自動リサイクルの設定 自動リサイクルの条件を細かく設定可能 そのサーバの環境や、動作させるアプリケーションに合わせた設定が必要
※初期設定は 「1740分(29時間)ごとに再起動」という中途半端な設定になっている
アプリケーションへの紐付け
または
プールを分ける必要があるとき
- .NETのバージョンが違う
- マネージパイプラインモードを変えたい
- 異なるプロセスIDを設定したい
分けることによるメリットデメリット
メリット
安定性の向上(別プロセスのアプリケーションがクラッシュしても巻き込まれない)
セキュリティの向上(別プロセスの情報にはアクセスできない)
Webサイトのリサイクルや入れ替えを個別に行えるデメリット
メモリ使用量がわずかに増える
まとめ?
今回の記事は、前職で若手が主体となって行った IIS勉強会の資料を元に作成しました。
普段、手順書任せで手順だけわかっていて、実際何をしているのか、
わかっていないことがたくさんあると思います。
今後も、こういった機会で少しずつアウトプットしていきたいと思います。
おまけ①
クリスマスプレゼントに縁のない方へ
過去に読んだ 小林正観さんの本『釈迦の教えは「感謝」だった』の引用をご紹介します。
英語で過去はPast(パスト)、未来はFuture(フューチャー)、現在はPresent(プレゼント)
プレゼントは神様からの贈り物。
いま目が見えること、
耳が聞こえること、
食べられること、
話せること、
歩けること
そういうことの一つひとつ、いま自分が一身に受け浴びているものが、
実は全部、神様からの、宇宙からすでにいただいているプレゼントです。
おまけ②
クリスマス・イブに隕石が地球に衝突する可能性があるようです。
お気をつけ下さい。
【リア充終了】クリスマスイブに巨大な小惑星が衝突する!?地震!噴火!もはや世界が震撼するイベントに
http://www.yukawanet.com/archives/4982617.html