Amazon Elastic Container Service
Highly secure, reliable, and scalable way to run containers
Amazon Elastic Container Service (Amazon ECS) is a fully managed container orchestration service. Customers such as Duolingo, Samsung, GE, and Cookpad use ECS to run their most sensitive and mission critical applications because of its security, reliability, and scalability.
ECS is a great choice to run containers for several reasons. First, you can choose to run your ECS clusters using AWS Fargate, which is serverless compute for containers. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design. Second, ECS is used extensively within Amazon to power services such as Amazon SageMaker, AWS Batch, Amazon Lex, and Amazon.com’s recommendation engine, ensuring ECS is tested extensively for security, reliability, and availability.
Additionally, because ECS has been a foundational pillar for key Amazon services, it can natively integrate with other services such as Amazon Route 53, Secrets Manager, AWS Identity and Access Management (IAM), and Amazon CloudWatch providing you a familiar experience to deploy and scale your containers. ECS is also able to quickly integrate with other AWS services to bring new capabilities to ECS. For example, ECS allows your applications the flexibility to use a mix of Amazon EC2 and AWS Fargate with Spot and On-Demand pricing options. ECS also integrates with AWS App Mesh, which is a service mesh, to bring rich observability, traffic controls and security features to your applications. ECS has grown rapidly since launch and is currently launching 5X more containers every hour than EC2 launches instances.
ECS supports Fargate to provide serverless compute for containers. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design.
Application first with Capacity Providers
ECS capacity providers help you to focus on building and managing applications instead of infrastructure. With capacity provider the demands of your application determines the compute capacity allocated to it and you get the flexibility to use a mix of EC2 and Fargate with Spot and On-Demand pricing options for your applications.
Performance at scale
ECS powers several key services at Amazon and is built on technology developed from many years of experience running highly scalable services. You can rapidly launch thousands of containers using ECS with no additional complexity.
ECS launches your containers in your own Amazon VPC, allowing you to use your VPC security groups and network ACLs. No compute resources are shared with other customers. You can also assign granular access permissions for each of your containers using IAM to restrict access to each service and what resources a container can access. This high level of isolation helps you use ECS to build highly secure applications.
ECS runs on the best global infrastructure with 77 Availability Zones (AZ) across 24 Regions. AWS provides >2x more regions with multiple availability zones than the next largest cloud provider (24 vs. 8). ECS is backed by the AWS Compute SLA which guarantees a Monthly Uptime Percentage of at least 99.99% for ECS giving you ease of mind.
Optimized for cost
With ECS, you can use Fargate Spot tasks or EC2 Spot instances to realize up to 90% discounts compared to on-demand prices for running stateless and fault tolerant applications. You can use savings plan and realize up to 50% discount for persistent workloads. You can easily run ECS clusters at scale by mixing Spot Instances with On-Demand and Reserved Instances.
How Amazon ECS works
You can use ECS on Outposts to run containerized applications that require particularly low latencies to on-premises systems. AWS Outposts is a fully managed service that extends AWS infrastructure, AWS services, APIs, and tools to virtually any connected site. With ECS on Outposts, you can manage containers on-premises with the same ease as you manage your containers in the cloud.
You can use AWS Deep Learning Containers for training and serving models in TensorFlow, PyTorch, and MXNet on ECS. You can also accelerate deep learning inference workloads in ECS by using Amazon Elastic Inference (EI).
You can run sequential or parallel batch workloads on ECS using AWS Batch. AWS Batch enables you to easily and efficiently run hundreds of thousands of batch computing jobs by dynamically provisioning the optimal quantity and type of compute resources based on the volume and specific resource requirements of the batch jobs submitted.
You can build web applications that automatically scale up and down and run in a highly available configuration across multiple Availability Zones. By running on ECS, your web applications benefit from the performance, scale, reliability, and availability of the AWS. Additionally, your services get out-of-the-box integrations with AWS networking and security services, such as Application Load Balancers for load distribution of your web application and VPC for networking.