はじめに
Rubyは簡潔な言語であり、この点は開発において重要な意味を持ちます。つまり、コード行が少なくなれば、開発にかかる時間やメンテナンスの費用が減少するということです。RailsはRubyベースのWebアプリケーションフレームワークで、ほとんどの開発者にとって扱いやすいフレームワークですが、大規模なWebアプリケーションをデプロイする際にスケーリングの制限に直面することがあります。Railsアプリケーションを多数のサーバーに拡張して何千ものユーザーを同時に処理しようとすると確かに問題にぶつかる可能性がありますが、中小規模のRailsアプリケーションならば、適切なツールとテクニックを駆使すれば効果的にデプロイできます。
この記事では、そのための具体的な方法を説明します。以降では、私のお気に入りのRubyおよびRails開発IDEであるNetBeans 6.0と、オープンソースのサーバーとキャッシングシステムを使いながら、私が担当している典型的なRailsアプリケーション(シングルサーバー上で動作し、100人程度の同時実行ユーザーに対応)を例にとって説明していきます。まず、RubyおよびRailsを開発するためのNetBeans 6.0の設定方法を説明してから、Railsアプリケーションを効率よくデプロイするためのテクニックについて述べていきます。
この記事は、読者にRails開発およびバージョン管理の経験があることを前提としています。Rails開発に関してはRailsアプリケーションの作成およびRailsコマンドラインツールの使用についての知識、バージョン管理に関してはコマンドラインSVNツールのインストールと使用についての知識が必要です(「補足説明1:バージョン管理にSubversionを使用する」を参照)。また、本番環境用Linuxサーバーの設定(およびRuby、Gem、Railsのインストール)の方法を知っていることも前提条件になります。これらを設定するための手順は説明しません。この記事を最大限に活用するためには、RailsおよびLinuxサーバーの他に以下のテクノロジを導入する必要があります。
必要なテクノロジ
- NetBeans 6.0
- nginx HTTPおよびプロキシサーバー
- Mongrelサーバー
- memcachedシステム
svn propset svn:ignore "*.log" log svn propset svn:ignore "schema.rb" db svn revert public/index.html rm public/index.html