TrustRadius: an HG Insights company

Amazon Elastic Container Service (Amazon ECS)

Score8.5 out of 10

44 Reviews and Ratings

What is Amazon Elastic Container Service (Amazon ECS)?

Amazon Elastic Container Service (Amazon ECS) is a scalable, high performance container management service that supports Docker containers.

Categories & Use Cases

Top Performing Features

  • Security and Isolation

    Product provides effective tools to isolate containers, nodes, and clusters and protect them from threats.

    Category average: 8.5

  • Container Orchestration

    The product’s ability to automate networking, deployment, scaling, and other container management functions.

    Category average: 8.2

  • Update Rollouts and Rollbacks

    Product provides tools or functionality to deliver updates to containerized applications in ways that minimize the impact of errors, and revert updates that cause problems.

    Category average: 7.7

Areas for Improvement

  • Cluster Management

    Product’s ability to centralize the management of multiple container or node clusters.

    Category average: 8.1

  • Resource Allocation and Optimization

    Product’s ability to balance resource requirements, availability needs, and workload intensity to optimize resource usage.

    Category average: 7.7

  • Discovery Tools

    Product provides methods (such as URIs or sortable lists) to easily find and access jobs, nodes, containers, or clusters.

    Category average: 8.1

Pros and cons of Amazon ECS

Use Cases and Deployment Scope

We use Amazon Elastic Container Service(ECS) for deploying our production services. So, it is the backbone of our infrastructure. All the microservices are deployed on ECS in EC2 instances.
For any SaaS application like ours, we need to deploy it on cloud and that's where ECS comes into picture.
ECS is special in the sense that it takes care of the orchestration and we only need to specify the instance size, number of instances and other configurations to connect with other services like RDS for database and Secret Manager for credentials etc. and it takes care of the deployment.

Pros

  • It takes care of the deployment life cycle by using just a configuration file
  • It takes care of the scaling as well and monitors the health of the services
  • It does the version management as well and if we need to roll back to a previous version, we need not do it via SCM tools like git, we can simply deploy a previous version from ECS console itself.

Cons

  • 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.

Return on Investment

  • Amazon ECS has solved the problem of deploying our service to cloud and making it highly scalable and available and managing the lifecycle of the container.
  • We've achieved 99.8 % of uptime because of self-healing capabilities of ECS and its scalability.
  • It has made it easy to configure testing environments with lower configurations and lower costs as we need less compute power in testing environments and we can specify less number of instances with less memory for such environments.

Usability

Alternatives Considered

AWS Elastic Beanstalk and Amazon Elastic Compute Cloud (EC2)

Other Software Used

Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Simple Queue Service (SQS)

ECS - The Simplest Way to Run Your Docker Images on AWS.

Use Cases and Deployment Scope

If you want to operate your containerized services on AWS, then the simplest way is to use ECS, especially with Fargate instances. Imagine having just to specify what docker image you need to run in a task definition, then you can already launch a new ECS service with that image, with all the health checks, load balancing, and pod management done automatically.

Pros

  • Run your docker image using Fargate instances.
  • Run your docker image using your EC2 instances.
  • Simple management with versioned task definition.
  • Built-in integration with AWS services like CloudWatch, Secrets Manager, Parameter Store, IAM, etc.

Cons

  • There are still a handful of service-specific terms that you need to know before using the service.
  • Auto scaling configuration could be simpler.
  • Deployment could be faster, still takes a couple of minutes each time now.

Return on Investment

  • ECS is simple to learn. My team can quickly learn the basics & try it out on the console
  • ECS is also well-supported on the IaC side, so setting a Terraform / Terragrunt repo for the cluster is pretty straightforward.
  • We were able to set up an ECS cluster from scratch, altogether with a Terraform repo, deployed & updated from the Bitbucket pipeline in half a month.

Usability

Alternatives Considered

Amazon Elastic Kubernetes Service (EKS)

Other Software Used

HashiCorp Terraform, Bitbucket, Amazon Elastic Kubernetes Service (EKS)

Simple container management and orchestration with Amazon Elastic Container Service (Amazon ECS)

Use Cases and Deployment Scope

We use Amazon Elastic Container Service (Amazon ECS) to deploy containerised versions of the microservices which make up our systems. Amazon Elastic Container Service (Amazon ECS) allows us to easily deploy and scale microservices as needed without the hassle of managing multiple tiers of server architecture. Amazon Elastic Container Service (Amazon ECS) also provides as container registry service which gives us a storage facility for our private container images.

Pros

  • Integration with other AWS services
  • High availability
  • Simple container orchestration

Cons

  • Doesn’t support multi-region orchestration
  • Difficult to debug issues
  • Bigger learning curve to get started

Return on Investment

  • Reduced overhead of managing infrastructure
  • Initial learning curve higher than some other services.
  • Increased time to market through quick deployment and orchestration.

Usability

Alternatives Considered

SUSE Rancher, Proxmox VE, Amazon Elastic Compute Cloud (EC2) and Docker

Other Software Used

Amazon Elastic Compute Cloud (EC2), Docker, Splunk Enterprise

Easy container orchestration in AWS

Use Cases and Deployment Scope

Container based microservice solution

Pros

  • Good search engine performance
  • Flexible index configuration

Cons

  • More human-readable API

Return on Investment

  • Out-of-the-box service on the application plattform
  • No additional infrastructure

Usability

Alternatives Considered

AWS CloudFormation and Amazon Elastic Container Service (Amazon ECS)

Other Software Used

Azure App Service, AWS CloudFormation, SAP Business Technology Platform

Amazon Elastic Container Service (Amazon ECS) helps optimize service deployment and reduce cost and time spent managing infrastructure

Use Cases and Deployment Scope

We run all of our production hosts on Amazon Elastic Container Service (Amazon ECS) for multiple services. It allows us to quickly deploy and scale up/down services without spending time and costs on infrastructure

Pros

  • Deployments
  • Scaling
  • Automation

Cons

  • Some options are not available via console and only CLI
  • A simplified high-level view would help

Return on Investment

  • Amazon Elastic Container Service (Amazon ECS) allows us to spend more time developing our product and less configuring and managing the infrastructure.
  • Amazon Elastic Container Service (Amazon ECS) allows us to scale up and down according to volume and business needs, saving money and increasing reliability

Usability