개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← 글 목록

Fargate — 서버 없이 컨테이너 실행

2026년 3월 18일
AWSFargate서버리스컨테이너

Fargate는 EC2 인스턴스를 직접 관리하지 않고 컨테이너를 실행할 수 있는 AWS의 서버리스 컨테이너 실행 엔진입니다. ECS 또는 EKS와 함께 사용하며, 컨테이너에 필요한 CPU와 메모리만 정의하면 AWS가 그에 맞는 인프라를 자동으로 프로비저닝하고 관리합니다.

Fargate를 사용하면 "어떤 서버에서 실행할까"보다 "컨테이너에 얼마나 많은 자원이 필요한가"에만 집중할 수 있습니다.

EC2 Launch Type vs Fargate

ECS에서 컨테이너를 실행하는 방식은 두 가지입니다. EC2 Launch Type과 Fargate Launch Type입니다.

EC2 Launch Type                    Fargate Launch Type

[ECS Control Plane]                [ECS Control Plane]
        |                                  |
        v                                  v
+---------------+                +------------------+
|  EC2 Instance |                | Fargate (AWS 관리)|
|               |                |                  |
| +-----------+ |                | +--------------+ |
| |ECS Agent  | |                | | Task (격리)  | |
| +-----------+ |                | +--------------+ |
| +-----------+ |                +------------------+
| | Task      | |
| +-----------+ |                 서버 관리 불필요
| +-----------+ |                 Task별 독립 격리
| | Task      | |
| +-----------+ |
+---------------+

 OS 패치, 용량 계획,
 에이전트 관리 필요

EC2 Launch Type

EC2 Launch Type은 사용자가 직접 EC2 인스턴스를 Cluster에 등록하고 관리하는 방식입니다. 인스턴스의 OS 패치, ECS Agent 업데이트, 용량 계획이 모두 사용자 책임입니다.

  • 장점: 인스턴스 수준의 세밀한 제어 가능, GPU 인스턴스 사용 가능, 비용 최적화 여지(Reserved Instance, Spot)
  • 단점: 인프라 관리 부담, 미사용 EC2 자원에도 비용 발생

Fargate Launch Type

Fargate는 서버 관리를 AWS에 완전히 위임합니다. Task 단위로 CPU와 메모리를 정의하면, AWS가 해당 Task를 격리된 컴퓨팅 환경에서 실행합니다.

  • 장점: 인프라 관리 불필요, Task별 완전 격리(보안 향상), 사용한 만큼만 과금
  • 단점: EC2 대비 단위 비용 높음, 일부 고급 설정(GPU, 특정 볼륨 마운트) 제한

Serverless Container 개념

Fargate는 "서버리스 컨테이너"라고 불립니다. 서버리스는 서버가 존재하지 않는 것이 아니라, 사용자가 서버를 인식하거나 관리할 필요가 없다는 의미입니다.

Lambda가 함수(코드) 수준의 서버리스라면, Fargate는 컨테이너 수준의 서버리스입니다. Lambda는 최대 실행 시간(15분) 제한이 있지만, Fargate는 장기 실행 프로세스를 컨테이너로 실행하는 데 적합합니다.

서버리스 스펙트럼

EC2 -----------> ECS/EC2 -----------> Fargate -----------> Lambda
(직접 관리)     (부분 관리)          (서버리스 컨테이너)   (서버리스 함수)
관리 부담 최대                                            관리 부담 최소
유연성 최대                                               유연성 최소

CPU / Memory 설정

Fargate에서 Task의 컴퓨팅 자원은 Task Definition에서 CPU 단위와 메모리 크기로 지정합니다.

CPU는 vCPU의 1/1024 단위로 지정하며, 메모리는 MB 단위입니다. 유효한 조합은 아래와 같이 미리 정해져 있습니다.

+----------+-------------------------------------------+
| CPU 값   | 가능한 Memory 범위                        |
+----------+-------------------------------------------+
| 256      | 512MB ~ 2GB (512MB 단위)                  |
| 512      | 1GB ~ 4GB (1GB 단위)                      |
| 1024     | 2GB ~ 8GB (1GB 단위)                      |
| 2048     | 4GB ~ 16GB (1GB 단위)                     |
| 4096     | 8GB ~ 30GB (1GB 단위)                     |
| 8192     | 16GB ~ 60GB (4GB 단위)                    |
| 16384    | 32GB ~ 120GB (8GB 단위)                   |
+----------+-------------------------------------------+

CPU 256은 0.25 vCPU, 1024는 1 vCPU에 해당합니다. Task 수준에서 전체 자원을 정의하고, 그 안의 개별 컨테이너에 Task 자원의 일부를 배분하는 방식으로 설정합니다.

과금 방식

Fargate는 EC2와 달리 Task가 실행되는 동안만 vCPU와 메모리 사용량에 대해 과금됩니다. Task가 종료되면 비용이 발생하지 않습니다.

Fargate 비용 = (vCPU 수 x 초당 vCPU 단가) + (메모리 GB x 초당 메모리 단가)
             x 실행 시간(초)

트래픽이 일정한 상시 운영 서비스는 EC2 Reserved Instance가 비용 효율적일 수 있습니다. 반면 트래픽 변동이 크거나 간헐적으로 실행되는 배치 작업은 Fargate가 더 경제적입니다.

Fargate 선택 기준

Fargate는 다음 상황에 특히 적합합니다.

  • 인프라 관리 인력이 부족한 소규모 팀
  • 트래픽 예측이 어려워 빠른 스케일 인/아웃이 필요한 서비스
  • 보안 요구사항이 높아 컨테이너 간 완전 격리가 필요한 경우
  • 주기적으로 실행되는 배치 작업(항상 서버를 켜둘 필요가 없는 경우)
← 이전 글ECS — 컨테이너 오케스트레이션
다음 글 →ElastiCache — 관리형 Redis / Memcached