What is Amazon ECS?
Amazon Elastic Container Service (ECS) is a highly scalable, high-performance container orchestration service that supports Docker containers. It allows you to easily run and scale containerized applications on AWS.
Key Concepts
1. Task Definition
- The metadata or "blueprint" for your application.
- Describes which Docker image to use, CPU/Memory requirements, and environment variables.
2. Service
- Ensures that a specified number of Tasks are running at all times.
- If a Task fails, the Service restarts it.
3. Launch Types (Where does it run?)
- EC2 Launch Type: You manage the EC2 instances (updates, patching). You pay for the EC2 instances.
- Fargate Launch Type: Serverless. AWS manages the infrastructure. You pay per CPU/Memory/Second.
Exam Tips
[!IMPORTANT] ECS vs EKS:
- ECS: AWS Native, simpler, deep integration with AWS.
- EKS: Kubernetes managed service. Use it if you are already using Kubernetes.
[!NOTE] EC2 vs Fargate:
- EC2 Mode: "I want to control the Operating System."
- Fargate Mode: "I don't want to manage servers, just run my container."
Common Use Cases
- Microservices: Running hundreds of decoupled services that talk to each other.
- Batch Processing: Scheduling short-lived containers to process data.