WebサーバとしてGNU/LinuxがOS Xより優れている3つの理由

 すでに正式なUNIXシステムとして認定されたAppleのOS Xは、動的コンテンツを提供するインターネット公開用またはイントラネット専用のWebサーバにインストールされていることが少なくない。そうしたOS Xサーバとは2年間、また別の選択肢であるGNU/Linuxサーバとはもっと長く付き合ってきたが、少なくとも3つの理由からGNU/Linuxシステムのほうが優れているといえる。

 Webサーバは企業の重要な資産であり、そのコンディションの維持はシステム管理者に託されている。だが、そうした管理は必ずしも容易ではない。毎日のように脆弱性レポートやセキュリティ勧告が出ているように、サイトでは常にセキュリティが問題になっている。ロード(読み込み)時間や応答時間といったパフォーマンスも重要な項目だ。ブラウザのショッピングカートに商品を追加するのに、実際の店舗へ買いに行く以上の時間がかかっていたのでは顧客を怒らせてしまう。また、システム管理者は可用性にも注目しなければならない。サイトがダウンすれば、管理の行き届いたほかのWebサイトに利益をすべて持っていかれることになる。

 GNU/LinuxやBSDは、概してWebサーバとして優れた実績を残している。ソフトウェアライセンスの性質上、信頼できるホスティングを安価に実現できるほか、1日に何万人も訪れる動的サイトを大きな障害なしに何百日間にもわたって稼働させることができる。

 最近、Mac OS Xを採用したWebサーバ専用マシンが増えているが、これはおそらくOS XとAppleがデスクトップ市場で成功を続けていること、またそれを受けてWebサーバに関わる立場にいるAppleユーザによってそうしたマシンの購入が決定されるというシナジー効果によるものだろう。私はPHPおよびMySQLベースのWebアプリケーションを配信するAppleマシンを何台も管理しているが、そうしたマシンの印象はDebianのようなしっかりしたGNU/Linuxシステムほどよくはない。以下ではその理由を述べる。

ソフトウェア管理が不便

 OS Xには適切なパッケージ管理機能がない。確かにディスクイメージファイルのインストールは簡単だ。アプリケーションパッケージは.dmgファイル形式になっており、この形式はAppleのインストーラプログラムによって理解される。ただし、標準的なWebサーバのセットアップに必要なソフトウェアがすべて.dmgファイルとしてパッケージ化されているわけではない。企業のポリシーによってFinkPortageといったサードパーティ製ソフトウェアのインストールが禁止されていることも多い。結局、一部のプログラムはそれに“ふさわしい”方法でインストールすることになる。手動でtarballをファイルシステムに展開したり、自力でプログラムのコンパイルやインストールを行ったりするわけだ。

 AppleのSoftware Updateは、システムを持続的に稼働させるすべてのコツを必ずしも把握していない。重大なセキュリティフィックスが適用されるまでの時間は、よくメンテナンスされたGNU/Linuxディストリビューションよりもかなり長くなることが多い。Appleは、個々のソフトウェアに対するフィックスを特定の日にまとめて提供する傾向があるためだ。

 GNU/LinuxのAPTまたはRPM packageパッケージのようにすべてのソフトウェアを集中管理できれば、もっと便利になるだろう。ほとんどのGNU/Linuxディストリビューションでは、パッケージ化されたソフトウェアがツールキットによって管理されていて、そうしたツールキットでは各アプリケーション用のフィックスの自動的に適用することさえできる。また、ディストリビューションのリポジトリに入っていないサードパーティ製ソフトウェアを自分でパッケージ化して、システム上のほかのソフトウェアと同じように管理することも簡単だ。

デフォルトのソフトウェア構成が不適切

 Appleによるサーバソフトウェアの選択(というよりも設定)方針には疑問を感じる。普通のWebアプリケーション(Internet Information Serverの下で動作しない)であればどこかでPHPを必要とするものだが、Appleから出ているOS Xの最新バージョン10.5(コード名Leopard)には、広く利用されていて必要性の高いPHPエクステンション群が用意されていない。再利用可能なコードが大量に収められた大規模なソフトウェアリポジトリPEAR(PHP Extension and Application Repository)がデフォルトではインストールされていないため、自分でインストールする必要がある(しかも適切なディスクイメージは存在しない)。また、付属のPHP環境はcalendar、mcrypt、gd(画像の動的生成に必要なライブラリ)といった便利なエクステンションをサポートしておらず、一部のアドオンソフトウェアから見るとパッケージ全体がほとんど使いものにならない。こうした問題に対する唯一の解決策は、AppleによるデフォルトのPHP環境を削除して自分でインストールし直すことだ。ただし、ビルド環境をセットアップしたり各機能の設定方法を見つけたりする苦労が伴う。

 ほとんどどんなGNU/Linuxディストリビューションでも、バイナリパッケージが付属していれば、そうしたパッケージやモジュールの選択式インストールが簡単に行える。また、ディストリビューションのなかには、リポジトリ内にある任意のパッケージを設定時にオプションをカスタマイズしたうえでソースからリビルドできるものもある。とはいえ、LAMPサーバの運用に配慮したあらゆるディストリビューションには通常、使われることの多いおなじみのPHPエクステンションがすべてデフォルトで有効化された状態で付属しているので、こうした対処が必要になることはめったにないはずだ。

