みずぴー日記

陽気なプログラマが世界を廻す

JAWS-UG 名古屋 in AWS Cloud Roadshow 2015「Amazon EC2 スポットインスタンスを開発環境にする話」

mzpさんがJAWS-UGでLT優勝してkindle 貰ってきた件の目録がこれです。#jawsug

A photo posted by Dominion525 (@dominion525) on

JAWS-UG 名古屋 in AWS Cloud Roadshow 2015 でLTをした。優勝してKindleをいただいた。

スライド

発表原稿

タイトルだけでだいたい内容が分かる気がしますが、話を進めます。

自己紹介

簡単な自己紹介をすると、TwitterIDはmzpです。MisocaというWebサービスを作る仕事をしています。このインフラにはAWSを利用していますが、今回はその話ではありません。ボク個人が使っているAWSの話です。

MacBook

ところで、先日、新型のMacBookを買いました。解像度が高くなり、軽くなり、バッテリーの持ち時間も伸びました。最高です。この資料もそのMacBookで作りました。

性能の低下

その反動として、マシンの性能が低下しました。 ベンチマークのスコアでみるとこんな感じです。

前に使っていたのは2011年モデルのMacBookAirなので、ベンチマークスコアが少し落ちています。 言い換えると、4年前のPCを最新機種に買い変えたら、性能が若干落ちました。

開発に支障がでた

弊社のMisocaはRailsで開発されています。ゲーム系の開発などに比べるとマシですが、Railsの開発にもそれなりにの性能が要求されます。 それをこのMacBookで行なうのはかなり厳しいです。 念のため補足すると、オフィスにいるときは会社のiMacが使っているので特に不都合はない。困るのは、自宅で作業するときや、旅先で作業するときですね。

AWS EC2 スポットインスタンス

性能のいるマシンを必要なときだけ使うといえばAWSです。Amazon Workspaceで仮想デスクトップを使うのが定石な気もしますが、今回はEC2スポットインスタンスを使いました。

主な理由は以下の2つとおりです。

  1. 開発ではターミナルしか使わないのでsshで接続できればよい。
  2. 安い。

まあ、あとはスポットインスタンスを使ってみたかった、というのもあります。

費用

いつも使う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倍近く値上がったときのやつです。

EBS上のデータは保持されますし、大事なコードそのものはgithub上にあるので、実際は困ることはそれほどありません。が、いつシャットダウンされるか分らないというのは精神的にキます。

まとめ

そろそろ時間なので、簡単にまとめます。