Glide Note

glidenote's blog

MacからVagrantコマンド一発でSSDなVPS(DigitalOcean)上にCentOS6.5+Docker環境を構築する

前回のVagrantとSSDなVPS(Digital Ocean)で1時間1円の使い捨て高速サーバ環境を構築する - Glide Note - グライドノートの続き。

Vagtant+DigitalOceanだけでも十分便利なんですが、先日CentOS6.5がリリースされ、正式にDockerがサポートされたので、DigitalOcean上にCentOS 6.5+Dockerな環境を用意してみる。
といっても、2013年12月20日現在DigitalOceanではCentOS 6.5なimageが提供されていないので、選択出来るCentOS 6.4のイメージを使いながら、Vagrantを利用してコマンド一発でCentOS 6.5+Docker環境が作れるようにした。

これは何

  • Vagrantを利用して、DigitalOcean上にCentOS 6.5 + Dockerな環境をコマンド一発(vagrant up --provider=digital_ocean --provision)で構築します。
  • CentOS 6.5よりDockerがサポートされていますが、2013年12月19日現在DigitalOceanではCentOS 6.5のimageが提供されていません。これを利用することで簡単にCentOS6.5+Dockerが利用可能になります。
  • 安く、SSDで高速な開発環境を簡単に構築できます。時間単位での課金なので財布に大変優しい

事前準備

Macでの利用を想定した手順になっています。

2014年7月18日 追記
DigitalOceanのAPIがv2.0になりhttps://cloud.digitalocean.com/settings/applicationstokenの生成が必要になりました. Vagrantfileにprovider.token = 'xxxxxxxxxxxxxxxxxxxxx'といった形でtokenを設定する必要があります. またregionの指定方法もSan Francisco 1からsfo1という感じで変更になっています.

DigitalOceanに申し込んでAPIのclient_idapi_keyを取得する

  1. DigitalOceanに申し込む
  2. https://cloud.digitalocean.com/ssh_keysで作成したインスタンスに接続するためのssh keyを登録
  3. https://cloud.digitalocean.com/api_accessからclient_idapi_keyを取得しておく

前回同様にここ経由で申し込んで頂けると私の懐が潤います!

2013年12月20日現在の1時間あたりの料金プランは下記のような感じでホントに安い。

Vagrantをインストール

Vagrantからファイルをダウンロードしてインストール。2013/12/19現在最新の1.4.1を利用してます。

vagrant-digitaloceanのインストール

vagrantコマンドでvagrant-digitaloceanをインストール。vagrant-digitaloceanは2013/12/19現在最新の0.5.1を利用

1
vagrant plugin install vagrant-digitalocean

curl-ca-bundleのインストール

apiを叩くのに必要なので、brewで導入

1
brew install curl-ca-bundle

使い方

リポジトリをclone

1
git clone https://github.com/glidenote/vagrant-docker-digitalocean.git

Vagrantfileを下記部分を自分の環境に合わせて修正

  • config.vm.hostnameには付けたいホスト名を設定
  • provider.client_idには準備で作成したclient_idを設定
  • provider.api_keyには準備で作成したapi_keyを設定
  • provider.ssh_key_nameには準備で作成したssh鍵名を指定
  • regionは日本からのレスポンスが良いSan Francisco 1、sizeはDockerを利用するのに快適な1GBに設定しています。2013/12/19現在size1GBのインスタンス(Droplet)は1時間2円弱(0.015ドル)です。売り切れの場合などは必要に応じて適時変更してください

CentOS6.5+Dockerなインスタンス(Droplet)の作成

コマンド一発でインスタンスを作成。ドンッ!! 4〜5分でCentOS6.5+Dockerな環境が出来上がる。

1
vagrant up --provider=digital_ocean --provision

インスタンス(Droplet)にsshログイン

vagrant sshでssh接続するとIPを覚えておく必要がない。

1
vagrant ssh

DigitalOcean上でDockerを動かしてみる

インスタンス作成時にDockerを自動起動させているので、すぐに使えるようになってます。 たとえば下記でfedoraで立ち上げてみる。どーん!

1
sudo docker run -i -t mattdm/fedora /bin/bash

すると1〜2分くらいで、下記みたいな感じでfedoraが使える。

1
2
3
4
5
6
7
8
[[email protected] ~]# sudo docker run -i -t mattdm/fedora /bin/bash
Unable to find image 'mattdm/fedora' (tag: latest) locally
Pulling repository mattdm/fedora
373dc830edcd: Download complete
871613fadf3d: Download complete
7c8cf65e1efa: Download complete
bash-4.2# cat /etc/redhat-release
Fedora release 20 (Heisenbug)

使い終わったらインスタンス(Droplet)を削除

DigitalOceanは停止状態(halt)だと課金されるので、使い終わったら、インスタンスをdestroyで消す。

1
vagrant destroy

前回も思ったけど、なんて便利な時代なんだ!!
時間課金で安いし、SSDで早いし、手元のマシンはファン回りっぱなしとかならないしDigitalOcean最高。

参考

Comments