【IIS7】 FTDセミナー振り返りシリーズ Vol.2
Part II : Windows Server 2008 R2における IIS 変更点
それでは R2 でバージョン以外(それだけってことは無いですな)に何が変わったか見ていきましょう。
ただ、この Part は現在のベータ版での話が多いので製品版出荷時に内容や仕様が異なることがある点をご承知おきの上、お読みください。
Server Core 上の ASP.NET サポート
お待ちかね、かなり多くの人が私にコメントしていただいた機能が R2 に搭載されます。
本題に入る前に実は少し Server Core を採用した場合の効用を少しお話しました。
※ここに書いてあることの多くは Server Core 開発チームのブログにも書いてあります。
ライトウェイトな OS 形態を目指している Server Core はシェル、IEなど多くの完全インストールにあるコンポーネントが存在しないため、適用する必要のある更新プログラムが当然かなり減ります。元々常に最新の更新プログラムを適用することにしているルールで運用している場合に比して最大65%(かなり概数)適用数を減らすことができるような数字も出ています。
また、どんどんライトウェイトにしていくと今度は OS が占有する HDD の領域も気になってくると思いますが、Windows Server 2008 以降では各機能がパッケージ化されており、DVDの挿入が必要ないようにセキュアな場所にキャッシュされているわけですが、そのキャッシュを削除する方法が開発チームのブログで紹介されています。
Reducing the Server Core disk footprint
R2 の Server Core上に載るものは具体的には何が今までと違うのでしょう?簡単に要約すると以下が搭載されることになると現時点では言われています。
.NET Framework 2.0 のサブセット
.NET Framework 3.0 のサブセット
.NET Framework 3.5 のサブセット
ASP.NETのサブセット
※ベータの段階なのでどの名前空間が無いのかの議論は確定情報ではないのであまり有益ではないと思うのですが、以下で列挙されています。簡単に言うと CUI な Server Core では WPF が使われないという想定から搭載されないのが大きな特徴です。
.NET 2.0 and Server Core in Windows Server 2008 R2
そしてこれらが存在することでついに Windows PowerShell (これは次の項で取り上げます。)も搭載されます。
一つ、Server Core R2で汎用的に覚えておくべきなのは Windows Server 2008 R2 が 64ビット版のみの提供になることで 32ビットのアプリケーションの動作を行いたい場合の WOW64 の状況だと思います。Server Core R2 では WOW64 は既定では入っていないので個別にインストールする必要があります。
ここで 余談として DISM.exe というコマンドの話をしました。実は実現できて来なかったものがもう一つあって、更新プログラムや機能のオフライン適用があります。Windows 7 や Windows Server 2008 R2 に対応した展開用のツールとして、つまり imagex などと並んで開発されたツールとして DISM.exe というのができました。
Dism /online /enable-feature /featurename:MicrosoftWindowsPowerShell
ここで注目に値するのは /online でここを /image にするとオフライン適用が wim と vhd(これは確認しないで書いています。) に実行できるかなりパワフルなツールです。これは下記で書きました。
デモ的には以下を用意していました。
DISM /?
DISM /online /get-features
DISM /online /enable-feature /feature-name:MicrosoftWindowsPowerShell /feature-name:ServerManager-PSH-Cmdlets
PowerShell を起動。
Import-Module servermanager
$module = Get-Module servermanager
$module.ExportedCmdlets
Get-WindowsFeature
このコマンドは完全インストールにおける servermanagercmd –query の出力によく似ていてきれいにフォーマットされています。やっぱり PowerShell 一本で行くと物事がスムーズ?! ( ^^) _U~~
Add-WindowsFeature
この Add-WindowsFeature も役割や機能をインストールできるのでこれで選択肢はいくつになったんだろうか?
ちょっと数えてみよう。。。GUI(クライアントはコンパネ、サーバーはサーバーマネージャー)で、pkgmgrで、 ocsetupで、 servermanagercmd(完全インストールのみ)で、 dismで、 Add-WindowsFeature と7つかぁ あとは OS 展開とともに準備する MDT を全部総合すると 8つ。。。多いな。今度特徴を整理しますね。
IIS7関連のインストール関係の投稿に全部この DISM および この ServerManager のコマンドレットについて追記していきます。
PowerShell Snapin for IIS7
IIS7 が他の PowerShell 対応製品と違うのは PowerShell の開発時期と IIS7 の開発時期が重なっていた点があります。このため、今までのセミナーなどでも繰り返し appcmd.exe というのがあって、、、という話をしてきましたが、今回のこの Snapin が提供されると他の OS の機能と同じようにネイティブに PowerShell で IIS が管理できるようになります。
R2 だと Import-Module WebAdministration をしてから。
実行中のリクエストの詳細が取れたりもしますが、 IIS7 が RSCA(Runtime Status/State Control API)という状態公開の API を持っているからで、それすらも PowerShell で触れるようにしてくれます。相当パワフルです!
FTP7 & WebDAV
FTP といえば、IIS7 に付属してなかったっけ?という質問をいつもいただきますが、あれは IIS6 相当の FTP であって、管理も今まで通りに IIS6 の IISマネージャーで管理するものです。なので、IIS7 の IISマネージャーで FTP を探しても何も出てきません。今回の話題である FTP はこの FTP ではなく、IIS7 に完全対応した FTP7 と呼ばれている IIS Extension として開発がされてきたものです。その FTP7 が標準機能として IIS7.5 には搭載されます。
WebDAVについても補足が必要でしょう。IIS7、つまり Windows Server 2008 のレベルでは WebDAV サーバーの機能は標準で搭載されていません。これは Windows Server 2003 のインストールからすると機能が無くなったと感じた人もいると思いますが、2003 の WebDAV には改良すべき点があり、Windows Server 2008 用に再開発が必要だった背景があります。このため、IIS Extension として開発が行なわれ、R2では標準搭載となるわけです。
IISマネージャの追加機能
IIS だけでなく、現在の Windows Server の設計思想は基本的に CUI から全機能・設定操作を利用できることをまず考えてライブラリが構築され、そこから必要な GUI が作成される思想が根底を流れています。これは R2 に Windows PowerShell がコマンドプロンプトと同様にインストールなしで最初から入っていることからもわかると思いますし、PowerShell の思想でもあります。
このことから IISマネージャでは設定できず、.configファイルを直接編集する、あるいは appcmd set config ~ などで設定を行なう必要のある設定が今までありました。その中から GUI があった方がいいという希望の多かったものについて IISマネージャの機能も追加されているという流れでいくつか GUI 操作ができるようになります。
この中でも要求フィルターの機能は多用される UrlScan というツールが標準機能化されたモジュールのため、とても声が大きかったですし、PHP を IIS で動作させる用途で FastCGI を GUIで設定できるようになっています。
実はこれらは Administration Pack という IIS Extensionとして開発されてきた機能たちになっています。Administration Pack ではあと二つアイコンが追加されるのですが、R2にはその内の一つを搭載予定で、もう一つは改良を続けることになり、R2には入らない予定です。
入る方の機能は 構成エディター です。
この構成エディターはすごく新しい構成エディターをわかりやすくするもので、XMLを直接編集するのではなく、ノードを表示してそのノードにある構成(設定)を直接編集するものになっています。
そして設定を編集後に実は その設定をスクリプトで行なう場合のスクリプトを自動生成してくれます。マネージコード(Microsoft.Web.Administration)、JavaScript(Microsoft.ApplicationHost.WritableAdminManager)、AppCmd それぞれの生成例が表示されるのでこれをカット&ペーストして自動化に役立てることができます。
改良して欲しいなあと当然思うのは PowerShellのスクリプトをまだ吐いてくれない点です。これは開発チームに強くフィードバックしています。
一方で含まれない機能は IIS Reports というものです。皆さんは Log Parser というツールをご存知でしょうか。IISのログを収集してそれを整理して解析を行なう際に便利なツールです。IIS Reports はこれを一歩進めて、現場でよく利用される典型的なグラフを自動生成してくれる機能で、当初は Log Parser を内部的に使っていましたが、現在はどうか私は知りません。初めて登場したときには Administration Pack は Log Parser のインストールを前提条件にしていました。現在はその前提条件は無くなっています。下記のようなグラフが出るんですよね。
R2 に入らないことが残念なんですが、察するにこのツールへのお客様の期待値が高く、機能的に不十分だったため人気が出なかったと想像しています。普段 W3C ログから Excelに取り込んで苦労なさっている方にはこういうものの開発は朗報だと思います。とりいそぎ この機能を使いたい方は Administration Pack を Windows Server 2008 にインストールいただければこの機能も使用できます。各 Extension の R2 対応については今後対応していくと思いますのでお待ちください。
システム構成ファイルへの設定の監査ログ
IIS7.0 でできなかったことの一つとして、構成ファイルへの書き込み内容を記録として残すという点があります。R2ではイベントビューアで記録を確認できるようになります。既定ではオフになっているのでオンにしてから使うものになります。
ベストプラクティスアナライザー
これはIISの新機能というよりは R2 の新機能で、IISはその対象になっている役割と言ったほうが正しいと思います。以前からサーバー製品で製品とは別に出荷されてきたものですが、今回はOSにそういうものを載せているということになります。例えば 基本認証だけどSSLは? とかいう項目をチェックしてくれます。
サーバーマネージャ-の機能として搭載されますので Webサーバー の役割を追加した際にはチェックしてみてください。ただ、ベータ段階ではチェック項目が少ないのでどんなものかだけ把握できると思います。Server Core にも PSH のコマンドレットが搭載されますのでそちらでも使えるようになると思います。
Start /w ocsetup BestPractices-PSH-Cmdlets
add-module BestPractices
get-bparesult, invoke-bpamodel set-bparesult
そして Part II の最後にはアプリケーションの移行に関する注意点を説明をしましたが、それは別テーマで今度書こうと思います。
Comments
- Anonymous
January 01, 2003
時間がある時によく質問のある内容を書きとめておこうと思います。今回はまずはIIS7に触れる上で最も最初にあたる壁、どうやってインストールするかです。コマンドラインなど、やる段階で「ここを参照すれば」とこの投稿を思い出してもらえるとうれしいです。