ECS

ECS is a container orchestration tool facilitating the deployment and management of multiple containers.

Clusters

The concept of Cluster corresponds to the underlying servers where our containers deployed by ECS are run on.

ECS Launching options

EC2 Launch type

The user has to deploy and mange the underlying EC2 instances (create, manage, patch, upgrade, etc) which give full control over the infrastructure. ECS will manage the container on the EC2 instances.

Each EC2 instances have a ECS Agent with which the ECS Control Plane can talk to.

ECS Fargate type

The Fargate service will create the resources (server) on demand on which our containers will run on. Serverless means that we do not have to manage the resources on which our containers will run on. In others words, no need to manage any EC2 or any others servers.

Serveless options.

Only pay for what you use.

ECS Tasks

A Task Definition can be think as a blueprint that describes how containers should launch. Can be compared to the docker run command when launching a Docker container locally or the specification found in a docker-compose.yaml file. It is a file containing instructions.

A Task is an instance of a task definition. It is a running container with the settings defined in a task definition.

ECS Services

A service to ensure that one or multiple instances of one app are running at the same time. A service can contain one or more tasks. Service creates Tasks based on a Task Definition. A Service will also monitor and restarts and containers that have crashed or exited.

When we create a service with for instances two tasks both of them will have a different public IP address. A load balancer can be a solution to point to only one IP address.

Load Balancers

To get the traffic routed to all the container where our application is deployed.

Last updated