アズルトラベルのWebサイトリニューアルを手がけているAMWソフトウェアの二人。Visual Studio 2010とASP.NETの採用が決まったもの、担当の坂本はブログの導入にPHPのWordPressを使いたいと考える。どうやらPHPのWebアプリケーションはIIS上でもきちんと動作するらしい。実際はどうなんだろうか?
登場人物
岩崎課長:Web技術課長。今回のWebサイトのリニューアルを統括する。プラグラマーあがりだが、知識がやや古いかも。
坂本:別のシステム会社から転職してきたプログラマーで、技術チームの現場をまとめている。個人でサイトも運営しているため、Web技術に明るい
オープニングトーク
坂本:やっぱりWordPressは慣れているから使いやすいなあ。
岩崎課長:新しいノートPCを買ったからといって、坂本はまた職場でネットサーフィン(死語)か? WordPressも使えるのがわかったんだから、ブログの実装は進んでいるのか?
坂本:また、課長も失礼ですねえ。これでもちゃんとPHPアプリケーションの開発ですよ。
岩崎課長:あれ?メールや資料作りはノートPCで済むけど、アプリケーション開発は実行環境やデバッグもあるから、デスクトップPCなんですよねえといってなかったっけ? 結局、うちの仕事が持ち帰れないから、けっこう不便だって。
坂本:実はマイクロソフトのWebPIというインストーラーを使うと、必要なアプリケーションの実行環境がクライアントOSに簡単に構築できるんです。Webキャストをやりながら試したら、簡単でした。だから、この1台で開発が全部済むんですよ。すごいでしょ。
岩崎課長:なるほど。先日調べておいてくれといった、ASP.NETアプリケーションとPHPアプリケーションの同居の話はどうなったのかな? 障害時にどっちかに影響が出たら、問題だからきちんと調べておいてくれ。
坂本:それですが、アプリケーションプールという仕組みがあって大丈夫だとか。あと、PHPをキャッシュで高速化する仕組みがあるとか。ありゃ、調べたんだけど、うろ覚えだな。
岩崎課長:実際動かすとなると、そこらへんも重要だぞ!しっかり調べておいてくれ!
坂本:りょ、了解しました!
Web PIで速攻環境構築を試そう
前回の記事で、PHPアプリケーションをWindows上のIISで動かすことによるメリットはいろいろあることがわかっただろう。そうであるならば、PHPアプリケーションの開発環境としてもWindowsを準備するのが合理的であるはずである。
Windows上でPHPアプリケーションを開発するための環境を用意する方法も、同じように簡単である。Web PIを使った統合インストールで、すぐに開発を始められる。ここでは開発者にとってPHP on Windowsの利点を見ていこう。
Windows上でPHPアプリケーションを動かすための最短ルートはWeb Platform Installer (Web PI) を使った統合インストールである。Web PIはマイクロソフトのWebテクノロジーを利用するすべてのユーザーにお勧めできる、最速の環境構築のためのインストーラーだ。
Web PIはWindows Server 2008 R2 (IIS 7.5) / Windows Server 2008 (IIS 7)だけでなく、Windows Server 2003 (SP1以降) でも実行可能である。またサーバー系オペレーティングシステムだけでなく、Windows 7はもちろんのこと、Windows VistaやWindows XPといったクライアントオペレーティングシステム環境(Professional Edition等、IISコンポーネントが含まれているエディションのみ)でも、Web PIを使った統合インストールが可能である。
統合インストールを行なう場合には、最初にWeb PIをダウンロードしてくる必要がある。マイクロソフトのWebサイトからWeb PIをインストールすると、スタートメニューにWeb PIのショートカットが登録される。ここからWeb PIを実行すると、最新の統合インストール対応のアプリケーションリストを取得し、それらのアプリケーションがいくつかのカテゴリに整理されて一覧で表示される。Web PIでインストールできるアプリケーションは日々増えているが、2010年6月現在で登録されているアプリケーションを簡単に紹介する。
- Webプラットフォーム
- IIS本体および各種のランタイムやツールキットが登録されている。ASP.NET/ASP.NET MVCやPHPのほか、Silverlight ToolkitやSQL Server等のWebアプリケーションを実行するための環境で利用されるプログラムが登録されている。無償で利用できるWebアプリケーション 開発環境であるVisual Web Developer 2010 Expressも、ここからインストールすることが可能だ。
- Webアプリケーション
- WordPressをはじめXOOPSやSugarCRMといったWebアプリケーションをインストールできる。英語版だけではなく日本語版パッケージが登録されているものもある。
- メディア プラットフォーム
- 動画のストリーミング配信を行なうIIS Media Servicesや、Webサーバーの負荷分散を行うExtensionであるApplication Request Routing (ARR) など、最近利用されることが増えてきているリッチメディア配信に対応するためのプラットフォームが用意されている。
これらの多数のアプリケーションやツールがWeb PIに登録されている。そして実際にインストールを開始する際には、各アプリケーションが必要とするモジュールやサービスの依存関係を自動的に認識し、IISや関連モジュールはもちろんのこと、データベース接続用のコネクタやMySQLデータベースのインストールまで、一括で行なうことが可能だ。
同居できる秘密
アプリケーションプールとは?
Web PIを使うと、1台のコンピュータにさまざまなモジュールをインストールすることができるが、同じマシンにASP.NETで作られたアプリケーションとPHPで作られたアプリケーションを同時にインストールして大丈夫なのだろうかと思われるかもしれない。これに対してIISではアプリケーションプールという仕組みを用意しており、この仕組みによって複数のアプリケーションを安全に実行できるようになっている。
アプリケーションプールはIISのアーキテクチャ上とても重要な仕組みになっている。IISでは、Webアプリケーションのプログラムを、アプリケーションプールという形でIIS本体から分離した形で実行する。IIS本体からアプリケーションの実行環境を分離することで、なんらかのエラーによりアプリケーションがクラッシュしても、IIS本体に影響を与えないようになっており、Webサーバーとして堅牢性を高めているわけだ。
またアプリケーションプールは複数のプールを同時に実行することが可能であり、それぞれ違うアプリケーションを分離したプールの中に隔離した形で実行することができる。これによりASP.NETランタイムの違うバージョンを利用するアプリケーションを1台のサーバー上で同時に実行したり、ASP.NETアプリケーションとPHPアプリケーションを同時に実行したりすることが可能である。
アプリケーションプールを活用することで、これまでそれぞれのアプリケーション用に構築していたサーバーを、1台のWebサーバーに統合することも現実的な選択肢となる。古いASPアプリケーション (*.asp / クラシックASPと呼ばれる) と最新のASP.NETアプリケーションを同じサーバーで動かしつつ、オープンソースのPHPアプリケーションを利用する、といったことがIISのアプリケーションプールを活用することで可能となる。
古くなった複数のWebサーバーを新しいハードウェア上のIISへ統合化し、既存のアプリケーション延命しながら新しいサービスを利用していくこともできるのである。
(次ページ、Webアプリケーションの開発環境に自由を)
この連載の記事
-
最終回
データセンター
スクウェア・エニックスがコマースでASP.NETを採用する理由 -
第6回
データセンター
ヤフーが「GyaO!」でSilverlightを採用する理由 -
第4回
データセンター
わがまま?WordPressをIIS上で使いたい! -
第3回
データセンター
習うより慣れろ!ASP.NETでWebアプリを作る -
第2回
データセンター
最新ASP.NETを知るための3つのキーワード -
第1回
データセンター
Webアプリケーションをカイゼンせよ! -
クラウド
マイクロソフトのWeb開発ツールで中身も見た目もクールに - この連載の一覧へ