今年の初めくらいから個人的な技術検証にはSSDで動作が速く、1時間1円で料金が安いのと ロケーションをSan Franciscoにするとsshでもレスポンスが悪くないので、全部Digital Oceanを使っている。(徳丸先生が紹介する前から使っていたんだ!)
Digital OceanについてはRebuild: 2: Rails, Redis, VPS (Kenn Ejima)の42分くらいから言及されてます。必聴です。
使ってる旧型のMacBookAirみたいな貧弱なマシンだとローカルでVM動かすとファン回りまくりとかで泣きたくなるので、Digital Oceanだと泣かずに済んで快適。
そんで今日Vagrant経由でDigital Ocean利用すると、コマンドラインから必要なときに新規インスタンス(Droplet)作って、 検証終わったら削除という手軽な使い捨て高速サーバ環境が利用出来て検証に大変便利ということを知った。(APIの存在は知っていましたが、情弱なのでブラウザから毎回ポチポチやってました…)
Digital Oceanに申し込んでAPIのclient_id
とapi_key
を取得する
- Digital Oceanに申し込む
- https://cloud.digitalocean.com/ssh_keysで作成したインスタンスに接続するための
ssh key
を登録 - https://cloud.digitalocean.com/api_accessから
client_id
とapi_key
を取得しておく
ここ経由で申し込んで頂けると私の懐が潤います!
2013年12月05日現在の1時間あたりの料金プランは下記のような感じ
Vagrantをインストール
Vagrantからファイルをダウンロードしてインストール。2013/12/05現在最新の1.3.5
を利用してます。
vagrant-digitaloceanのインストール
vagrantコマンドでvagrant-digitaloceanをインストール。vagrant-digitaloceanは2013/12/05現在最新の0.4.1
を利用
1
|
|
curl-ca-bundleのインストール
apiを叩くのに必要なので、brewで導入
1
|
|
Vagrantfileを作る
私は下記のようにディレクトリを掘って、Vagrantfileを用意
1 2 3 |
|
2013年12月9日 追記
申込みが増えているのかサンフランシスコで最小プラン(メモリ512MB)がずっと売り切れの状態なので、
provider.size = '1GB'
にするか、provider.region = 'New York 2'
など別ロケーションを選択するなどの必要があります。1GBプランだと1時間約2円(0.015ドル)です。
私が使ってるファイルの中身は下記のような感じ。設定したssh key
の名前や、APIページで取得したclient_id
とapi_key
はここで設定。
repoにepelを追加して、起動時に最低限必要なパッケージを入れるためにpuppetを走らせてます。
2014年7月18日 追記
DigitalOceanのAPIがv2.0になりhttps://cloud.digitalocean.com/settings/applicationsでtoken
の生成が必要になりました.
下記の例だとprovider.token = 'xxxxxxxxxxxxxxxxxxxxx'
といった形でtokenを設定する必要があります.
またregion
の指定方法もSan Francisco 1
からsfo1
という感じで変更になっています.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
manifests/default.pp
は下記のような感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
インスタンスの作成
vagrant up
コマンドを利用して、インスタンスを作成。ドンッ!
1
|
|
すると下記のように数分でインスタンスが作成される。
1 2 3 4 5 6 7 |
|
San Francisco 1
だと時間帯によって結構時間かかるので、
早めに検証したい場合はNew York 2
とかに変更すると良いかも。
私はpuppet走らせるので、--provision
を付けてインスタンス作成してます。
1
|
|
起動したインスタンスにssh接続
vagrant ssh
でssh接続するとIPを覚えておく必要がない。
1
|
|
使い終わったらインスタンスの削除
Digital Oceanは停止状態(halt)だと課金されるので、使い終わったら、インスタンスをdestroy
で消す。
1
|
|
なんて便利な時代なんだ!手元のMacBook Airも熱くない!!