Githubも使ってたというAWSベースのPaaSの老舗Engine Yard Cloudを試してみました。
Engine Yard CloudはAWSの東京リージョンもサポートし、最初の500時間無料とのことで今後複数台構成を考えている怖話の移行先として動くかどうかデプロイしてみます。
Application作成。githubのreposを直接入れることができるのは嬉しい。
deployのためのキーが発行されます。これをgithubや自分のgit repos serverに登録してやれば勝手に取ってきてdeployしてくれると。
怖話のgithub reposのDeploy Keysにさっきのキーを登録。
Environmentの作成。Application Serverが選べるのか。怖話はunicornなので選択。rubyもgemもデフォルトでOK。
無料お試し中は東京リージョンは選べないそうです。残念。MySQLのバージョンを選んで、へーDBバックアップやインスタンスのスナップショットもデフォルトで取ってくれるのか。
一番気になるインスタンス構成の選択画面。
- Single Instance
- 1台でアプリもDBも賄う。
- Staging Configuration
- appサーバー2台とDBサーバー1台。
- Production Configuration
- appサーバー3台とDBサーバー2台(master and slave)
- Custom Configuration
- カスタム。(お試し中は派手にできないらしい)
appサーバーは良い感じにbalanceしてくれるらしい。しかしDBサーバーはどうなってるんだろう。やっぱりアプリ内で明示的にmaster, slave分けてアクセスするんだよね?
とりあえずStaging configurationで。
後はただ起動処理を眺めます。ログを見るとchefで色々ガーっとやってくれてるみたいです。
rake db:migrate
のところをrake db:seed
にして怖話のseedを実行。そして割り当てられた仮のドメインにアクセスしてみると。
おお、特に何もいじってないのに怖話のproductionが動いた!凄いぞEYC!
鬼サポート
実は初めてdeployした時は500番が出て動きませんでした。
右下にあるサポートチャットに、
"I deployed an app. But dosen't work."
とか物凄い抽象的な助けを求めたら、
「railsアプリにエラーがあるのかもしれない。ここからsshでログインできるから"/path-to/production.log"にあるログを見てみたらどうだい」
みたいなこと言われたので見てみたら、Engin Yard Cloudとか関係無く、普通に怖話のproduction(のseedのコード)がバグってただけでした。修正してアップし直したら動きました。
多分あっちは昼間なんだろうけど、夜の2時頃、お酒を飲みながら適当にインフラを弄ってた俺としては助けを求めた瞬間に的確に帰ってきたサポート体制に感動しました。(飲酒も手伝って)
logentriesのサポートチャットを使った時も同じような体験をしましたが、技術的にちゃんとわかってるサポートが瞬時に答えてくれるってのは今時のサービスでは当たり前なんでしょうか?ありがたすぎるぞ。
感想
VPSで動かしてた怖話のproductionが何の変更も無しに動いたのはびっくり。あと金額も俺の超概算だとAWS直に10〜20%ぐらい載っけるぐらいの思ってたより安い価格設定。
自分の用途としてはある程度規模のサービスで、しっかりした会社からの受託開発を受けたら本気で検討する価値ありだなと思いました。
なんだかんだ行っても複数台構成には色々と面倒がついてきますし(デプロイ、監視、ロギング、バックアップ等)、何よりもAWSで作りこんだら引き継ぎが超面倒そう。リアルに想像すると「EC2で作りこんであの会社に引き継いだら運用できるのかな・・・」って思う時がありますが、EYCなら引き継げそう。特に鬼サポートはちゃんとした会社にとってはありがたいと思います。ググレカスとか言われないですし。