JAWS-UG 名古屋 in AWS Cloud Roadshow 2015「Amazon EC2 スポットインスタンスを開発環境にする話」
キンドル(本物)がとどいたー。 pic.twitter.com/kNckUW3IzL
— mzp (@mzp) November 4, 2015
JAWS-UG 名古屋 in AWS Cloud Roadshow 2015 でLTをした。優勝してKindleをいただいた。
スライド
発表原稿
タイトルだけでだいたい内容が分かる気がしますが、話を進めます。
自己紹介
簡単な自己紹介をすると、TwitterIDはmzpです。MisocaというWebサービスを作る仕事をしています。このインフラにはAWSを利用していますが、今回はその話ではありません。ボク個人が使っているAWSの話です。
MacBook
ところで、先日、新型のMacBookを買いました。解像度が高くなり、軽くなり、バッテリーの持ち時間も伸びました。最高です。この資料もそのMacBookで作りました。
性能の低下
その反動として、マシンの性能が低下しました。 ベンチマークのスコアでみるとこんな感じです。
Intel Core M-5Y31&M-5Y71を搭載した新しいMacBook Retina 12インチモデルのGeebBenchスコア比較まとめ。 http://t.co/U1OrlqizRc pic.twitter.com/8quOSPO1PQ
— Appleちゃんねる (@applechinfo) April 3, 2015
前に使っていたのは2011年モデルのMacBookAirなので、ベンチマークスコアが少し落ちています。 言い換えると、4年前のPCを最新機種に買い変えたら、性能が若干落ちました。
開発に支障がでた
弊社のMisocaはRailsで開発されています。ゲーム系の開発などに比べるとマシですが、Railsの開発にもそれなりにの性能が要求されます。 それをこのMacBookで行なうのはかなり厳しいです。 念のため補足すると、オフィスにいるときは会社のiMacが使っているので特に不都合はない。困るのは、自宅で作業するときや、旅先で作業するときですね。
AWS EC2 スポットインスタンス
性能のいるマシンを必要なときだけ使うといえばAWSです。Amazon Workspaceで仮想デスクトップを使うのが定石な気もしますが、今回はEC2スポットインスタンスを使いました。
主な理由は以下の2つとおりです。
- 開発ではターミナルしか使わないのでsshで接続できればよい。
- 安い。
まあ、あとはスポットインスタンスを使ってみたかった、というのもあります。
費用
いつも使うc4.large((2CPU; メモリ 3.75GB)がだいたい0.02ドル/Hなので、一日8時間*20日使ったとしても3.2ドル程度です。もし倍必要になったら、その人はちょっと働き方を見直したほうがいい気がしますね..。働きすぎないようにBilling Alertで監視してもよいかもしれません。
構築時のコツ
構築する際のコツとしては
- AMIを事前に作っておく。
- 別途、EBSボリュームを作り、消えたら困るデータはそちらに置く。
- ポートは多めにあけておく。特に1024番以上はあけておいたほうがよいです。
詳しくはブログに書きました。 http://mzp.hatenablog.com/entry/2015/04/25/110043
ちなみに最初はこれをやらずに、毎回1からchef-soloで環境を作ってコードを書く、ということをやっていました。
利点
いざ使ってみると、思ってもいなかった利点がありました。
- マシンがAWS上にあるのでバッテリーが異様に持つようになりました。重い処理を回しまくっても、バッテリーが減らないのは快適ですね。
- 同じくAWS上にあるので、ネットワークもかなり速くていいですね。通信量も抑えられるので、テザリングしてても安心ですね。
- 開発に使うデータはそれほどセンシティブなわけではないんですが、ローカルにデータを保持しないのは安心感があります。
欠点
もちろんスポットインスタンスを使っているので、いつシャットダウンされるかわからないのは困った点です。 何度か価格の急騰に巻き込まれたりしました。 このときは一気に10倍近く値上がったときのやつです。
スポットインスタンスを開発環境にするのを試してたけど、価格が暴騰して死亡した。 pic.twitter.com/8Uww1Lmwv1
— mzp (@mzp) March 20, 2015
EBS上のデータは保持されますし、大事なコードそのものはgithub上にあるので、実際は困ることはそれほどありません。が、いつシャットダウンされるか分らないというのは精神的にキます。
まとめ
そろそろ時間なので、簡単にまとめます。