Amazon Web Services or AWS is the biggest cloud service provider in the world. If you work in the IT section, you will surely have heard the name or maybe you are already using it. Heroku is also a player in the domain but chances are fewer people have heard about it. In terms of the number of users and services, AWS wins by a large margin. However, there are businesses that do use Heroku for certain reasons. In this article, we will compare both PaaS solution providers. As you read through, you will be able to get some idea which company would be more suitable for your use cases.
Heroku vs AWS
We can categorize the key differences into seven major items. They include:
- Major services
- Suitable users
- Supported languages
- Integration with other cloud services
- Ease of use
Let’s have a closer look at each point.
- Heroku: web applications and managed open-source databases
- AWS: computing, storage, networking, database, analytics, application services, deployment, machine learning mobile services, dev tools, the IoT, and satellite control centers, and even more.
As of 2021, there are more than 200 AWS products and services. The cloud provider started with the first generation of services such as S3 (Amazon Simple Storage Service), EC2 instances (cloud server service), and RDS (cloud relational databases). These services have become the centerpieces of many further services launched later. With the initial services, people conveniently could build their websites and web apps. Now, as the AWS services are over 200, the range of what AWS can cover has become vast. You can use their cloud technologies for computing, storage, networking, database, analytics, application services, deployment, machine learning, mobile apps, dev tools, the Internet of Things, and even satellites.
In comparison, Heroku is more focused on web applications. There are two main service components in Heroku – Heroku Platform, Heroku Data Service, and Heroku Enterprise.
- Heroku Platform: the Heroku platform is the main product of the company. They provide managed container systems. A container is basically a server but with all required environments pre-installed and ready to use. Their app-centric eco-system lets people to build and deploy their apps fast with popular tools and workflows.
- Heroku Data Service: Heroku provides managed database service for Postgres, Redis, and Apache Kafka. The company’s expert team builds, operates, and maintains the three open-source data services, which allows you to focus on building apps and to save time for data infrastructure management.
To give you a sense of scale, to explain the entire service in AWS, we will need 200+ bullet points like the ones above. However, we shouldn’t understand this as “the more the better”. People have different needs and circumstances thus we shouldn’t use solely the number of services to judge both services.
- Heroku: the teams of app developers or small businesses looking to build web apps or prototypes fast by using a simpler cloud platform.
- AWS: the teams wanting to have an access to extensive cloud services and control most of their infrastructure.
As we learned, they have different strengths and characteristics, which makes people choose one over the other. Although AWS is the biggest cloud platform provider, we cannot say all companies should use it. Nowadays, you can often see job descriptions looking for people who have experience in other IaaS solutions like Google Cloud Platform or Microsoft Azure. Likewise, there can be businesses who are wanting to hire Heroku experts. Let’s find out what type of business or team may be a better fit for Heroku.
One thing we need to know is that Heroku’s server infrastructure is built on top of AWS. What does that really mean? When you use Heroku’s containers and data services, you actually use AWS services. But, what Heroku additionally offers includes user-friendliness and convenience. When you want to launch application servers with specific environments, you can simply select the right container with the programming languages and OS you want in Heroku. In AWS, however, you may have to take extra actions to install the requirements by yourself. This tells us that if you are a startup with small teams and if you want to execute a web project, Heroku can give you the comfort and faster cycle to build a prototype or Minimum Viable Product.
How about AWS? AWS provides an extensive range of services and allows users to control more deeply than Heroku does. This means you need more time to properly set up your service and you will still have to maintain it to a certain degree. If you have enough resources and a dedicated DevOps team who have knowledge of AWS, in the long run, AWS can be a good option for you.
- Heroku: its managed services tend to be more expensive than the similar ones in AWS.
- AWS: you can have more control over the cost and similar services tend to be cheaper than their counterparts in Heroku.
So, Heroku’s underlying infrastructure is AWS. This means that Heroku needs to incur additional costs of using AWS and the other cost of building and maintaining its managed services. This makes using Heroku more expensive than using AWS. If we compare similar services, it looks like below.
Let’s first compare the standard version of their main products – Heroku’s standard Dynos and AWS’ t2.nano EC2 instance. They both have a 512MB memory size.
If we compare their database services, for Postgres,
- Heroku Postgres Standard: $200 / month, 8GB memory, 256GB storage
- RDS db.t3.large (on-demand): $135.29 / month, 8GB memory, 256GB storage, 1 single AZ, 1 node
We can see that Heroku’s server and database services tend to be more costly while you are likely to have lower costs with AWS.
- Heroku: Ruby, Java, PHP, Python, Node, Go, Scala, and Clojure
In terms of supported languages, they both support major programming languages, but thanks to the large service variety in AWS, it supports more diverse languages and tools. But, most people use some of the major languages, so this may not be a huge deciding factor to choose between Heroku and AWS.
Integration with other cloud services
One factor you may want to check is if your cloud platform provider supports multi-cloud. Businesses go multi-cloud for the following primary reasons:
- Low latency and high availability
- Enhanced security
- Cost efficiency
Heroku and AWS both allow multi-cloud integration. In Heroku, you can achieve this by using private space peering. AWS also supports a multi-cloud environment by enabling users to EKS (Elastic Kubernetes Service) anywhere. This means that, from your AWS EKS, you can trigger deployment process for config updates, perform monitoring, and connect other app services. Basically, this is a multi-cloud container management service.
For your knowledge, Kubernetes is an open-source container management system for automating application deployment, scaling, and managing your containers. It was built by Google, and AWS provides managed Kubernetes service to ease the burden of maintaining Kubernetes clusters.
Ease of use
Heroku and AWS were born with the fundamentally same objective – helping companies to easily manage their IT infrastructure and reducing the cost of technology. Before these cloud services, companies used to rely on on-premise infrastructures, which were difficult, expensive, and slow to set up. Since the launch of their services, ensuring ease of use has been the key to success. Because of the background, both cloud services are easy to use.
However, as pointed out above, you need more expertise to use AWS since it allows more control and has extensive services. Heroku, on the other hand, is a container-centric cloud service where you can simply run a pre-built server and start using it right away. Thus, AWS requires a steeper learning curve while Heroku can be more easily approachable. Both cloud services offer free tier options so you can have close experiences before making a decision.
When you use cloud infrastructure, at some point, you can face technical difficulty. The first thing you will do is googling your problem. When you rely on the Internet, what matters is the level of popularity of your cloud platform. If you use AWS, you don’t have to worry about not having enough community support and answers since it is the largest cloud infrastructure company. In comparison, Heroku has a much smaller user base. It is old data, but according to TechCrunch, AWS had over one million active enterprise users. It didn’t mean individual users but the number of companies that use AWS. This data firm shared that there are 9,279 companies that use Heroku.
From this, we can have an idea of how easily we can get community support. But, sometimes, we may not be able to find an answer and need to reach out to an expert from a company. Heroku and AWS have different policies and pricing plans for this.
Heroku provides two types of support – Standard and Premium. Standard is offered as a complimentary service and premium is a paid service.
|Access to Heroku Community||Yes||Yes|
|Response times||N/A||Within 1 business day|
|Urgent ticket SLA||N/A||1 hour|
|Direct access to top tier support engineers||N/A||Yes|
Although the standard plan is free of charge, it has limited support items. Premium has all ticks for the supports and its price starts at $1,000 / month. Above premium, Heroku has an Enterprise plan and the price can be different by your demands. Compared to AWS, Heroku pricing tends to be simpler.
AWS has three different support plans – Developer, Business, and Enterprise. All these support types have different price tags. First, check which support type would be a better choice for you and check its pricing plans.
- Developer: The AWS developer support is for those in the early development stage on AWS and for the businesses wanting technical support during business hours and general architectural guidance as you build and test.
- Business: The business support is for the teams that run production services on AWS and want 24×7 access to technical support from engineers and architectural guidance for your specific use cases.
- Enterprise: With enterprise support, you can access 24×7 technical support from expert engineers, tools, and technology to automatically manage the health of your environment. You can have consultative architectural guidance and a designed Technical Account Manager (TAM) for proactive and preventive programs and AWS subject matter experts.
Can they be used together?
You may have already got an answer from the integration with other cloud services section. Comparing Heroku and AWS does not mean that we should choose only one over the other. Although they both provide cloud platforms, they are not a direct competitor. It is more for understanding each other and discovering strengths and weaknesses. When we know them, someone may want to use them to cancel out the weaknesses of each platform.
So, can we use both together? The answer is yes, but as you know, they run in a separate environment. To use them both and interact with each other, you will have to design the interaction part. For example, you can consider running web applications and databases on Heroku and send data to AWS Redshift or S3 bucket for analytics. As long as you allow network connectivity between the two, you can use them both and benefit from the strengths of both cloud solutions.
We have discussed the main differences between Heroku and AWS. If you want to quickly prototype your web application with limited developer resources, Heroku may be the best choice. However, you will have to consider the long-term commitments on your infrastructure. This means that since AWS cloud has a much wider cloud ecosystem, you may be later want to migrate your resources into AWS from Heroku. Considering that, you might want to use Heroku in a light way to validate your product. Then, when you can solidify your product, you can start migrating or building your product on AWS.