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.
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 email@example.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.