アットマーク・アイティ @IT@IT自分戦略研究所QA@ITイベントカレンダー+ログ

 @IT > Linuxの真実、Windowsの真実(6)
 
@IT[FYI] 企画:アットマーク・アイティ 営業企画局
制作:アットマーク・アイティ 編集局
掲載内容有効期限2004年12月31日

 

Linuxの真実、Windowsの真実(6)
ワークロード4:Webホスティング

第6回
Webサーバ・プラットフォームとしてのLinuxとWindows


Apache、IISによるWebサーバ構築のTCOとリスク、拡張性

 

 初期のインターネットがUNIXプラットフォームで発展してきたのは事実だ。この点でUNIXの流れをくむLinuxには、インターネットを支えてきたUNIXの実績が受け継がれているし、多くのユーザー認識もこれに沿っている。ほとんどのLinuxディストリビューション・パッケージに同梱されているApacheは、「Webサーバ・ソフトウェアの定番」として定着した存在である。

 一方、インターネット・テクノロジではWindowsプラットフォームは後発である上に、Windowsの標準WebサーバであるInternet Information Services(以下IIS)は、過去にCodeRedやNimdaなどといった重大なワーム攻撃のターゲットとされたことで、すっかりネガティブなイメージが定着してしまった感がある。

 本稿では、いま現在で企業が選択するWebサーバ(Webアプリケーション・サーバ)として、IISとApacheを再評価してみたい。

    ApacheとIISのマーケット・シェア

 Apacheを推奨する根拠として「ApacheはシェアがNo.1のWebサーバで、高い実績があるから」という理由をよく聞く。確かに、米Netcraft社の調査「Web Server Survey」によれば、世の中で稼働しているWebサーバのシェアNo.1はApacheである。これによれば、2004年10月段階で、Apacheのシェア約70%に対しIISは約20%と、Apacheが圧倒する結果となっている。

 しかしこれとは別に、米Port80 Software社が公開している「Which Web Server Is "Winning" ?(どのWebサーバが勝者なのか?)」という資料もある。原稿執筆時点で公開されているのは2004年6月時点の情報だが、こちらを見るとApacheとIISのシェアは20.3%対53.9%とIISがApacheを凌駕している。

表 Fortune 1000企業が利用しているWebサーバ(2004年6月)
出典:米Port80 Software社「Which Web Server Is "Winning" ?」

 両者の結果がまったく逆転しているのは、調査対象の母集団が異なるためだ。前者のNetcraftの調査は、Webサイトの規模を問わず幅広く集計しており、1日数十万〜数百万ページ・ビューという大規模サイトから個人サイトまでが含まれている。これに対し後者のPort80の調査は、米国の主要企業であるFortune 1000の企業が運用しているWebサーバだけを対象としている。つまり、大企業が運営するサイトにおいては、ApacheよりもIISのシェアの方が格段に高く、全体の半数以上がIISを選択しているということである。

 Port80の調査は、イントラネットではなく、インターネット向けに公開されたサーバに対するものだということを忘れてはならない。米国の主要企業が外部向けに公開しているインターネット・サーバにおいて、IISは高い実績を持っている。「攻撃に弱いIISを外部に公開するのは心配」といった意見を耳にすることがあるが、これは間違った先入観であることをこれらの実績は裏付けている。

    設計・導入:カスタマイズに求められる経験とスキルに大きな差

 企業でこれだけIISが採用される理由は何だろうか。以下では、企業でのWebサーバ導入を想定して、Linux+Apache(以下Apache)とWindows Server 2003+IIS 6.0(以下IIS 6.0)の特徴を比較してみよう。

 単純にWebサーバをインストールして、いくつかの静的なWebページを公開するだけというなら、両者に大きな違いはない。しかしWebサーバのインストール後に、標準外の構成でWebサーバをカスタマイズする場合の手間と必要なスキルは異なる。IIS 6.0では、ほとんどの作業を「インターネット インフォメーション サービス マネージャ」と呼ばれるツールと、そこから呼び出すウィザードなどで実行できる。ネットワークやWebサーバに対する理解は必要だが、不可欠な設定や組み合わせ、逆にやってはいけない設定などはGUIによってガイドされる。Windowsを使い慣れたユーザーなら、特に違和感なく設定作業を行えるだろう。

IIS 6.0のインターネット インフォメーション サービス マネージャ
ほかのWindowsの機能と同じく、IIS 6.0では、ほとんどの設定作業を共通のWindows GUIで実行できる。

 これに対しApacheには、GUIによる設定ツールの定番と呼べるものは存在しない。比較的著名なGUIツールにComanche(コマンチ)があるが、それでも広く普及しているとはいいがたい。Linux環境におけるほかの設定作業と同じく、結局はテキスト・エディタで設定ファイル(httpd.conf)を開いて編集するという方法が主流である。かなり自由度の高いカスタマイズが行えるが、httpd.confファイルの設定項目(ディレクティブ)や設定内容に精通していないと、思いどおりの設定にするにはかなりの試行錯誤が必要だ。設定ファイルの編集とほかの作業(例えばディレクトリ作成など)とを連動させる必要があるときは、ほかのプログラム(シェルなど)とテキスト・エディタを行き来しなければならない。

