Need advice about which tool to choose?Ask the StackShare community!
AWS Elastic Beanstalk vs Heroku: What are the differences?
AWS Elastic Beanstalk and Heroku are both Platform-as-a-Service (PaaS) solutions that simplify application deployment and management. Here are the key differences between AWS Elastic Beanstalk and Heroku:
Platform and Flexibility: AWS Elastic Beanstalk is a PaaS offering from AWS. It allows developers to deploy and manage applications in various programming languages, including Java, .NET, Python, Node.js, and more. It provides more control over the underlying infrastructure, allowing users to configure and customize their environment settings. In contrast, Heroku is a cloud-based PaaS platform. While Heroku supports multiple programming languages, it abstracts much of the infrastructure management, focusing on ease of deployment and scalability. It provides a more streamlined experience for developers but may have limitations on customizing the underlying infrastructure.
Deployment and Scaling: Elastic Beanstalk provides more options for environment configurations, including the ability to choose different instance types and network settings. It also offers features like Auto Scaling and Load Balancing to automatically adjust resources based on traffic. Heroku, on the other hand, follows a more opinionated approach to scaling. It automatically scales applications based on the selected dyno (unit of computing capacity), simplifying the scaling process for developers.
Pricing and Cost Control: AWS Elastic Beanstalk pricing is based on the resources consumed by the underlying infrastructure, such as instances, storage, and data transfer. In contrast, Heroku pricing is more straightforward, with a pay-as-you-go model based on the number of dyno hours used. While Heroku offers simplicity in pricing, it may become more cost-effective or expensive depending on the application's specific resource needs.
Ecosystem and Integration: AWS Elastic Beanstalk is part of the larger AWS ecosystem, which means it seamlessly integrates with other AWS services such as Amazon RDS for databases, Amazon S3 for storage, and more. Heroku, while not as tightly integrated with AWS, offers its own ecosystem of add-ons and extensions through the Heroku Elements marketplace, providing developers with a variety of third-party services and tools.
In summary, AWS Elastic Beanstalk provides more control and customization over the underlying infrastructure, making it suitable for developers who want a flexible and configurable environment within the AWS ecosystem. Heroku, on the other hand, offers a streamlined and developer-friendly experience with automatic scaling and easy deployment, making it an excellent choice for developers seeking simplicity and rapid application deployment without worrying about infrastructure management.
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
- Well-documented4
- Independend app container3
- Postgres hosting2
- Ability to be customized2
Pros of Heroku
- Easy deployment703
- 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 expensive27
- Not a whole lot of flexibility9
- No usable MySQL option7
- Storage7
- Low performance on free tier5
- 24/7 support is $1,000 per month2