Amazon Elastic Container Service (Amazon ECS) is a scalable, high performance container management service that supports Docker containers.
$0
per hour per GB
Heroku Platform
Score 9.1 out of 10
N/A
The Heroku Platform, now from Salesforce, is a platform-as-a-service based on
a managed container system, with integrated data services and ecosystem for deploying modern apps. It takes an app-centric
approach for software delivery, integrated with developer tools and
workflows. It’s three main tool are: Heroku Developer Experience (DX), Heroku
Operational Experience (OpEx), and Heroku Runtime.
Heroku Developer Experience (DX)
Developers deploy directly from tools like…
There is no additional charge for Amazon ECS. You pay for AWS resources (e.g., Amazon EC2 instances or Amazon EBS volumes) you create to store and run your application. You only pay for what you use, as you use it; there are no minimum fees and no upfront commitments.
—
More Pricing Information
Community Pulse
Amazon Elastic Container Service (Amazon ECS)
Heroku Platform
Features
Amazon Elastic Container Service (Amazon ECS)
Heroku Platform
Container Management
Comparison of Container Management features of Product A and Product B
Amazon Elastic Container Service (Amazon ECS)
8.1
6 Ratings
2% above category average
Heroku Platform
-
Ratings
Security and Isolation
9.06 Ratings
00 Ratings
Container Orchestration
8.55 Ratings
00 Ratings
Cluster Management
7.96 Ratings
00 Ratings
Storage Management
8.03 Ratings
00 Ratings
Resource Allocation and Optimization
7.35 Ratings
00 Ratings
Discovery Tools
7.44 Ratings
00 Ratings
Update Rollouts and Rollbacks
8.56 Ratings
00 Ratings
Self-Healing and Recovery
8.46 Ratings
00 Ratings
Analytics, Monitoring, and Logging
8.16 Ratings
00 Ratings
Platform-as-a-Service
Comparison of Platform-as-a-Service features of Product A and Product B
Amazon ECS is well suited for the scenarios where you want to deploy a microservice to a cloud and instead of manually specifying instance size, number of instances and then specifying the configurations and connecting it with other cloud services like database service, secret manager service etc., you just want to specify these configurations as a file and using that file, the ECS would deploy the service and keep it healthy. It might be less suited for a scenario when you don't want to stick to AWS specific solution for your microservice deployment. The ECS configuration file is specific to AWS ECS and may not be useful for other cloud providers like Azure etc.
Heroku is very well suited for startups looking to get a server stack up and running quickly. There is little to no overhead when managing your instances. However, you'll need a background in basic DevOps or system management to make sure everything is set up correctly. In addition, it's easy to accidentally go crazy on pricing. Make sure you're only creating the server instances you need to run the base application and set up an auto-scaler plugin to handle peaks.
One of the biggest advantages is the flexibility to change underlying EC2 instances. As the traffic or demand increases, we can easily change EC2 instances without any issues.
Amazon ECS APIs are extremely robust and one can start and stop containers by firing one post request only. So, it is not mandatory to keep the demo solutions up for every time. Just at the time of demo fire the command - make the container up and running - do the demo - down the container with API. A simple portal can control every container which helps non-technical (sales, marketing) to do the demo without keeping the solutions up for the entire time frame.
Heroku has a very simple deployment model, making it easy to get your application up-and-running with minimal effort. We can focus on our efforts the unique aspects of our application.
The robust add-on marketplace makes it easy to try out new approaches with minimal effort and investment -- and when we settle on a solution, we can easily scale it.
Heroku's support is quite good -- their staff is quite technical and willing to get into the weeds to diagnose even complicated problems.
Another AWS Service - While AWS has a service for just about everything, that is also a negative point. There is no service that does 4 out of 4 things you need. This service does 3 out of 4, another service does the fourth thing you need and another two things that the other service does.
With AWS things in general, it's really hard to remain cloud agnostic. Keep that in mind.
Large price jumps between certain resource tiers (2x Dyno for $50 per month versus Performance Dyno for $250). Free Postgres next jumps to $50 per month.
Marketing/Branding to non-technical stakeholders. As the years pass, I've had to fight more to convince stakeholders on the value of Heroku over AWS.
Improve Buildpack documentation. This is one area where Heroku's documentation is fairly confusing.
Heroku is easy to use, services a ton of functions for you out of the box, and provides a means to get a software product off the ground and managed quickly and easily. The tools provide allows a small to medium size org to move very quickly. The CLI tools provided make managing an entire technical infrastructure simple.
Aside from some ECS-specific terms to learn at first, learning & starting to use ECS is relatively straightforward. AWS docs on the topic are also of high quality, with sound & relevant examples to follow. Troubleshooting container issues is also a breeze thanks to CloudWatch integration & helpful error messages on the AWS console.
Easy to use web based console and easy to use command line tools; deployment is done directly from a GIT repository. What more could you ask for? The one thing that keeps me from giving it a 10 is that custom build packs are almost incomprehensible. We used one for a while because we needed cairo graphics processing. Fortunately, I was able to figure out a different way to do what we needed so that we could get off the custom build pack.
Heroku availability correlates pretty strongly to AWS US EAST availability. We had a couple of times where there was a Heroku-specific issue but not for the last 7-8 months.
Support is relatively good, although the documentation sometimes is lacking, as well as outdated in our experience, especially when we initiated the process of using this service. But once we found how to assemble things, we haven't really required support from anyone at AWS, the service works without problems so we haven't had the need to contact support, which speaks well of how ECS is built.
I've used it for many years without facing any major problem. It's not hard at all to get used to it, it's documentation is outstanding and simple. We are close to 2020 and I don't think most of the existing companies or startups should still face old problems such as wasting time deploying code and calculate computing resources.
Be ready to pay a bit more than expected in the beginning if you're migrating from a big server. The application is probably not ready for the change and you have to keep improving it with time.
It's also important to consider that you can't save anything to the disc as it will be lost when your application restarts, so you have to think about using something like S3.
I chose Amazon ECS over Amazon EKS and other products because the whole infrastructure was decided to be designed on AWS cloud and Amazon ECS made it easier to make the clusters live in just a few minutes. Amazon ECS has better integration with other AWS services and we don't have to look for plugins to do the things, everything is available and can be configured from the AWS console.
Heroku is the more expensive option for hosting compared to some of the cloud platforms we investigated, but it's worth it for us because of the plug-and-play nature of Heroku deployment. We can be up and running in a few minutes and know with precision how much it will cost us each month to run the application, unlike Amazon Web Services where you have to go to great pains to configure it correctly or else you might end up with a shocking monthly bill. Overall, spending the time to configure Amazon Web Services or one of its competitors is likely the more affordable and powerful choice, because you have control over so many specifics of the configuration. But it also requires the burden of continuing to maintain and update your AWS instance, whereas with Heroku they take care of security fixes and platform upgrades. It's a great service and we are happy to pay the extra cost for the value-adds Heroku provides.