Windows Server 2008 R2(IIS 7.5)の登場によって、多くのIIS管理者がバージョンアップの検討を始めている。そこで当然話題になるのが既存アプリケーションの新サーバへの移行である。このWeb配置ツールという拡張機能は、当初そうした移行を行うためのツールとして開発が始まった。しかし、ユーザーやWindows開発部門のほかのチーム、microsoft.comを運営しているチームからの要望により、かなり性格の違う、多機能なものにどんどん変化していった。結果、なかなかVer.1.0が出荷されなかったほかの拡張機能とは異質のツールになっている。
Webサーバの移行ツールが必要とする機能にはいくつか考えられる。現在のサーバ状況を診断する機能、コンテンツを新サーバに同期する機能、新サーバを元のサーバに合わせて構成する機能など、数多くある。Web配置ツールを開発したチームは分解アプローチを採用し、当初はそれぞれの機能をコマンドのパラメータで実装した。そして最終的にはIISマネージャのUI拡張を始め、Windows PowerShellに対応するところまで準備ができてから出荷を行った。結果、Visual Studio 2010の発行エンジンに採用され、WebPIでもこのツールが利用されている。1つ注意があるとすれば、このツールはIIS 6とIIS 7が対象となっており、残念ながらIIS 5の環境とは同期ができない。
最も分かりやすいWeb配置ツールの機能は、パッケージ機能である。サイトやアプリケーションを、IISマネージャ内でパッケージとしてエクスポート/インポートすることができる。
また、複数のサーバに対して実行や同期できるように、コマンドラインやWindows PowerShellでの操作なども実装されている。このmsdeployコマンドはnetsh並みにパラメータの多いコマンドになっているので、ぜひヘルプをじっくり参照いただきたい。
Windows PowerShell で利用する方法論についてはIIS開発チームJames Cook氏のブログが詳しい。
■[トピック]Windows Server 2003/IIS6 をWindows Server 2008/IIS 7に移行したい
非常に長いスレッドになっているが、初めてのユーザーがmsdeployにチャレンジした様子であり、内容が網羅的である。それ故に参照数も20万を超えているのであろう。ここでつまずいているのがWeb配置ツールのプロバイダなので、そこを少し解説しておこう。
Web配置ツールでは処理あるいは構成する要素に合わせてプロバイダというものを用意している。例えばappPoolConfigプロバイダはアプリケーション・プールの同期を行うために使用できる。ここで取り上げているスレッドの議論では、webServer60プロバイダが登場しているが、これは元マシンがIIS 6の場合のサーバ全体の同期を行うためのプロバイダである。元マシンもIIS 7の場合は、webServerプロバイダやappHostConfigプロバイダを使用できる。実はカスタム・プロバイダを記述することも可能で、Web配置ツールの開発チームのブログで取り上げている。
このページではサンプルとしてMySQLを扱うdbMySqlや、リモート先でバッチを実行するためのrunCommandプロバイダのサンプルを紹介しているが、出荷されたWeb配置ツールではこれらの機能は実装されているので、実際にはコード・サンプルとして利用するといいだろう。
■Search Engine Optimization Toolkit
現段階ではまだ英語版として開発中だが、興味深い拡張機能を紹介する。少しさかのぼると、IIS 7の初期の拡張機能として、「Administration Pack」というIISマネージャのUI拡張などを含んだものが開発されていた。このAdministration Packの機能は、結局IIS 7.5で標準機能として取り込まれた。しかし、取り込まれなかった機能が1つだけある。IIS Reportsという機能がそれであり、このSearch Engine Optimization Toolkitの基となっている。IISのログから簡易なグラフを数種類作成できるなど、イントラネットで使うにはとても便利な機能であった。だがIIS開発チームはそれでは満足できなかったようである。
この拡張機能の名前からも分かるように、一歩踏み込んでインターネットで利用するサーバでも有効に活用できるように、SEOを意識したものにパワーアップしている。少しだけ現在の開発段階の機能を紹介する。基本的にIISマネージャで操作する。
基本的にまず分析(Analysis)を実行する必要がある。その上でSEO向けアドバイスを筆頭に、サーバ上のコンテンツの状態(使用している容量やファイル数など)、パフォーマンスに関する情報(実行時間の状況)などを見ることができる。コンテンツ調査結果やパフォーマンスの情報はどんな状況で利用しているIISでも活用できる非常に便利な機能であり、以前のIIS Reports機能から強化されたものだ。
SEO対策向けの機能はこの名称になってから初めて追加されたもので、一般的にSEO対策といわれている設定項目(のうち、初歩的なもの)をチェックしてくれる。リクエストを処理した際のヘッダやリンクまで整理して表示するといった機能も持っている。この拡張機能は、多くのページを管理しているようなユーザーは重宝するはずだ。
■[トピック]新機能リクエスト:分析結果をエクスポートしたい
ほかのマシンで見るために結果をファイルにエクスポートしたいという機能のリクエストだが、実はすでにActions → Open Query 操作を行った場合に表示される「クエリー・ビルダー」を使えば、CSV形式で出力可能である。そしてBeta 2からはダッシュボードのReportドロップダウンからViolation、URL、Linkそれぞれの一覧をエクスポート可能になっている。おまけに分析を複数回している場合には、ある分析と現状を比較するCompare機能もあるので、状況が改善できたかどうかのチェックも容易だ。
今回の後編では、IISの拡張機能について、その入手方法、WebPI、代表的ないくつかの拡張機能の詳細などについて取り上げ、何ができるのかや、その特徴、よく遭遇する問題などに触れた。IIS 7.5と拡張機能を利用すれば、いままでのIISよりもかなり多くのことができるようになっていることが分かったと思う。ぜひIIS TechCenterの拡張機能ページの更新状況をウオッチして、いまある拡張機能や、これから登場するものを有効に活用していただきたい。
IIS開発チームは今後も便利なモジュールを継続して提供していくことになっており、既存の拡張機能もさらに洗練されてバージョンアップしていくだろう。フォーラムも日英ともに活発になってきており、特に日本語の方に関しては、私も回答者の1人として参加しているので、積極的に参加していただきたい。
久しぶりにWindows Server OSを使った人や食わず嫌いを脱した方からのご意見なども伺っているが、IIS 7の機能向上に驚かれているようである。今回はIIS 7.5について解説したが、今後Windows Azureを利用したいユーザーも、IIS 7の原理を知っておくと必ず役に立つだろう。Windows Server 2008 R2 に含まれ、Windows Azureの基盤にも利用されている、多機能/多目的で、拡張機能の力を借りて継続的に成長するWebサーバ「IIS 7.5」をぜひ活用していただきたい。
Copyright© Digital Advantage Corp. All Rights Reserved.