- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

Ruby/Ruby on Rails

はじめに Edit

Railsで作ったwebアプリを公開するためのサーバー情報メモしてみてます

記事の日付に注意。この辺の情報は変わりやすい。

また、筆者は実地動作の経験が非常に少ないので、本気で参考になるか分からないので注意

実際に試したのは<試した>って書いておきます。

いきなり私的まとめ Edit

[2010/03/30]時点でのお話。

案:共有レンタルサーバーで動かす Edit

とりあえずRails動かして公開したい場合。

利点:

  • 初期のスタートアップで人が来るかわからんサービスの場合に低予算で住む
  • managedな(管理されてる)サーバーの場合、OSの管理しないでいいから楽

欠点:

  • 動作が重い(特にCGI駆動)
  • Passengerとかない場合、導入が面倒な可能性大
  • デーモン的に動かすものや長い時間クロールするようなスクリプトは動かせないと思われる(大概長く動かすと強制killされる)

具体例:

  • coreserverでCGIで動かしている人がいるらしい
    CGI駆動はさすがにかなりキツイと思いますが、一応動くっぽいw
  • Dreamhostで動かす
    実はPassengerが入ってるので動くっぽい。ただしやっぱり共有サーバーなのでメモリが(ry
    とはいえ、ユーザーアカウント作り放題、DB作り放題なので実験にはよいw
    動かしている人いました

    Dreamhostの最大割引コード作ってみました。申し込み時にPromoCodeに
    TOBYSOFT
    と入力するだけで、初年度が1年間だと最大$97引きになります。
    PromoCode利用すると、2010/02/01時点でレンタル費用が年間$119.40なので、$119.40 - $97 = $22.4/年で借りられます
    月に直すと…安っ!!

125x125-a[1].gif

  • その他、Rails動作報告事例があるサーバー
    • coreserver
    • さくらインターネット

案: VPS借りて動かす Edit

ある程度人がくるようになってきて、共有レンタルサーバーではアカンならまずはVPSって感じだと思われる

利点:

  • 基本はroot権限もらえるので自由が効く
  • ローカルのcoLinuxやVMWareとかの仮想環境で動かしたのが大体はそのまま動かせる

欠点:

  • 安いのは海外VPSなのでレスポンスが場合によっては遅いかも
  • サーバーの管理は自前なので面倒か

メモリは512MBくらいは欲しいみたいです。
メモリとスワップ少ない環境だとRubyGemsのライブラリがインストールできないと思われる。

  • Linodeが安くて、西海岸のサーバーを選ぶと日本から近いのでレスポンスがいいらしい
  • 次点でSlicehost
  • rackspace cloudとかどうなんだろ?
  • prgmrという安すぎるが素人にオススメできない感じのも発見(コンパネ=ssh w)。

参考:

案: herokuで動かす Edit

Ruby用のクラウドサービスherokuでちょっとしたものを動かすにはよさそうではあります。
Heroku | Ruby Cloud Platform as a Service

利点:

  • DB 5MBまで無料
  • デプロイが簡単すぎ(gitでpushするだけでいいみたい)
  • サーバーの管理は不要っぽい?(managed?)

欠点:

  • ちょっとスペック上げるだけでVPSより割高に
    →有料の最低プランが$15になってました![2010/03/30]
  • tmp/とlog/以外のファイルの書き込みが制限されてるので、ファイルをアップロードするときはs3(+cloudfront)など外部サービスを利用する必要あり
  • バックグランドプロセス動かす等のオプションがけっこう高い…
  • DBがMySQLじゃなくてPostgreSQL (MySQLはAmazon RDS使ってねだって)
  • cronは無料だと1日ごと

heroku自体はamazon EC2で動いてるみたい。
そのためか、有料はどうしても割高になるっぽい。

無料プランは、DBを全然使わなくてAJAX+Sinatraで外部APIを加工して表示とかの一発ネタアプリ(?)な構成にはよさげではあります。

ちなみに、最近RubyGemsのアップロード先に広く使われているGemCutter(RubyGems.org)は、herokuとamazon s3(+cloudfront)を使ってるみたいです。

案: 安鯖を買ってきて自宅(自社)サーバーで公開 Edit

利点:

  • 最近サーバーPC安いよねー
    (セール狙えばとりあえず動くのはNTT-X STOREとかで1万数千円でゲットできる)
  • ネット接続の費用も安い

欠点:

  • ハードウェアのメンテとかいる
  • サーバーの管理はもちろん自前
  • 電気代けっこうかかるっぽい(省電力でないと1台月2000円はかかるみたい)
  • 光とかこないんですけど、ADSLとかCATV上り速度遅すぎワロタ、とかいう田舎の場合はさすがにやめた方が無難か(うちの環境のことです!)

環境上うちは上り遅すぎ&固定IP取れそうにないので一旦保留。

とはいえ一応、仕事とかではLAN内では普段から動作確認用(いわゆるstaging環境?)のため安鯖にデプロイしてテストしたり動かしたりはしてます。

Google App Engine(appengine-jruby) Edit

公式:appengine-jruby - Project Hosting on Google Code

とりあえずRailsでなくSinatraの方を試したけど、Rails3を動かす例があることはあるのですが、
勝手が違いすぎて茨の道すぎて苦労するだけでしたのでオススメしない!ヽ(`Д´)ノ ウワァァン!!

考えうる利点:

  • アクセス少ないうちは無料
  • サーバー自体はほぼ管理が必要ない(開発とソフトのメンテのみ!)
  • メチャメチャアクセスあって負荷があっても、
    手間少なくお金払えればスケールする(しかも上手く作れば安くすむ)

考えうる欠点:
上記を見るとすごく良さそうに見えるのですが…

  • ActiveRecordなどそのまま使えないのでいろいろ大変。
    サーバー上に動的にファイル保存ができないなど(ファイルのアップロードなども工夫しないとできない)
    つまり、普通のUnixサーバー用に作ったRailsアプリをそのまま動かすことはまず不可能で、
    Google App Engine用に最初から考えて作らないといけない。
    (DB違うので多分、設計レベルから)
  • CRuby(MatzRuby)でなくJRubyなので、RubyGemsなどのうちのコンパイルが必要なネイティブ拡張が動かない。
  • JRubyで動くネイティブへアクセスするライブラリも動かない(ffiというのが動かないせい)
  • それ以前にRails使う場合はRails 3が前提みたいです…
  • 途中でAppEngineが気に入らなくなっても、他のVPS環境などと互換性がないので他に移そうにも移せない!

挑戦するにしてももう数年待って整ってから挑戦した方がよさげw


No comment. Comments/Ruby/Ruby on Rails/Railsを動かすサーバー?

Name:


Attach file: file125x125-a[1].gif 46 download [Information]
Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2010-03-30 Tue 08:20:15 JST (3541d)