Engine Yard AppCloudのTrial
Engine Yard AppCloudをTraialで使ってみた。
Engine Yard AppCloudとはHerokuと同様、AmazonのEC2上で動かしているクラウドサービス。
Herokuとどこが違うのかをざっくりまとめてみる。細かい部分での違いはいくつもあるけれど、大きく感じたのは以下の点。
- Gitのリポジトリサーバは自分で持つ。
- Ruby On Railsだけでなく、Merb,Sinatraも動かせる。
- Deployはサービスページから。つまりはGUIベース、gitにpush=deployとはならない。
- 一つのアプリケーションに対して複数の環境を作れる。
例:アプリケーション名;blog
production環境、staging環境、ci環境、development環境
- サーバのステータスをCactaiのようにグラフ監視できる。CPU,LoadAverage,Memcache利用率といった、パフォーマンスの監視ができる。
- サービスページからGemの追加、DBのバックアップ、システムのスナップショットがとれる。バックアップとスナップショットに関しては、定期処理に登録できる。
(全部使い切ったわけではないので、間違っている部分があるかもしれない。)
今回作ったのもの
・PracticeManagerというRails3アプリ
今回、TwitterBotとユーザの登録まで作って、Trialの期限を迎えてしまった。
でも、一番やりたかったdeployとサーバステータスの確認ができた。
deployしてみてわかったのは、deployログをみるとHTTPサーバはNginxと使っている模様。Applicationサーバは、Passenger,Mongrel,Unicornから選べる。環境毎にHTTPサーバは変更できる。
deploy作業をGUIでやるのはさほど違和感はなかった。deploy前にスナップショットを自動取得してくてれているし、デプロイのログが都度残るため結構安心。
今回は無料版で使ったけれど、本番サービスでのミニマム使用を想定してWebサーバ2台、DBサーバ2台+基本サポート(データのセキュリティ管理)をつけて見積もってみた。
毎月$1800、20万弱の経費。サービスのスケールアウト、サービス環境構築の削減コストも考えると、普通のデータセンターを使ってインフラ周りのエンジニアを揃えるよりも遥かに安いと考えられる。
後はリスクとのトレードオフで、どこまで使うかを考えればいいと思うんだ。
例えば、大学の研究室とかでアカウントを持っておいて、研究室の学生に好き勝手使わせるとかは結構良いんじゃないかと思う。