Amazon Elastic Container Service Documentation
Amazon Elastic Container Service (Amazon ECS) allows you to deploy containerized workloads on AWS. Amazon ECS enables you to grow from a single Docker container to managing your enterprise’s application portfolio. Run and scale your container workloads across availability zones, in the cloud, and on-premises, without managing a control plane or nodes.
Amazon ECS key features
Serverless by default with AWS Fargate: AWS Fargate is built-in to Amazon ECS, which helps you to manage servers, handle capacity planning, and isolate container workloads. Just define your application’s requirements, select Fargate as your launch type in the console or Command Line Interface (CLI), and Fargate will help you take care of the scaling and infrastructure management.
Amazon ECS Anywhere: With ECS Anywhere, you can use the Amazon ECS console and operator tools to manage your on-premises container workloads for a consistent experience across your container-based applications. The AWS Systems Manager (SSM) integration is designed to establish trust between your on-premises hardware and the AWS control plane.
Amazon ECS additional features
Development
Docker Support
Amazon ECS supports Docker so that you can run and manage Docker containers. It even integrates into the Docker Compose CLI integrates into the Docker Compose CLI, so you can define and run multi-container applications. Applications you package as a container locally will deploy and run on Amazon ECS without configuration changes.
Windows Containers Compatibility
Amazon ECS supports management of Windows containers. An Amazon ECS-optimized Windows Amazon Machine Image (AMI) is designed to provide enhanced instance and container launch time performance and visibility into CPU, memory utilization, and reservation metrics.
AWS Copilot
Repository Support
Use Amazon ECS with third-party hosted Docker image repositories or accessible private Docker registries, such as Docker Hub and Amazon Elastic Container Registry (ECR) Amazon Elastic Container Registry (Amazon ECR). You need to specify the repository in your task definition and Amazon ECS is designed to retrieve the appropriate images for your applications.
Management
Task Definitions
Programmatic Control
Container Deployments
Amazon ECS allows you to easily update your containers to new versions. You can upload a new version of your application task definition, and the Amazon ECS scheduler starts new containers using the updated image and stop containers running the previous version. Amazon ECS registers and deregisters your containers from the associated Application Load Balancer.
Blue/Green Deployments
Container Auto-Recovery
The Amazon ECS is designed to recover unhealthy containers so that you have the desired number of containers supporting your application.
Capacity Providers
Storage
Scheduling and Task Placement
Amazon ECS includes multiple scheduling strategies that place containers across your clusters based on your resource needs (for example, CPU or RAM) and availability requirements. Using the available scheduling strategies, you can schedule batch jobs, long-running applications and services, and daemon processes.
Task Scheduling
Amazon ECS task scheduling allows you to run processes that perform work and then stop, such as batch processing jobs. Task scheduling starts tasks from a queue of jobs, or based on a time interval that you define.
Service Scheduling
Amazon ECS service scheduling allows you to run stateless services and applications so that a specified number of tasks are constantly running and restarts tasks if failure occurs. Customers can register tasks against an Elastic Load Balancing load balancer and can perform health checks that users define for running tasks.
Daemon Scheduling
Task Placement
With Amazon ECS, use placement strategies such as bin pack and spread to further define where tasks are placed. Policies can be chained together to achieve placement capabilities without writing any code.
Networking
Service Discovery
Service Connect
Amazon ECS Service Connect helps you with service discovery, connectivity, and traffic observability for Amazon ECS. It helps you build applications by letting you focus on the application code and not on your networking infrastructure. You can use ECS Service Connect to define logical names for your service endpoints and use them in your client applications to connect to dependencies. ECS Service Connect helps send your traffic to healthy endpoints and provides traffic telemetry in the ECS console and in Amazon CloudWatch. ECS Service Connect supports connection draining that helps your client applications switch to a new version of the service endpoint without encountering traffic errors.
With ECS Service Connect, you can:
• Set the way client applications connect to their dependencies
• Write and operate resilient distributed applications with logical naming
• Monitor and distribute traffic between ECS tasks without deploying and configuring load balancers
• Deploy services and deliver integration of ECS microservices comprising an application
Task Networking
Amazon ECS supports Docker networking and integrates with Amazon VPC to provide isolation for containers. This helps you control how containers connect with other services and external traffic.
Load Balancing
Amazon ECS is integrated with Elastic Load Balancing, which is designed to allow you to distribute traffic across your containers using Application Load Balancers or Network Load Balancers. You specify the task definition and the load balancer to use, and Amazon ECS adds and removes containers from the load balancer. Specify a dynamic port in the task definition, which gives your container an unused port when it is scheduled on an EC2 instance. In addition, use path-based routing to share a load balancer with multiple services.
Monitoring and Logging
Monitoring
Amazon ECS provides monitoring capabilities for your containers and clusters through Amazon CloudWatch. You can monitor average and aggregate CPU and memory utilization of running tasks as grouped by task definition, service, or cluster. Set CloudWatch alarms to alert you when your containers or clusters need to scale up or down.
Logging
AWS Config
Hybrid Deployments
AWS Outposts
Additional Information
For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.