→ "여러 대의 서버에 걸쳐, 컨테이너들을 자동으로 배치/확장/복구해주는 총괄 관리자”
ECS Cluster = "컨테이너를 띄울 수 있는 여러 서버(또는 Fargate 자원)들의 집합"
Task Definition에 정의하는 내용: - 어떤 Docker 이미지를 쓸지 (ECR의 이미지 경로) - CPU/메모리를 얼마나 할당할지 - 포트 매핑 - 환경변수 - IAM Role (이 컨테이너가 어떤 AWS 권한을 가질지)
Task Definition = 설계도 (붕어빵 틀)
Task = 그 설계도로 실제 실행된 컨테이너(들) (구운 붕어빵)
"이 Task를 몇 개나 계속 유지할지" 관리해주는 계층이에요. 앞서 배운 ASG(Auto Scaling Group)와 매우 비슷한 개념이에요.
Service 설정: "이 Task Definition으로 만든 Task를 항상 5개 유지해줘"
→ Task 하나가 죽으면 → Service가 자동으로 새 Task를 띄워서 5개를 유지 (self-healing) → ALB와 연동해서, 트래픽을 여러 Task에 분산 가능
[ECS Cluster] (서버들의 묶음)
│
└── [Service] "5개 유지해줘" ← ASG와 비슷한 역할
│
├── [Task 1] ← Task Definition으로 만들어진 실행 단위
├── [Task 2]
├── [Task 3]
├── [Task 4]
└── [Task 5]
│
└── (각 Task 안에 1개 이상의 컨테이너)
참고: 권한들