odiak's blog

DigitalOceanを使ってみた

DigitalOcean という、アメリカのSSDのホスティングサービスが少し前から話題になっているようなので、試してみました。

1ヶ月の料金は、以下のようになっています。

一番安いプランが、メモリ512MB、1コア、SSD 20GB、転送量1TBで、$5/月です。
僕が使っているさくらVPS(1G)はディスクが100GBあるのですが、実際のところ10GBも使っていないので、20GBでも十分使えそうな気がします。

時間課金なので、必要な時だけ動かして、不要な時はスナップショットを取ってインスタンスを殺しておくこともできます。

登録とインスタンス作成

さっそく登録してみます。支払いはクレジットカードかPayPalです。

僕は$10/月のプランで、リージョンはサンフランシスコに、OSはDebian7.0 x64にしました。
(本当は$5/月のにしたかったのですが、サンフランシスコの方には残りがなかったようです)

インスタンス(Droplet)の作成が終わると、IPアドレスとrootのパスワードがメールで送られてきて、1分ほどで使えるようになります。

初期設定

今までサーバーはCentOSを使ってきたのですが、Debianは少し勝手が違ったりして手こずりました。

rbenvでrubyの環境作るまでにした事をまとめておきます。

.zshhistoryとか.bashhistoryとか見ながら適当に抜粋してるので、抜けてるとことかあるかもしれません。

# passwd

# aptitude update
# aptitude upgrade -y
# aptitude install vim

# adduser foo
# gpasswd -a hoge sudo
# vim /etc/aliaces
   root: foo@example.com  # root宛のメールを転送する設定
# newaliaces

# aptitude install zsh
# chsh -s /bin/zsh
# chsh foo -s /bin/zsh

# aptitude install iptables-persistent
# vim /etc/network/if-pre-up.d/iptables  # iptablesのルール設定用シェルスクリプト (http://qiita.com/suin/items/5c4e21fa284497782f71 を一部改変して使う)
   #!/bin/bash
   ...
   # iptables -A INPUT  -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT <- tcpの指定を外しておく(DNSでudpが使われている模様)
   iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# chmod +x /etc/network/if-pre-up.d/iptables
# reboot

# vim /etc/ssh/sshd_config  # rootでのログイン、パスワードでのログインをoffに、RSA鍵でのログインをonにしておく
# mkdir .ssh
# vim .ssh/authorized_keys  # ローカルで生成したsshの公開鍵を追加

# aptitude install ruby
# aptitude install libreadline-dev
# git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
# vim .zshrc  # rbenv用に以下を追加
   export PATH="$HOME/.rbenv/bin:$PATH"
   eval "$(rbenv init -)"
# mkdir ~/.rbenv/plugins
# git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# exec $SHELL
# rbenv install -l
# CONFIGURE_OPTS="--with-readline-dir=/usr/include/readline" rbenv install 2.0.0-p353
# rbenv global 2.0.0-p353
# rbenv rehash
# ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
## ユーザーfooでも同様に設定する
## libreadline-devのパスをrbenvでのrubyインストール時に指定しないと、railsを動かすときに怒られます (http://vvv.tobiassjosten.net/ruby/readline-in-ruby-with-rbenv/)

とまあこんなかんじです。

使ってみて

実は最初間違ってニューヨークのリージョンでインスタンスを作ってしまったのですが、sshでつないだときにNYの方がSFより若干遅延が大きい感じでした。

SFだと、まあなんとか使えるくらいです。NYだと、入力してて少しイライラします。

この後、Nginxとかunicornとか入れてRailsのアプリを動かしてみましたが、やっぱり少し遅延を感じるものの、思ったほど遅くはなかったです。

まとめ

太平洋を越えてアクセスするので、さくらのVPSなど国内のサーバーに比べてアクセス時の遅延が大きくなりますが、使えないほどではないです。

また、$5/月〜の低価格でSSDのサーバーが使えるのもなかなか魅力的なので、海外向けのサービスとかにも使えるかもしれません。

例えば僕の場合だと、http://odiak.net/reversi/がアメリカからのアクセスが多いので、こっちに置いてみてもいいかなと思いました。