##
## Server-Pool Size Regulation (MPM specific)
##

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>

httpd.confファイル(一部)
実質的にApacheの設定作業は、Linux環境におけるほかの設定作業同様、設定ファイルをテキスト・エディタで編集することになる。
 
    運用管理:統合管理ツールのメリット

 永続的かつ安定的なサービスが前提となる企業のWebサーバでは、日々の運用管理を怠るわけにはいかない。具体的にはシステムの監視(正常稼働を確認する)、データのバックアップ、セキュリティ管理(修正プログラムの適用による脆弱性の排除、ネットワーク攻撃からの防御など)などがあるだろう。

 IIS 6.0では、Windows Server 2003に標準で付属する各種ツールを使って管理作業を行える。具体的には、IISの設定と監視にはインターネット インフォメーション サービス マネージャ(前出)が利用できるし、システムの監視ならイベント・ビューア(システム・ログの確認)が、データのバックアップには標準のバックアップ・ユーティリティが、セキュリティ管理にはMBSA(Microsoft Baseline Security Analyzer:修正の適用状況の確認)やWindows Update(修正の適用)、イントラネット向けのSUS(Software Update Services、修正の適用)が使える。すでに第1回にて説明しているので詳しく述べないが、Windows Server 2003のボリューム・シャドウ・コピーを利用して、システムを稼働させたまま、使用中のファイルをバックアップすることができる。またWindows Server 2003+IIS 6.0でサイトを構築すれば、クライアント側のWindowsもまとめて、万一のトラブル時にもマイクロソフトのワンストップ・サポートが受けられる、というメリットもある。

 なおWindows 2000に付属のIIS 5.0からWindows Server 2003付属のIIS 6.0へのバージョンアップでは、コードが抜本的に書き直され、信頼性とセキュリティ機能が大幅に向上された。従来のIIS 5.0では、IIS本体と複数のサーバ・サイド・コンポーネントが1つのプロセスで実行されており、いずれかのコンポーネントが異常を来すと、Webサーバ全体が影響を受ける構成だった。これに対しIIS 6.0では、IIS本体と各コンポーネントを別のプロセスで実行可能になり、システムのスループットを向上させるとともに、障害時の影響を最小限に抑えられるようになった。この詳細については、以下の別稿を参照されたい。

 Apacheの管理でもさまざまな支援ツールを利用できる。しかしWebサーバの管理に限らず、Linux環境向けのツールは種類も多い代わりに定番が決まっておらず、ディストリビューションによってツールの組み合わせは異なる。また場合によっては、ディストリビューションに含まれないツールを開発コミュニティのサイトから独自に収集する必要があるかもしれない。それだけ選択の幅が広いともいえるが、目的に合ったツールを選択、収集する必要があるし、その過程ではTCP/IPやWebテクノロジに対する経験と知識が求められるだろう。バックアップ(第1回)やセキュリティ管理(第4回)におけるLinuxの負担については、それぞれ本稿の過去の記事を参照していただきたい。

    拡張機能とスケーラビリティ

 業務でWebアプリケーションを運用するというなら、ユーザー認証や認証結果に基づくサービス内容の切り替えなどは不可欠だろう。この点Windows Server 2003+IIS 6.0の強みは、ディレクトリ・サービスのActive Directory(AD)とIISのサービスを統合できるところだ。例えば保護されたIIS 6.0のコンテンツに対するユーザー認証は、ADで一元的に行えるため、Webサーバとして独自にユーザーを管理する必要がない。ユーザーごとにIIS 6.0から提供するWebページの内容を切り替えたり(パーソナライズしたり)、必要ならユーザーごとにWebサーバにアクセスできる時間帯を制限するなど、ADのユーザー単位にさまざまな制御が可能だ。例えば学校などでは、この機能を利用して、管理者がいる昼間の時間帯のみ生徒のアクセスを許可するなどができる。

 ADを土台とするシステム統合の輪は、IISだけでなくExchange Server、SQL Server、SharePoint Portal Serverなど、マイクロソフトが提供するサーバ・ソフトウェア群すべてに広がっており、ADでのシングル・サインオンの結果を各サーバ・ソフトウェアでも利用できる。複数のサーバ・ソフトウェアを連携させるようなWebアプリケーションを安全かつ効率的に管理、運用するのに役立つだろう。

 純粋なIIS 6.0の機能ではないが、先ごろ発表されたファイアウォール/Webプロキシ・ソフトウェアのInternet Security & Acceleration Server 2004(以下ISA 2004)とIIS 6.0を組み合わせたWebサイトの運用はセキュリティ管理の面で非常に興味深い。ISA 2004で追加された「ロックダウン・モード」では、ネットワークが攻撃を受けると、攻撃元を特定して攻撃元からのアクセスのみを遮断する。攻撃判断のパターン(アクセス・モニタのしきい値の組み合わせ)は、管理者が自由に設定可能だ。Webサーバが外部から攻撃されたときには、ネットワーク・ケーブルを引き抜いて(ネットワークを完全に遮断して)様子を見るという手法が広く使われているが、こうすると攻撃を回避できるものの、インターネットを利用した情報収集もできなくなってしまう(最新情報はインターネットから得られるものだ)。これに対しISA 2004なら、サービスは継続したまま、攻撃者からのアクセスだけを拒否できる。また不正アクセスなどが発生した場合、通常はTCP/IPベースの低レベルなアクセス・ログを分析しなければならないが、ISA 2004とADを組み合わせれば、どのユーザーがどのリソースにアクセスしたかを簡単に確認できる(ISA 2004の詳細は以下の別稿を参照)。

 もちろん、Linuxでもファイアウォール・サービス(パケット・フィルタリング)が利用可能だ。具体的には、カーネルに組み込まれているNetfilterを利用する。Netfilterの設定は、iptablesというコマンドで行う。iptablesは非常に高機能で、ファイアウォールを通過するパケットに対して詳細かつさまざまな設定を行えるが、その半面、コマンドの書式は非常に複雑である。例えば次は、PINGを1秒間に1回以上受け付けないように設定する場合の実行例だ(“eth0”はインターネット側のネットワーク・インターフェイス)。

iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

 iptablesでファイアウォールを設定する場合、このようなコマンドラインを何十行、場合によっては何百行と記述しなければならない。前述したISA 2004のロックダウン・モードのような機能も理論上は実装可能だが、設定にはかなり複雑なシェル・スクリプトが必要になるだろう。

 またLinuxでも、ディレクトリ・サービスとしてOpenLDAPを利用すれば、データベースなどの認証を中央で一元化できる。ただし第2回で述べたとおり、OpenLDAPの導入は容易ではない。

    Linux+Apacheか、Windows+IISの選択はTCOと拡張性がカギ

 Webサーバ・プラットフォーム選びにおいて、Windows+IISは「実績がなく、不安定でセキュリティ的にも脆弱」というのは間違った先入観であることが分かった。こうした先入観に惑わされることなく、設計、展開、運用管理にかかるTCOを客観的に評価しなければならない。また当初は単純でコンパクトなWebサーバであっても、将来的には機能、性能的なスケール・アップが求められるかもしれない。Webサーバ選びでは、こうした将来の拡張性も視野に入れる必要がある。



<バックナンバー>
◆ インデックスページ 「Linuxの真実、Windowsの真実
◆ プロローグ 「LinuxとWindows。その本当のコストとリスクを評価するために
◆ 第1回 「ファイル/プリント・サーバの基本機能比較
◆ 第2回 「ネットワーク管理に不可欠なディレクトリ・サービス
◆ 第3回 「Linuxの本当のTCOを考える
◆ 第4回 「LinuxはWindowsより安全か?
◆ 第5回 「Office互換ソフトの実力とリスク
◆ 第6回 「Webサーバ・プラットフォームとしてのLinuxとWindows
◆ 第7回 「大規模Webホスティング・サービスでシェアを広げるWindows+IIS
◆ 第8回 「Webアプリ開発プラットフォームとしてのLinux+フリーJavaとWindows+.NET
◆ 第9回 「可用性、スケーラビリティを備えたシステム開発
◆ 第10回 「座談会:システム・インテグレータから見たLinuxとWindows(前編)
◆ 第11回 「座談会:システム・インテグレータから見たLinuxとWindows(後編)

 


ファイルサーバーとしてWindows Server 2003のパフォーマンスがLinuxを凌ぐ

エンタープライズコンピューティングにおける Windows 2000 と Linux の比較ビジネスバリューを複数のワークロードから検証

社内のファイルサーバーを効率的に管理するには?

社内のサーバーが増加し、管理コストが問題に

情報漏洩と改ざんへの対策とは?

情報の安全性を確保するバックアップ

ファイルサーバーのディスク領域管理

導入事例:ライオン株式会社
Unix と Linux の環境を Microsoft Windows Server 2003 環境へ移行。社内サーバー台数を 200 台から 15 台へ削減

導入事例:東北電力/東北インフォメーション・システムズ
Microsoft? Windows? 2000 Server の PKI サポートを利用したスマートカード導入により、約 1 万 4000 台の超大規模システムのセキュリティを効率的に強化

Windows Server Systemのホームページ

Windows Server 2003のホームページ

Windows Server 2003テクノロジ(ファイル サービスと印刷サービス)

Microsoft TechNetのホームページ

TechNet:Windows 2000 Server

TechNet:Windows Server 2003



</comment> <tr> <td bgcolor="#EEEEEE"><font size="2"><a href="javascript:KeepIt();"> <img src="/club/keepoint/images/ico_kpt.gif" alt="kee&lt;p&gt;oint保存" border="0" align="absmiddle" width="24" height="18">kee&lt;p&gt;ointで保存</a></font></td> </tr> <comment>

 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