2014-01-24(金) [長年日記]
■ DigitalOceanに開発環境を作ってみた
ことの発端はちょっと前に@t_wadaが重い鞄のせいで腰を痛めた話で、まぁリンク先では大きなラップトップを入れて持ち運べるバックパックは何が最適かといういかにもギークらしい話題が展開されているのだけど、技術者なら「そもそも重いものを持ち歩かずに済ます方法を考える」べきだよなぁと思ったこと。そう、このクラウド時代に「使い慣れた開発環境を一式みずから持ち歩く」なんて、前時代的な発想だと思うのよ。
じっさい最近は職場の環境が快適なこともあってLet'snoteは重いのでほとんど持ち歩かずにいたのだけど(Nexus7すら重いと感じる昨今)、こないだのAsakusa.rbで開発するために引っ張りだしたら、1.3kgはやっぱりまぁ重いのなんのって。ちゃんと開発できるだけのパワーがあるPCを持ち歩くなんて現実的じゃないって。そういう時代はもう、終わりにしよう。
Web屋なら、LinuxサーバとWebブラウザだけあればだいたいなんでもできるはずで、だったらブラウザがそこそこ動くマシンにsshクライアントを入れて、Linuxが動いているVPSにつなぐだけなら重いPCいらないじゃん。実際きいてみるとAmazon EC2にそういう環境持ってるって人もいるみたいだし、非現実的な話じゃない。
というわけでDigitalOcean。
速くて(ディスクがSSD)、安くて(時間単位課金で最安$0.007/h)、柔軟(APIがある、Docker対応)ということで評判のVPSベンダー。簡単に作って壊せることから複数のテスト環境を一時的に利用するというのがわりと認知されてる使い方だけど、メインの開発環境としてはどうだろうか。ということでちょっと使ってみた。
ちなみに普段は手元のVirtualBox上にVagrantでDebian環境を作っていて、基本的な開発環境はBitBucket上に置いてあるPuppet Manifestsで構築できるようになっている。これを使えば良い。手順としてはこんな感じだ:
- DigitalOceanにユーザ登録して、クレジットカード情報やssh keyを登録
- Dropletを作成する。Debian 7.0 64bitにしよう。Regionは日本にいちばん近いSan Franciscoをチョイス
- Create Dropletすると1分少々で仮想マシンができあがる
- ssh keyは登録したものが入ってるから、与えられたIPアドレスにrootでログイン
- apt-getでpuppetを入れて、適当なディレクトリに用意してあったpuppet menifestsをgit clone
- あとはpuppetで環境構築させるだけ。簡単!
とはいえ、ruby 2.1のビルドにはそれなりに時間がかかるし、開発対象になるリポジトリをgit cloneしなきゃいけないので「スイッチぽんですぐ開発」って感じにはならないなぁ。ちなみにできたVMは「電源」を落としてあっても課金されるので、本当に休止するならDestroyしないといけない。するとImageを保存してあってもまた1分は待たされる。VagrantやDockerを使えばこのあたりは短縮できるかも知れないけど、いずれにせよ「すぐ使えるクラウド上の開発環境」というニュアンスはちょっとないかな。
まぁ、DigitalOceanは本当に安いので常時立ち上げっぱなしでもいいのだけど、だったらネットワークのレイテンシが短い国内にあるさくらのVPSの方が使い勝手はいいかも知れない。次はさくらを試してみるか。
手元の作業端末は、ConnectBotとChromeを入れたAndroid機でイケますね。ノートPCどころか、タブレットかスマホで十分という。
ConnectBotは一時Nexus7に入れていたけど、外付けキーボードが必須という感じで、他にもいろいろイマイチだった覚えが。いまは進化したんでしょうか?
JuiceSSHとかどうでしょう。
https://play.google.com/store/apps/details?id=com.sonelli.juicessh
おお、高機能っぽい。最近は選択肢が増えてるんですねぇ。ちょっと時間みて触ってみます。
Rackspaceで自分はまさにそのように使ってます。香港regionがあるのでコンソールも苦になりません。ホームページにある最新の環境(SSD)はまだ香港では利用できませんが。
Imageに保存すれば、停止中はインスタンスに課金ありません。
そういえばRackSpaceも時間課金でしたね。DigitalOceanよりはだいぶ高い感じだけど、ネットワーク的に近いのはいいなぁ(でもそれならさくらでいいじゃんという話になりそうな気もしますが)。
バックアップの容易さも自分には優先事項です