Amazon ECS Concepts
Internal
Overview
Amazon Elastic Container Service (ECS) allows deploying Docker containers on a scalable cluster. Docker images to be deployed typically come from Amazon ECR.
Container
The container is based on an image, that should be chosen when creating the container.
Task
Task Definition
A task definition is a blueprint, or a configuration, for an application, and describes one or more containers through attributes. Some attributes are configured at the task level but the majority of attributes are configured per container. It specifies the Docker image, how many containers to use for this task and the resource allocation for each container.
Task Definition Name
Network Mode
The Docker networking mode to use for the container in the task.
Task Execution Role
The IAM role used by the task.
Compatibilities
The launch type used by the task.
Task Memory
Task CPU
0.25 vCPU
Task Operations
Service
A service allows running and maintain a specified number (the "desired count") of simultaneous instances of a task definition in an ECS cluster.
Service Definition
Service Name
Number of Desired Tasks
Security Group
A security group is created to allow all public traffic to the service only on the container port specified. Security groups and network access can be further refined after the service creation.
Service Status
Service Type
REPLICA
Service's Task Definition
Load Balancer Type
Service Operations
Cluster
An Amazon ECS cluster is a regional, logical grouping of tasks or services. If the tasks or services in question use the EC2 launch type, the cluster is also a grouping of container instances. A default cluster is always available, but multiple clusters can be created in an account to keep your resources separate. A cluster cannot span more than one region.
Cluster Configuration
Cluster Name
Cluster VPC
Cluster Subnets
Cluster Operations
Launch Type
EC2 Launch Type
The EC2 launch type allows running a containerized applications on a cluster of Amazon EC2 instances.
Fargate Launch Type
The Fargate launch type allows running a containerized application without the need to provision and manage the backend infrastructure. It only requires registering a task definition. When that is available, Fargate launches the container.