views:

44

answers:

2

How can I go about deploying a Rails app on a cluster of Amazon EC2 servers? Any recommended guides?

I maintain a RoR app (currently hosted on Heroku) that uses a DB and DelayedJobs). The app has a large footprint, and needs to be distributed on a cluster most likely. Any tips would be appreciated. Are there Amazon AMIs that replicate some of Heroku's features (especially DJ)?

P.S. I'm quite a Ruby newbie.

A: 

Any reason it can't stay on Heroku? You can scale Heroku dynos and workers as you see fit, and can upgrade to a dedicated database instance if it really needs it.

bensie
The app is very IO intensive, and requires a lot of workers to scale well. Heroku charges a fortune for workers, rather than charges for CPU usage.
notnoop
Have you looked into the Engine Yard cloud? They handle the configuration of the servers, you just turn on however many you need.
bensie
@bensie, yes, I did, and it does seem good; however, I want to compare it to managing it myself. Also, there is a public value to an answer.
notnoop
Given that you're new to Ruby/Rails, I wouldn't recommend diving in and trying to manage your own servers. EY/Heroku have done all the hard work of handling the optimizing, backups, caching, monitoring and scaling. You could probably find an EC2 AMI that's ready with Rails, Passenger/Nginx, etc -- but it's not going to be a beautiful cluster that's ready for production. Also, know that with EY cloud you'll need to familiarize yourself with Chef.
bensie
A: 

I would use a clean (ebs-based) AMI from Alestic or Amazon and configure it myself. It's very difficult to find an appropriate AMI (or several for web-server, app-server, DB-server and make them work together) and a high risk to trust it.

elasticsecurity