Hi, I’m Josh Symonds

I blog about Ruby on Rails, coding, and servers

Pricing Popular Hosting Options (With Devops Time)

Reading time 4 minutes

Recently I compared the major Rails hosting providers – but as opposed to most price breakdowns I’ve read on the Internet, I opted to include provisional hourly devops time to set up and perform maintenance on the servers. For the purposes of this comparison, I only selected four providers: AWS, RackSpace, BlueBox and Heroku, and I’m assuming you use all their services (rather than combining two, say Heroku Postgres with AWS EC2 instances). I found the resulting price breakdown instructive, though interpreting them (and disagreeing with the provided hours) are left as an exercise for the reader.

Comparisons

Any of these configurations should be adequate to support roughly a million requests a month (assuming throughput of 5 requests a second), provided most of the requests served aren’t that complicated. We’ll go for a medium database instance and aggressively cache as much as possible, thus we’ll also need to provide memcached room somewhere.

The big differentiator in my comparison (as opposed to others’) is certainly a devops contractor at $150 an hour. I’ll include the hours as I would estimate them personally, but for other people it might take longer or shorter – and the price could go up if there’s a ton of other software to go in the server. (For example, this theoretical application would probably eventually want redis and some sort of asynchronous worker system.)

So let’s get down to the details!

Amazon Web Services

Service Setup Monthly

1 medium EC2 instance (1 year contract, medium utilization)

6 unicorn workers
1 nginx reverse proxy
memcached
$277.00 $30.74

1 medium RDS instance (1 year contract, medium utilization)

$500.00 $40.26

Devops Time

10 hours setup
5 hours maintenance
$1500.00 $750.00
Total $2277.00 $821.00
First Year $12129.00

No surprises here: if you’re using AWS, the hardware is ridiculously cheap. Most of your cost is going to be engineering time to get the instance up and running and then perform maintenance and add additional features to it. That said, I’ve had an EC2 instance going for about 8 months now with no maintenance at all on my part (laziness!), so if you don’t need any additional server setup you can probably omit the maintenance time, for a monthly cost of $71.00 and a yearly cost of $3129.00.

RackSpace

Service Setup Monthly

1 4GB managed cloud instance

6 unicorn workers
1 nginx reverse proxy
memcached
$0.00 $262.80

1 4GB cloud database instance

$0.00 $321.20

Devops Time

10 hours setup
2 hours maintenance
$750.00 $300.00
Total $750.00 $884.00
First Year $11358.00

RackSpace’s managed cloud offerings are more expensive than AWS, but the theory is you can omit server-related maintenance (since they’ll keep services running and your servers themselves operational) and that’s reflected in a lowered monthly devops cost. They don’t do maintenance or improvements on your application proper, however, so I built a rather modest two hours a month in for simple tasks like upgrading Rails or performing minor server optimizations. You can once again probably ignore the monthly devops cost if you like, but that won’t have nearly the impact on the final price that it did for AWS, with a new monthly of $584.00 and a final year total of $7758.00.

BlueBox

Service Setup Monthly

1 4GB cloud instance

6 unicorn workers
1 nginx reverse proxy
memcached
$0.00 $385.00

1 4GB cloud database instance

$0.00 $385.00

Devops Time

0 hours setup
0 hours maintenance
$0.00 $0.00
Total $0.00 $770.00
First Year $9240.00

BlueBox’s claim to fame is that they perform server, application, and database setup, maintenance, and integration. Thus the need for a devops engineer is completely obviated (as reflected in the final totals). Obviously this price point is extremely attractive if you’d otherwise have to pay a server administrator and engineer, but if you have one on staff already then BlueBox’s product is easily the most expensive. You’re paying for their expertise much more than their hardware.

Heroku

Service Setup Monthly

4 dynos

12 unicorn workers
$0.00 $143.00

memcached addon (500 MB)

$0.00 $40.00

Fugu database instance

$0.00 $400.00

Devops Time

2 hours setup
0 hours maintenance
$300.00 $0.00
Total $300.00 $583.00
First Year $7296.00

I’m always somewhat mystified by Heroku’s pricing – their database offerings are incredibly expensive, especially compared to their incredibly cheap dynos. Anyway, they provide the least expensive option for purely hosting an application, but this cheapness comes with a hidden price. Being unable to control your production environment can be a frightening proposition and exposes you to potential hidden vagaries of Heroku’s internals (such as the latest flap about their routing mesh). And the fact that their addons are third-party products means that if they go down, you have no ability to expedite their repair. I would deploy a small or medium app to Heroku (which might be perfect for this theoretical application), but for a bigger one I would definitely be hesitant.

Conclusions

I don’t think any of these prices are particularly surprising. For knowledgeable server engineers, AWS is indeed a tremendous bargain. For those with little or no infrastructure knowledge, Heroku or BlueBox would be a much better choice. And keep in mind these are the hours it would take me to set up these instances; the times might not be representative of another engineer. I think they’re reasonable though, and that the comparison is an interesting one to draw, even if not a tremendous revelation.

Josh Symonds performs devops and server wrangling on cloud-scale infrastructures, deploys amazing web applications with Ruby on Rails, and creates awesome iOS apps with Objective-C and RubyMotion. He is founder and CTO of Symonds & Son, a development shop focused on quality and excellence.

Josh Symonds