- Published on
What is Amazon ECS? Basics of AWS
- Authors
- Name
- Cristian Encalada

Amazon Elastic Container Service (Amazon ECS) is a powerful and flexible container orchestration service offered by AWS. It simplifies the process of deploying, managing, and scaling containerized applications using Docker containers.
Table of contents
What is ECS

What are the main purposes of orchestrators?
- Manage lifecycle of containers: create/restart/destroy
- Deploy and load-balance application across multiple servers
- Autoscaling to handle variance in traffic
- Rolling out changes to applicaation
ECS competitors
Docker Compose Deployment
The scale up with docker compose is more difficult.
We can only deploy in a single server at a time. To deploy in different servers we could copy the docker-compose.yml file, but it's not fully an orchestrated system.

Traditional Orchestrators vs Amazon ECS
Traditional Orchestrators such as Kubernetes, these all require a lot of effort to get up and running.
ECS was created as a simple alternative as an orchestrator that requires to use a Graphical User Interface (GUI) to configure almost the entire process for different services.

EC2 vs Fargate
ECS: Only works with containers, when a container is deployed, it still has to run in a physical or a virtual machine, but ECS does not act as a server, ECS does not have any service or compute power.
ECS can only create and delete containers, but still needs the underlined infrastructure to be able to run those containers on.
ECS Cluster: Is a bunch of resources (underlined resources) that the containers are going to run on. Is the physical infrastructure.
ECS has two launch types:
- EC2 based launch type (EC2 = AWS Compute Service)
- Fargate Service

EC2 Launch: We have to manage the underlying EC2 instances (infrastructure). We have to create the individual EC2 instances.
- You still need to manage the underlying infrastructure (EC2)
- ECS manages the containers
- Full control over your infrastructure

ECS Fargate Launch: AWS manages the underlying infrastructure (serverless deployment)
- Follows a serverless architecture
- Fargate will create servers on demand
- No need to provision/mantain EC2 servers
- You only pay for what you use

EC2 Task
ECS Task Definition
- Is a blueprint that describes how containers should launch (intructions)
- How much CPU/MEM
- Image/Ports/Volumes

ECS Task
- An instance of a Task Definition
- A running container(s) with setting defined in the Task Definition

ECS Services
- A service ensures that a certain number if Tasks are running at all times
- Restarts containers that have exited/crashed
- If a EC2 instance fails, the Service will restart the task on a working EC2 instance

Load Balancers
- A Load Balancer can be assigned to route external traffic of your server.
- Aditionally, after each deploy using AWS Fargate, a new IP address is generated, the Load Balancer can redirect all traffic comming to those dynamic IPs generated to a static URL configured.

Thanks for reading!