When comparing Amazon S3 vs Heroku, the Slant community recommends Heroku for most people. In the question“What are the best website hosting providers?” Heroku is ranked 4th while Amazon S3 is ranked 11th. The most important reason people chose Heroku is:
Getting started with Heroku is very easy. It's a very straightforward procedure and a beginner can set up their first app in two minutes. Often it's just a matter of a couple of `git` commands and it's all set up and running. The official Heroku [docmentation](https://devcenter.heroku.com/) also helps a lot.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Free for small sites
The free tier will cover most personal home pages.
Pro Easily scalable
There's no cap in storage or traffic. Cost is based on usage.
Pro Super cheap with a year's worth of free service
S3 storage costs $0.03 per GB and gets cheaper the more is stored, PUT, COPY, POST, or LIST requests are $0.005 per 1,000 requests and GET and all other requests are $0.004 per 10,000 requests. And with some restrictions is available for free for a year.
Pro Fast setup
You can provision a S3 bucket, upload files, setup the DNS, and go live in under 10 minutes.
Pro Fast
S3 is fast even without a CDN.
Pro Easy to setup with CDN
Simple to set up with Amazon's CloudFont CDN.
Pro Supports custom root domains
To set up a custom domain, Amazon Route 53 has to be configured as the DNS provider with the domain registrar, two buckets have to be created and configured with the name the same as the domain - one including, one excluding www. A more in-depth explanation can be found here.
Pro No security risks
There's no server to manage, so no security issues to patch or keep watch.
Pro Easy to start with
Getting started with Heroku is very easy. It's a very straightforward procedure and a beginner can set up their first app in two minutes. Often it's just a matter of a couple of git
commands and it's all set up and running. The official Heroku docmentation also helps a lot.
Pro Excellent error logs
When your deploy fails you see a legitimate error log. Many of the other PaaS give you nondescript messages and debugging is a pain. Debugging Heroku wins by comparison.
Pro Add-ons let you easily add features and technologies
Heroku has a vast list of plugins and services that can be added to an instance. These plugins cover things from databases to email systems. This remove the task of having to install services and setting them up manually. Heroku does it all for you.
Pro Simple scaling
Heroku instances can easily be scaled up or down by increasing or decreasing the number of available dynos for that instance. This can be done through the CLI or through Heroku's web UI.
Pro Dedicated build servers
Heroku has dedicated servers for building app dependencies, to ensure that you won't have issues like "out of memory" errors when deploying your app.
Pro Mature
Heroku is one of the oldest PaaS providers. The fact that it's been around for such a long time means that it had a lot of time to mature over the years. There's also a massive number of articles, guides and tutorials on Heroku out there for beginners and advanced users.
Pro Free option
Heroku offers a free tier which contains a single dyno instance. It offers 512MB of memory and 100MB swap space.
Cons
Con Credit card needed
Amazon will try to retrieve the money every month after one year trial. If you have no money you will be banned.
Con Setting up automatic public permissions is confusing
By default, S3 sets uploaded files to private. You can configure your S3 bucket to auto-apply public permissions by copying and pasting a template. But the template might be intimidating to some users.
Con Confusing web interface
Amazon S3's web interface is quite confusing, especially for first-time users, but there are many tutorials online that help beginners to set up a static site on S3.
Con No SFTP support
Amazon S3 does not have SFTP support, instead the S3 web interface has to be used.
Con Constrained by addons
If you want to fully customize your production environment, then Heroku can be seriously constraining. Installing libraries or services can not be done unless there is already a Heroku plugin for it.
Con Further deployments are slow
While starting with Heroku is fast and easy, and the first few deployments are actually very fast, larger applications tend to have slower deployments. It takes some time for the dynos to restart and while they are restarting the application is completely offline. Which means that you can lose precious seconds of application time.
Con Really expensive
Heroku starts getting really expensive once you leave that free tier. It's not just the bare Heroku service that is costly, the addons as well are very pricey.
