Amazon Elastic Container Service (Amazon ECS) is a scalable, high performance container management service that supports Docker containers.
N/A
AWS Elastic Beanstalk
Score 7.4 out of 10
N/A
AWS Elastic Beanstalk is the platform-as-a-service offering provided by Amazon and designed to leverage AWS services such as Amazon Elastic Cloud Compute (Amazon EC2), Amazon Simple Storage Service (Amazon S3).
$0
Users pay for AWS resources (e.g. EC2, S3 buckets, etc.) used to store and run the application.
Users pay for AWS resources (e.g. EC2, S3 buckets, etc.) used to store and run the application.
Offerings
Pricing Offerings
Amazon Elastic Container Service (Amazon ECS)
AWS Elastic Beanstalk
Free Trial
No
No
Free/Freemium Version
Yes
Yes
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
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)
AWS Elastic Beanstalk
Features
Amazon Elastic Container Service (Amazon ECS)
AWS Elastic Beanstalk
Container Management
Comparison of Container Management features of Product A and Product B
Amazon Elastic Container Service (Amazon ECS)
8.1
Ratings
5% above category average
AWS Elastic Beanstalk
-
Ratings
Security and Isolation
9.00 Ratings
00 Ratings
Container Orchestration
8.50 Ratings
00 Ratings
Cluster Management
7.80 Ratings
00 Ratings
Storage Management
8.00 Ratings
00 Ratings
Resource Allocation and Optimization
7.30 Ratings
00 Ratings
Discovery Tools
7.30 Ratings
00 Ratings
Update Rollouts and Rollbacks
8.50 Ratings
00 Ratings
Self-Healing and Recovery
8.40 Ratings
00 Ratings
Analytics, Monitoring, and Logging
8.20 Ratings
00 Ratings
Platform-as-a-Service
Comparison of Platform-as-a-Service features of Product A and Product B
Amazon Elastic Container Service (Amazon ECS) is well suited where you need the ease of managing the clusters by letting AWS do the stuff for you. Obviously, whenever you want to run the docker based workloads, it is always better to go for either AWS ECS or AWS EKS. If you are interested in staying at AWS only and don't want to be cloud-agnostic, then go for AWS ECS instead of AWS EKS. AWS ECS is cheaper than AWS EKS and also more managed by AWS and better integrated with other AWS services. If you want to run those workloads as serverless, then AWS ECS Fargate is the best option to go with. If you already have a Kubernetes based setup that you want to migrate to AWS, then go for AWS EKS instead of AWS ECS.
AWS Elastic Beanstalk is well suited for [the] rapid development of applications that use standard compute platforms based on popular programming languages. So getting a Go, Python, Ruby, or Node.js app going in AWS Elastic Beanstalk will be easy. For non-standard applications, containers provide another option for using AWS Elastic Beanstalk. In either case, AWS Elastic Beanstalk is well suited for applications that are [self-contained]. AWS Elastic Beanstalk is also good for development or test environments that need a built-in deployment method. AWS Elastic Beanstalk is less appropriate for complex applications that rely on multiple AWS services. While deploying and running the base code might be easy to get going, it may be difficult to apply permissions and integrations with the other services.
Well Integrated - As with the majority of AWS services, ECS works will with any other AWS product (Route 53, CloudWatch, IAM, etc).
Easy to get started with - It is easy to get started building just about anything in AWS and using ECS is no exception to this rule. Be careful though -- AWS lets you do/build anything in any way you could think of and allowing yourself to shoot yourself in the foot is no exception.
The user interface sometimes seem to be confusing and cumbersome. It can be improved so that people can understand clearly which section to go for which functionality.
When a container fails, the error logs are not readily available on the ECS console. If it can be provided it would be easier to debug from there itself instead of going to our log manager.
Sometimes the old EC2 containers become stale and need to be restarted manually. There should be a notification for such scenarios. We have mostly been finding it out on our own and then fixing it by manually restarting EC2 instances.
If this could be proactively monitored and notified, it would be great.
How to more easily integrate with other other AWS services. There are plenty out there, but it's not quite as seamless as I feel like it should be to mix and match products.
Make backing up easier when scaling the server. It took quite a bit of time to make sure we had everything set up in case something went wrong.
When you are first starting to use AWS, the dashboard can be very intimidating. There are countless products all with names that aren't very indicative of what they actually do.
As our technology grows, it makes more sense to individually provision each server rather than have it done via beanstalk. There are several reasons to do so, which I cannot explain without further diving into the architecture itself, but I can tell you this. With automation, you also loose the flexibility to morph the system for your specific needs. So if you expect that in future you need more customization to your deployment process, then there is a good chance that you might try to do things individually rather than use an automation like beanstalk.
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.
The overall usability is good enough, as far as the scaling, interactive UI and logging system is concerned, could do a lot better when it comes to the efficiency, in case of complicated node logics and complicated node architectures. It can have better software compatibility and can try to support collaboration with more softwares
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.
As I described earlier it has been really cost effective and really easy for fellow developers who don't want to waste weeks and weeks into learning and manually deploying stuff which basically takes month to create and go live with the Minimal viable product (MVP). With AWS Beanstalk within a week a developer can go live with the Minimal viable product easily.
- Do as many experiments as you can before you commit on using beanstalk or other AWS features. - Keep future state in mind. Think through what comes next, and if that is technically possible to do so. - Always factor in cost in terms of scaling. - We learned a valuable lesson when we wanted to go multi-region, because then we realized many things needs to change in code. So if you plan on using this a lot, factor multiple regions.
AWS Elastic Beanstalk is a good beginner level orchestration service but lacks container management and scaling capabilities. EC2 is again not a Managed cloud service. It is like just renting a computer on cloud and then managing it on our own. Compared to these ECS is a comprehensive solution that provides management, scaling, containerization and other service connectivity out of the box.
There are many services like AWS Elastic beanstalk, but there are none with the maturity in the platform or the cost-effectiveness of AWS Elastic Beanstalk. Also, AWS Elastic Beanstalk is the oldest among them, so there are more people with AWS experience than the other platforms. The only thing is their documentation and UX are a bit old, which doesn't stop it from performing greatly, but yes, if you are looking for better UX, then you can check out other options.
We run 8 web applications (demo instances) on a single machine. At a particular time, no more than 3 applications run simultaneously. So, we keep only required containers up. This helps us to provision small EC2 machines without compromising performance.
Overall Amazon ECS helps to have less number of dedicated machines as more than one solution can be deployed on a single instance. This reduces costs a lot.
Elastic Beanstalk removes countless hours from development team responsibility, freeing up those resources to instead focus on building the products that our customers want to use.
As a business that is already embedded into using EC2 instances, it's essentially free to leverage the work that AWS performs on configuring the Elastic Beanstalk stacks.
With Elastic Beanstalk, while there is still a responsibility to ensure that applications can work with updated underlying dependencies, it's much easier when AWS handled the heavy lifting of updating the stacks.