性能比較!WEBrick vs. Apache
セキュリティーと速度性能
本連載の第3回までで説明したように、WEBrickは自分でコードを書くことで、かなり高性能なHTTPサーバーたり得ることが分かりました。
では、HTTPサーバーとして実際に運用するのはどうでしょうか?サーバーを公開する上で気になるのは、セキュリティーと速度性能です。
実は、2008年8月8日にRubyに複数の脆弱(ぜいじゃく)性が発見されました。WEBrickもDoS脆弱性が報告され、外部からWEBrickのサイトを停止させることが可能でした。しかし、この脆弱性は最新版のRubyで修正されているため、現在のバージョンでは問題はありません。
実際に運用するにあたっては、こうした脆弱性については常に注意し、発見された場合は速やかにアップデートやパッチによる対応をする必要があります。
速度性能については、2ページ目以降で実際にWEBrickとApacheの性能評価を行い、2つを比較することでWEBrickの特徴を解説していきます。
アプリケーションへの組み込み
さて、WEBrickを使うことで、HTTPサーバーやプロキシを手軽に作れることは分かりましたが、実際に自分でこれらを作るケースはあるのでしょうか?
一番の用途は、アプリケーションに組み込んで配布することでしょう。
現在、多くのWebアプリケーションのソースが公開されています。しかし、このアプリケーションを自分で動かす場合、HTTPサーバーやデータベースなどのインストールが必要になり、通常のデスクトップアプリケーションのようにワンクリックでインストール、稼働という訳にはいきません。場合によっては、既存のソフトとのバージョン競合でインストールが困難なケースもあります。
しかし、WEBrickとRubyで書いたアプリケーションであれば、別にHTTPサーバーを必要としないため、Rubyがインストールされている環境であれば、非常に手軽に稼働させることができます。
さらに、exerb、RubyScript2Exeなどのソフトウエアを使うと、WEBrickも含めてRubyスクリプトをexeファイル(Windowsの実行形式)にすることができます。こうすれば、Webアプリケーションながら、ワンクリックで稼働させられる環境を提供できます。
大規模なアプリケーションではなく、個人・少人数で使うようなアプリケーションの場合、WEBrickとRubyスクリプトでアプリケーションを配布すると、非常に手軽に使ってもらえるでしょう。
では、次ページ以降いよいよApacheとの性能比較を行っていきましょう。