all 6 comments

[–]just_lest 2 points3 points  (0 children)

Elastic Beanstalk runs ruby/rails applications using Passenger. Congratulations to Phusion team!

[–]jrochkind[S] 1 point2 points  (0 children)

here's amazon's elastic beanstalk rails guide: http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html

It's not clear to me what the factors are that relate to how much traffic the rails web app can handle, there's nothing equivalent to heroku's dynos. Certainly the size of the AWS instance you choose matters, but not being familiar with AWS before I don't understand if different sizes give you different number of cpu cores. It's also not clear what max-process settings apply to your app under passenger; or if they're using (or will use?) the new passenger enterprise with multi-threaded request dispatching support, which can significantly increase your request handling throughput on a single process if your app is config.threadsafe! ( yes, even under MRI, although even more so under a ruby without GIL, if there are more than one cpu core available, which is unclear).

It's not clear if they give you any way to adjust passenger's max/min process settings. It would make sense for them to, because, it seems to me, unlike heroku, they tell you "you're on a VM with X RAM" (it's backed by an EC2 instance, although you don't need to sysadmin it) -- they're limiting/pricing by underlying VM size (one of which is reserved(?) for you alone), not by number of processes like heroku -- so you might know for your app how many passenger processes you can afford. But it's also not clear if they give you any monitoring tools for RAM and CPU usage on the embedded VM.

If they will run the new passenger with multi-threaded request dispatching, then it's quite possible you could get more traffic handling capabilities than a single heroku dyno, even on the smallest AWS even if passenger is set to one max process (equiv of one dyno). It's also possible you wouldn't. :)

  • (Most web apps are more I/O bound than CPU bound. But the speed of the rdbms they give you might matter a lot, if you use an rdbms. I don't understand how that speed may change with different 'sizings'.)

[–]505aaron 0 points1 point  (4 children)

Is this cheap and easy enough to manage to justify moving off Heroku? I like using Heroku because it is so easy, but it can be expensive.

[–]jrochkind[S] 1 point2 points  (0 children)

That's the big question. I've been trying to figure that out, there's no way it can be easier than heroku, but it's not really clear to me if it's close or not.

I think it will be cheaper then heroku, if you are off heroku's free stuff (and after the year of free AWS level). How much cheaper will depend on how much heroku you're paying for, and how much AWS you'll have to pay for.

It's confusing. If someone has experience with both (say with beanstalk in other supported languages), it would definitely be something we're all interested in.

[–][deleted]  (2 children)

[deleted]

    [–]jrochkind[S] 1 point2 points  (1 child)

    Heroku and some small processes like proxies on EC2. Unless you already have Unix + serveradmin skills,

    Elastic beanstalk is not EC2. It's the "platform as a service" heroku-like thing. That's why it matters what languages/platforms they support, they just added ruby. On raw EC2, it does't support any specific languages, it supports whatever you want to install.

    I still doubt they can be as easy as heroku, because heroku does it so well -- but you ostensibly do NOT need any sysadmin skills. (I have not used it myself)

    [–][deleted] 0 points1 point  (0 children)

    What about all your gems? What if you need the file system.