読者です 読者をやめる 読者になる 読者になる

Linode vs. Slicehost

VPS Rails

今日は Rails勉強会@東京第34回 に行ってきたのですが、そこで「Rails を動かすレンタルサーバのお勧めは?」という質問に対してVPSの Slicehost がお勧めされるという場面がありました。
まあまあ確かに Slicehost もすばらしいとは思うのですが、VPS といえば猫も杓子も Slicehost みたいになってるので、VPS歴3ヶ月の私が先日契約した Linode というVPSの紹介をしてみたいと思います。

LinodeSlicehost と同じ Xen を利用した VPS を提供している会社で、価格設定や独自のシンプルなコントロールパネル、TwitterSNS を使ったサポートなど似た部分が多く、ターゲットとなる顧客層もかなり似通っているのではないでしょうか。Slicehost と比べて全く遜色のないVPSだと思えるのですがなぜか国内ではほとんど言及がなく情報があまりありません。GoogleLinode を検索しても、トップに出てくる日本語の記事は2004年という体たらくです。
2003年に設立された当初はUMLを利用したVSPだったようで、UMLのためパフォーマンスはそれほど良いとは言えなかったようですが、2008年に入ってXenを利用するようになりその心配はなくなりました。最近だと Rails Rumble にサーバを提供したなんてニュースがありましたね。一昨年から始まったような Slicehost とは年季が違うのですよ。

VPSを契約する際にはもちろん Slicehost も考えたのですが、Slicehost でなく Linode を選んだ決め手となった点を以下に2つほど書いておきます。

コストパフォーマンスが高い

一番安いプランではすべての項目において LinodeSlicehost を上回っています。

Plan RAM Strage Transfer Price
Linode Linode 360 360MB 12GB 200GB $19.95
Slicehost 256 slice 256MB 10GB 100GB $20

Rails アプリケーションを公開するような用途の場合は、やはり最低でも512MB以上のメモリがほしいところですが、そのランクのプランで比較すると$8.05/月の差が出てきます。1ドル360円で換算したとすると2898円/月に相当します。この差は大きいですね。

Plan RAM Strage Transfer Price
Linode Linode 540 540MB 18GB 300GB $29.95
Slicehost 512 slice 512MB 20GB 200GB $38

ネットワークが近い ※ ただし Fremont に限る

海外のVPSを借りるときに注意したいのがネットワークのレスポンスの速さで、これはネットワーク上の距離に依存します。pingを打ってみるとわかりますがレスポンスが返ってくるまでの時間は次のような感じになります。(使っているプロバイダや時刻などの様々な要因でこの数字は変わってきます。参考程度に考えてください。)

  • 国内: 数ms〜数十ms
  • アメリカ西海岸: 100ms代前半
  • アメリカ東海岸: 200ms前後
  • ヨーロッパ: それ以上

ブラウザでウェブページを見る程度であれば100ms程度の遅延はあまり気にならないと思います。しかし、VPSにSSHでログインしてシェルでいろいろしたり、ましてや開発環境にしたいなんて場合は速ければ速いに越したことはないです。私の個人的な体感としてはSSHで作業する場合、300ms => 使い物にならない、200ms => イライラ、100ms => 問題なし、といった感じでしょうか。

Linode は4つのデータセンターから好きな場所を選択することが可能で、日本からであれば断然アメリカ西海岸の "Fremont, CA" が近いです。ただし空きがないことも多く、その場合は最初はほかのデータセンターを利用しておき、空きができた時に移動を申請することが可能なようです。私も最初は Dallas を利用し、途中から Fremont に乗り換えました。
昨日、Fremont にサーバが追加されたらしく、全プランで計40ほどの募集がされていましたが、この記事を書いている時点ではすでに 360: 3, 540: 7, 720: 1 しか残っていません。契約を考えている方はお早めにどうぞ。

参考までに私の環境での LinodeSlicehost それぞれのサーバへの ping の結果を載せておきます。

データセンター ホスト名 time
Linode Newark, NJ, USA newark73.linode.com 197.639ms
Atlanta, GA, USA atlanta47.linode.com 167.586ms
Dallas, TX, USA dallas111.linode.com 190.425ms
Fremont, CA, USA fremont49.linode.com 106.735ms
Slicehost ---- slicehost.com *1 187.674ms

traceroute の結果も置いておきます。

