Development

Heroku vs. AWS Revisited

9 Comments

When I wrote about Heroku and Amazon Web Services a few months ago it seemed both services were equally worthwhile in many respects. My rule of thumb was: small app–Heroku; large app–Amazon. Since then a few events have caused me to reevaluate my position.

Heroku’s customer non-service

Recently, Heroku revealed a new site interface. In the past if you needed something you could open up a free support ticket. Now the only options for free support are the docs or Stack Overflow. Yes, they actually link to Stack Overflow on their new help page. Ticket History is still visible, but there is no way to open up a new ticket.

Granted, AWS doesn’t provide much more than Heroku. But AWS does have a free forum where Amazon employees reply to users’ support questions.

I recently had an issue related to billing with Heroku. Heroku offered a beta period for their new database stack allowing developers to try out their new databases free of charge. I added a couple for testing believing they would remain free until their general release in August. Heroku’s blog post indicated they would notify users prior to billing them.

Heroku July newsletter

I assumed there would be an additional step needed to opt-in before being billed, but this was not the case. The only notice I found was a note in one of their email newsletters (which I never read). The notice was one sentence in the middle of the email (underlined in red).

Nearly two months later, I discovered we had accumulated several hundred dollars in charges for databases that we weren’t even using. I tried writing them back at their billing@heroku.com account, but it’s been three weeks and I have not received a response.

How AWS would have prevented this

Around the same time that I noticed the excessive Heroku charges, I logged into our AWS account. What a pleasant surprise to be greeted with a message telling me how to set up notifications for estimated cost triggers. (I already use Amazon’s Simple Notification Service for CPU usage alerts on our EC2 instances.) The alerts are easy to configure due to an intuitive web interface. After establishing a preferred trigger, you can review the past few days’ activity which shows when the trigger would have activated. I immediately set up cost alerts for my AWS account. AWS was nice enough to place the cost alert feature in a prominent place where everyone should see it. Heroku may have a similar feature, but I have not found it.

The billing issue is a small concern, but it illustrates how mature AWS has become while Heroku’s new interface is somewhat of a regression. In the future I will explore how to get up and running on AWS, and how to leverage Ruby gems to achieve similar functionality to that offered by Heroku.

| | |

9 Responses

  1. Scott Nixon says:

    Nice reviews.

    I noticed on the heroku support site, if you search for a problem at the bottom of the page they will show a link to open a support ticket. https://help.heroku.com/tickets/new?query=robocop They do also offer premium support.

    For me it’s really hard to compare the two because I don’t really want to mess with server and db configs. I love that magic that is a git push to deploy and adding an add-on to an web app that created a 30 day backup rotation. I spent 10 years as a sysadmin and I don’t want to setup servers if I don’t need to. :)

    • You have 10 year sysadmin experience and you’re afraid to do some basic DB configuration? These days package managers practically do all the job for you…
      I’m a front-end guy with some basic unix experience and I can manage setting it up just fine..

  2. miku says:

    You can use an opensource paas like cloudfoundry to deploy your own pasa on aws. If you go Dr nic’s blog to see how to use an additional tool called bosh to deploy cloudfoundry across multiple ec2 instances to enable you scale up or down with ease.

  3. David Mytton says:

    Does Heroku have any options for ticket based support, perhaps on a premium plan? Amazon offers support but it’s a subscription service

    • Reed Law says:

      Yes they do offer paid support which we have used and found to be of decent quality. But for a billing question we shouldn’t have to pay to get an answer.

  4. Saeed Jabbar says:

    I had a very similar issue as well with Heroku. Their support option is buried away in the site. I had a few questions about billing that weren’t clear.

    When I did find it their customer service was just nasty after the fact I was willing to spend a couple hundred dollars doing business with them. The irony here is heroku is owned by salesforce of all companies ….

  5. It’s worth pointing out that the middle ground between black box cloud hosting like Heroku and vanilla EC2 is Engine Yard Cloud. They give you a tested and scalable Rails stack with a web UI for management, but under the hood you still have root access and the AWS keys, so the billing is transparent, and you can install whatever software and use whatever instance types you like, which is useful if Heroku’s architecture doesn’t fit your load profile, or you need some piece of software that is not available or very expensive as a hosted service.

    Oh and of course they provide support as well.

  6. Luc Perkins says:

    AppFog has live chat and ticket support on ALL tiers (including the free tier). We haven’t yet achieved 24/7 live chat support, but we’re getting pretty close. This has been the case from the get-go and always will be.

    On top of that, pricing is solely RAM-based, which means that you literally cannot incur unwanted charges.

    I think you might be pleasantly surprised with the experience after Heroku and AWS.

  7. Daniel Smith says:

    I noticed no one has mentioned Turnkey Linux. I am currently using their Rails image to develop on, but there is apparently a way to deploy the images directly to an EC2 server, bypassing a lot of the setup hassles. To me it looks like this might be the best of both worlds and the route I plan on taking once I have an app ready to deploy.

Leave a Reply