AWS Fargate
IT 위키
더 많은 작업
Fargate를 쓰면 컨테이너를 돌릴 가상 머신 클러스터를 준비하거나, 인스턴스 유형을 고르거나, 클러스터 용량을 늘리고 줄이는 일을 하지 않아도 된다. 이용자는 컨테이너 이미지와 태스크(또는 파드)에 필요한 vCPU·메모리, 네트워크, IAM 권한만 정하고 실행하면 된다. Fargate는 독립 서비스라기보다 ECS와 EKS가 선택하는 실행 용량의 한 종류이다. 컨테이너 자체의 개념은 도커, 컨테이너 가상화 문서를 참고한다.
| 항목 | 설명 |
|---|---|
| 태스크 단위 자원 지정 | ECS 태스크 정의에 태스크 수준 CPU와 메모리를 반드시 지정한다. 정해진 조합 중에서 고른다. |
| 격리 | 각 태스크(EKS에서는 파드)가 커널, CPU, 메모리, 네트워크 인터페이스를 다른 태스크와 공유하지 않는다. |
| 네트워크 | ECS 태스크는 항상 awsvpc 네트워크 모드를 써서 태스크마다 ENI와 프라이빗 IP를 받고, 보안 그룹을 태스크 단위로 붙인다. |
| 스토리지 | 태스크마다 임시 스토리지가 기본 20GiB 주어지고 최대 200GiB까지 늘릴 수 있다(Linux, 플랫폼 버전 1.4.0 이상). 영구 데이터는 아마존 EFS 등에 둔다. |
| 과금 | 이미지 다운로드 시작부터 태스크 종료까지의 vCPU·메모리·임시 스토리지 사용량을 초 단위로 과금(Linux는 최소 1분) |
| CPU | 선택 가능한 메모리 |
|---|---|
| 0.25 vCPU | 512MiB, 1GB, 2GB |
| 1 vCPU | 2GB~8GB |
| 4 vCPU | 8GB~30GB |
| 16 vCPU | 32GB~120GB(Linux, 플랫폼 버전 1.4.0 이상) |
가장 큰 크기는 Linux 기준 32 vCPU이다. 이 밖의 조합은 ECS 설명서의 태스크 CPU·메모리 표를 따른다.
ECS에서 컨테이너를 어디에서 실행할지는 용량 공급자(capacity provider) 또는 시작 유형으로 정한다.
| 구분 | Fargate | EC2(Auto Scaling 그룹 용량 공급자) | ECS 관리형 인스턴스 |
|---|---|---|---|
| 서버 관리 | 없음 | 인스턴스 선택, 패치, AMI 갱신, 클러스터 확장을 이용자가 관리 | AWS가 프로비저닝, 패치, 확장 담당 |
| 제어 수준 | 낮음(호스트 접근 불가, 특권 컨테이너 불가) | 높음(인스턴스 유형, GPU, 커스텀 AMI, 호스트 설정) | 중간(GPU 등 특정 인스턴스 유형 선택 가능) |
| 과금 단위 | 태스크의 vCPU·메모리 | EC2 인스턴스(빈 용량도 과금) | EC2 인스턴스 + 관리 요금 |
| 비용 특성 | 작은 규모·변동 부하에서 유리, 빈 용량 낭비 없음 | 크고 꾸준한 부하를 빽빽하게 채우면 유리, 예약·스팟 활용 | 여러 작은 태스크를 큰 인스턴스에 모아 배치 |
| 적합한 경우 | 운영 부담 최소화, 소규모 팀, 마이크로서비스, 배치 작업 | GPU·특수 하드웨어, 호스트 수준 에이전트, 대규모 고밀도 배치 | EC2의 유연성이 필요하지만 인프라 관리는 맡기고 싶을 때 |
AWS 설명서는 새 워크로드에 시작 유형보다 용량 공급자 전략을 권장한다.
Fargate Spot은 AWS의 남는 용량에서 태스크를 실행하고 일반 Fargate 가격보다 크게 할인받는 옵션이다. AWS 요금 페이지는 최대 70% 할인으로 안내한다.
- AWS가 용량을 회수하면 태스크가 2분 경고 후 중단된다. 중단 이벤트는 아마존 EventBridge로 받을 수 있다.
- 중단을 견딜 수 있는 배치 작업, 상태 없는 웹 서비스의 일부 복제본에 쓴다.
- 용량 공급자 전략으로 FARGATE와 FARGATE_SPOT을 섞을 수 있다. 예를 들어 base로 일정 수를 Fargate에 두고 나머지를 weight 비율로 Spot에 나눈다.
- Fargate Spot은 ECS에서만 쓸 수 있고 아마존 EKS는 Fargate Spot을 지원하지 않는다.
- Fargate 프로필로 어떤 파드를 Fargate에서 실행할지 네임스페이스와 레이블로 정한다.
- DaemonSet, 특권 컨테이너, GPU를 지원하지 않는다. 데몬이 필요하면 사이드카 컨테이너로 바꾼다.
- 파드는 프라이빗 서브넷에서만 실행되고, 로드 밸런서는 IP 대상 유형으로 연결한다.
- 인스턴스 메타데이터 서비스를 쓸 수 없으므로 IAM 권한은 서비스 계정용 IAM 역할 등으로 준다.
- 태스크 크기를 실제 사용량에 맞춘다. CPU·메모리를 과하게 잡으면 그대로 과금된다.
- 꾸준한 Fargate 사용량은 Compute Savings Plans로 할인받는다. 요금 페이지는 Fargate 사용량에 최대 50% 절감을 안내한다.
- AWS는 Graviton(ARM 기반) 프로세서로 실행하는 것을 Savings Plans, Fargate Spot과 함께 비용 최적화 방법으로 안내한다.
- 중단 허용 작업은 Fargate Spot으로 돌린다.
- "컨테이너를 실행하되 서버·클러스터 용량을 관리하고 싶지 않다", "운영 오버헤드 최소"이면 ECS(또는 EKS) + Fargate이다.
- GPU가 필요하거나 호스트 수준 설정, DaemonSet이 필요하면 Fargate가 아니라 EC2 기반 노드를 고른다.
- 실행 시간이 15분을 넘는 컨테이너 작업은 AWS Lambda 대신 Fargate 태스크로 돌린다.
- 중단 허용 컨테이너 작업을 가장 싸게 돌리려면 Fargate Spot(ECS 한정)이다.
- 크고 꾸준하며 예측 가능한 컨테이너 부하는 EC2 용량 공급자 + 예약 할인이 더 저렴할 수 있다.
- Amazon ECS용 AWS Fargate 설계 – AWS
- Fargate의 태스크 CPU 및 메모리 – AWS
- Fargate용 Amazon ECS 클러스터 – AWS
- AWS Fargate로 컴퓨팅 관리 간소화 – AWS
- AWS Fargate 요금 – AWS