AWS Fargate는 컨테이너를 서버리스 방식으로 실행하는 AWS의 컨테이너 실행 엔진이다. EC2 인스턴스를 직접 관리하지 않고 ECS 또는 EKS 위에서 컨테이너를 실행할 수 있다.
아키텍처
개발자 → Task Definition → ECS/EKS
↓
Fargate 런타임 (서버리스)
↓
컨테이너 실행 (vCPU / 메모리 할당)
Task Definition 예시
json
{
"family": "my-app",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"],
"cpu": "256",
"memory": "512",
"containerDefinitions": [
{
"name": "web",
"image": "nginx:latest",
"portMappings": [{ "containerPort": 80 }]
}
]
}
EC2 vs Fargate 비교
| 항목 | EC2 | Fargate |
|---|
| 서버 관리 | 직접 관리 | 불필요 |
| 비용 구조 | 인스턴스 시간 | vCPU·메모리 초 단위 |
| 스케일링 | Auto Scaling 설정 필요 | 자동 |
| 커스텀 AMI | 가능 | 불가 |
| 사용 사례 | 고성능·특수 하드웨어 | 일반 웹 서비스, 배치 |
Fargate Spot
비중단 허용 워크로드에 대해 최대 70% 비용 절감이 가능한 Spot 모드를 제공한다.
yaml
# ECS Service 설정
capacityProviderStrategy:
- capacityProvider: FARGATE_SPOT
weight: 2
- capacityProvider: FARGATE
weight: 1
관련 문서