$ traceroute fremont49.linode.com
traceroute to fremont49.linode.com (65.49.60.14), 64 hops max, 40 byte packets
(省略)
 6  tky001bf00.IIJ.Net (58.138.80.25)  27.191 ms tky001bf01.IIJ.Net (58.138.80.29)  6.611 ms  6.512 ms
 7  tky008bb00.IIJ.Net (58.138.80.54)  7.539 ms  7.102 ms  7.332 ms
 8  lax002bb00.IIJ.Net (216.98.96.185)  122.178 ms sjc002ix00.IIJ.Net (216.98.96.86)  105.257 ms lax002bb00.IIJ.Net (216.98.96.185)  122.602 ms
 9  equinix-sjc.he.net (206.223.116.37)  106.013 ms lax002ix02.IIJ.net (216.98.96.166)  121.818 ms  121.933 ms
10  10gigabitethernet1-1.core1.fmt1.he.net (72.52.92.109)  109.865 ms  119.764 ms equinix-lax.he.net (206.223.123.37)  121.667 ms
11  10gigabitethernet1-3.core1.pao1.he.net (72.52.92.21)  130.138 ms  123.565 ms fremont49.linode.com (65.49.60.14)  101.713 ms
$ traceroute slicehost.com
traceroute to slicehost.com (67.207.128.80), 64 hops max, 40 byte packets
(省略)
 6  tky001bf00.IIJ.Net (58.138.80.1)  6.289 ms tky001bf01.IIJ.Net (58.138.80.5)  6.063 ms tky001bf00.IIJ.Net (58.138.80.1)  6.673 ms
 7  sjc002bb01.IIJ.net (216.98.96.97)  104.968 ms sjc002bb01.IIJ.net (216.98.96.146)  108.975 ms sjc002bb01.IIJ.net (216.98.96.97)  105.251 ms
 8  sjc002ix02.IIJ.net (216.98.96.246)  105.268 ms sjc002ix02.IIJ.net (216.98.96.94)  105.039 ms  100.897 ms
 9  gi1-5.mpd01.sjc03.atlas.cogentco.com (154.54.12.169)  104.884 ms  108.953 ms  105.043 ms
(省略)
15  vl3502.na21.b016110-1.stl03.atlas.cogentco.com (66.28.5.58)  147.586 ms  147.136 ms  142.619 ms
16  38.104.162.22 (38.104.162.22)  148.103 ms  147.082 ms  146.844 ms
17  209.20.79.227 (209.20.79.227)  183.927 ms  188.443 ms  183.057 ms
18  www.slicehost.com (67.207.128.80)  187.484 ms  184.514 ms  184.518 ms

おまけ: Xen vs. Virtuozzo/OpenVZ

一口にVPSと言っても、それを実現するための仮想化環境には様々なものがあります。巷の同価格帯のVPSサービスを見回してみると主流は Xen と Virtuozzo (とそのオープンソース版の OpenVZ) のようです。しかし国内のVPSはビジネスとしてやりやすいのか Virtuozzo を採用していることが多いように思えます。例えば、最近話題になった CPIのVPSスケーラブルプラン by KDDI もそうですね。

Xen と Virtuozzo の技術的な違いを説明できるほどの知識を持ち合わせていないのでそこは他のサイトに譲りますが、国内で何となく安心だからといって安易に選ばずに Xen か Virtuozzo のどちらが自分の用途に合っているかを適切に選ぶことは価格やメモリの多寡よりもよっぽど重要だと思います。

私も Linode の前にファーストサーバのVPSの月額945円の今は亡き「プロビジネス5」を試用したことがあります。Virtuozzo でメモリは192MB。Virtuozzo は Xen と違いかなり細かいリソースの制限が可能らしくその中でも kmemsize (カーネルメモリ) の制限がかなりのくせ者でした。
プロビジネス5では kmemsize の制限は 2864640Bytes となっていて少し重い作業をするとすぐこの制限に引っかかってしまい、プロセスがいきなり kill されてしまいます。環境構築しようとして Vim をコンパイルしようとすれば kill。gem install ... で kill。ApacheMySQL を動かしたら Screen を立ち上げるだけで kill。私の使い方では全く使い物になりませんでした。メモリ192MBでそんな使い方をする方が間違ってはいるかもしれませんが、同じメモリでも Xen であれば遅くなるだけでプロセスが停止するという状況にまではなかなかなりません。

CPIのVPSで同じような状況の方が何人かいるようなのでリンクを張っておきます。

最後に

Linode の Referral Code 置いときますね。

5402ab71d7e8365f2fcc0c707d19941ebc57eeee

これを Sign up の際に入力していただくと、私の懐が潤うというすばらしいシステムになっております。この記事の所々に埋め込まれた Linode へのリンクを辿って Sign up していただくと Referral Code をコピペする手間も省けるのでお勧めです。

*1:ウェブサイトが VPS と同じ場所にあるようなので slicehost.com で代用しました