UNIXの“正道”からの逸脱

 2007年にAppleのマーケティング部門が世界に知らしめたとおり、OS Xは間違いなくUNIXシステムだが、本来ならもっとUNIXらしくできる(またはそうすべき)はずなのにそうなっていない部分がある。たとえば、GNU/Linux通のほとんどの人は、/etc/fstabや/etc/resolv.confの役割をよく知っているがゆえに、OS Xではそれらが機能していないことに驚く。/etc/resolv.confはごく一部のプログラムにしか適用されない。OS Xには、ドメイン名を解決する独立した方法が複数あり、それが混乱を生む原因になっている。UNIXの標準ツールにも予想外の動作をするものが多い。たとえば、mountコマンドを実行した人以外のユーザにアクセスを許可したいと思っても、コマンドラインでリモートファイルシステムをマウントする方法がわからなかったりする。それに、よく知られている/etc/passwdファイルにはユーザのログインシェルが記述されておらず、その設定の変更に(設定ファイル類を手作業で編集しない限り)必ず使われるプログラムchshが操作するデータストアにも違いがあってその詳細は明らかになっていない。また、8進数表記のUNIXパーミッションは、ファイルの状態やアクセス権を必ずしも表していない。特定のディレクトリに変更を加えようとすると、そのシステムのPOSIX表示では問題なく書き込みが許可されているように見えるのに、“permission denied”エラーが出ることがあるのだ。これは、別のシステムのプログラミングAPI(おそらくAppleのCocoa)によって拒絶されるためだろう。さらに、標準のユーザランドツールではコマンドライン引数の順序を自由に変えられない。これは非常に不便だ。こうした詰めの甘さによる相違や厄介な点が数多く存在する。

 System VのinitシステムもOS Xでは利用できない。OS Xはlaunchdというサービスを使って、その他ほとんどのサービスを管理(また類似の機能を同時に管理するレガシーシステムをサポート)しており、さまざまな条件に合わせてサービスの自動的な起動、停止、再開といったタスクを実行する。こうしたサービスの設定はXMLファイルに記録されているため、理解しづらく、スクラッチから書き上げるのはさらに困難である。全体的にOS Xには、コマンドラインからのSSHを使った管理に関する情報があまりない。Web上にあるほとんどの手引きやハウツーものは、Mac OS Xの動作しているマシンの前にユーザがいて、マウスとGUIを使ってデスクトップシェルを利用することを想定している。だが、常にそういう状況とは限らない。

 GNU/Linuxシステムの場合、(X Window Systemのような)グラフィカルインタフェースは必需品ではなく、サーバの多くにはインストールされていない。いずれにせよ、サーバに関する設定の大部分はコマンドラインインタフェース(CLI)で行われる。そのほうが効率よく作業でき、処理のスクリプト化や自動化が容易だからだ。

OS Xの利点

 OS Xで私が気に入っている点として、デフォルトのメール転送エージェント(MTA:Mail Transfer Agent)、Postfixがある。数ある競合ソフトウェアのなかで、個人的に気に入っているものだ。Postfixは成熟したすべてのGNU/Linuxディストリビューションでも使えるが、Red Hat Enterprise LinuxDebianのような定番ディストリビューションではデフォルトになっていない。また、OS Xはマニュアルページもすばらしい出来である。

 このように長所もいくつかあるが、私にはMacをWebサーバにするメリットがよくわからない。アップデートやソフトウェアのインストールが面倒なことがあるし、それにGNU/Linuxのほうが手軽さ、柔軟性、動作、パフォーマンスの点で優れたソリューションが低コストで得られる可能性が高い。

Johannes Truschniggはコンピュータサイエンスを専攻する学生。出身地であるオーストリアのウィーンでフリーランスのGNU/LinuxおよびApple Darwinシステム管理者としても活躍している。

Linux.com 原文