Need advice about which tool to choose?Ask the StackShare community!
AWS Elastic Beanstalk vs Heroku: What are the differences?
What is AWS Elastic Beanstalk? Quickly deploy and manage applications in the AWS cloud. Once you upload your application, Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.
What is Heroku? Build, deliver, monitor and scale web apps and APIs with a trail blazing developer experience. Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.
AWS Elastic Beanstalk and Heroku can be categorized as "Platform as a Service" tools.
Some of the features offered by AWS Elastic Beanstalk are:
- Elastic Beanstalk is built using familiar software stacks such as the Apache HTTP Server for Node.js, PHP and Python, Passenger for Ruby, IIS 7.5 for .NET, and Apache Tomcat for Java
- There is no additional charge for Elastic Beanstalk - you pay only for the AWS resources needed to store and run your applications.
- Easy to begin – Elastic Beanstalk is a quick and simple way to deploy your application to AWS. You simply use the AWS Management Console, Git deployment, or an integrated development environment (IDE) such as Eclipse or Visual Studio to upload your application
On the other hand, Heroku provides the following key features:
- Agile deployment for Ruby, Node.js, Clojure, Java, Python, Go and Scala.
- Run and scale any type of app.
- Total visibility across your entire app.
"Integrates with other aws services" is the primary reason why developers consider AWS Elastic Beanstalk over the competitors, whereas "Easy deployment" was stated as the key factor in picking Heroku.
StackShare, Heroku, and SendGrid are some of the popular companies that use Heroku, whereas AWS Elastic Beanstalk is used by Sellsuki, Edify, and eTobb. Heroku has a broader approval, being mentioned in 1496 company stacks & 937 developers stacks; compared to AWS Elastic Beanstalk, which is listed in 370 company stacks and 113 developer stacks.
Platform.sh has great out-of-the-box support for PHP apps (especially Symfony, as it was made by the same people). Elastic Beanstalk does not have a lot of compelling PaaS features like Platform.sh. There, you have to install a lot of PHP extensions manually for example, while Platform.sh just handles it for you based on your config. Elastic Beanstalk also has terrible version updates (see link).
As I was running through freeCodeCamp's curriculum, I was becoming frustrated by Replit's black box nature as a shared server solution for Node app testing. I wanted to move into a proper workflow with Git and a dedicated deployment solution just for educational or non-commercial purposes. Heroku solved that for me in spades.
Not only does Heroku support free app deployment if you don't use their extra service handlers, but you can directly hook into your GitHub repos and automatically update the app whenever you commit to the main branch. It's a simple way to get an app running as fast as possible if you wish to share a proof of concept or prototype before moving to dedicated servers.
The Friendliest.app started on Heroku (both app and db) like most of my projects. The db on Heroku was on the cusp of becoming prohibitively expensive for this project.
After looking at options and reading recommendations we settled on Render to host both the application and db. Render's pricing model seems to scale more linearly with the application instead of the large pricing/performance jumps experienced with Heroku.
Migration to Render was extremely easy and we were able to complete both the db and application moves within 24 hours.
The only thing we're really missing on Render is a CLI. With Heroku, we could manage everything from the command line in VSCode. With Render, you need to use the web shell they provide.
I'm transitioning to Render from heroku. The pricing scale matches my usage scale, yet it's just as easy to deploy. It's removed a lot of the devops that I don't like to deal with on setting up my own raw *nix box and makes deployment simple and easy!
Clustering I don't use clustering features at the moment but when i need to set up clustering of nodes and discoverability, render will enable that where Heroku would require that I use an external service like redis.
Restarts The restarts are annoying. I understand the reasoning, but I'd rather watch my service if its got a memory leak and work to fix it than to just assume that it has memory leaks and needs to restart.
Pros of AWS Elastic Beanstalk
- Integrates with other aws services77
- Simple deployment65
- Fast44
- Painless28
- Free16
- Independend app container3
- Well-documented3
- Postgres hosting2
- Ability to be customized2
Pros of Heroku
- Easy deployment705
- Free for side projects459
- Huge time-saver374
- Simple scaling348
- Low devops skills required261
- Easy setup190
- Add-ons for almost everything174
- Beginner friendly153
- Better for startups150
- Low learning curve133
- Postgres hosting48
- Easy to add collaborators41
- Faster development30
- Awesome documentation24
- Simple rollback19
- Focus on product, not deployment19
- Natural companion for rails development15
- Easy integration15
- Great customer support12
- GitHub integration8
- Painless & well documented6
- No-ops6
- I love that they make it free to launch a side project4
- Free4
- Great UI3
- Just works3
- PostgreSQL forking and following2
- MySQL extension2
- Security1
- Able to host stuff good like Discord Bot1
- Sec0
Sign up to add or upvote prosMake informed product decisions
Cons of AWS Elastic Beanstalk
- Charges appear automatically after exceeding free quota2
- Lots of moving parts and config1
- Slow deployments0
Cons of Heroku
- Super expensive26
- Not a whole lot of flexibility8
- Storage6
- No usable MySQL option6
- Low performance on free tier4
- 24/7 support is $1,000 per month1