AWS AWS 01-2 컨테이너를 맡긴다 — ECS·Express Mode·EKS·Fargate
AWS · 2/17

AWS 01-2 컨테이너를 맡긴다 — ECS·Express Mode·EKS·Fargate

gabury1

컨테이너 이미지(앱과 앱이 쓰는 라이브러리를 한 파일 묶음으로 굳힌 것) 하나를 AWS 에서 돌리려고 요금표를 펴면 이상한 숫자가 나옵니다. ECS(Elastic Container Service)는 자기 요금이 0원입니다. 오픈소스 컨테이너 관리 도구 Kubernetes 를 AWS 가 대신 운영하는 EKS(Elastic Kubernetes Service)는 컨테이너를 하나도 안 띄워도 시간당 $0.10, 한 달이면 $73 을 받습니다. 서버 없이 컨테이너를 돌리는 Fargate 는 vCPU(가상 CPU 코어)와 메모리를 초 단위로 받습니다. Express Mode 는 다시 0원입니다.

값 매기는 방식이 이렇게 갈리는 것은 넷이 맡는 일이 달라서입니다. 첫째 축은 이미지를 띄운 컨테이너를 어느 서버에 몇 개 두고, 죽으면 다시 띄우는 일을 누가 하나입니다. 이 일을 오케스트레이션이라 하고, 하는 프로그램을 오케스트레이터라 부릅니다. 둘째 축은 그 컨테이너가 올라가는 서버를 누가 돌보나입니다. 이미지는 보통 AWS 의 이미지 저장소 ECR(Elastic Container Registry)에 올려 두며, ECR 은 08편(빌드·배포 자동화)에서 다룹니다.

요금은 전부 2026-09-23 에 AWS 요금 페이지·가격 파일에서 확인한 서울(ap-northeast-2) 값이고, 리전을 안 적은 값은 출처가 리전을 밝히지 않은 것입니다.

지도

%%{init: {"flowchart": {"rankSpacing": 30, "nodeSpacing": 24, "wrappingWidth": 240}}}%%
flowchart TD
    Q1["Kubernetes 를<br/>꼭 써야 하나?"]
    Q1 -- "예" --> EKS["<b>EKS</b><br/>관리형 Kubernetes"]
    Q1 -- "아니오" --> Q2["로드 밸런서·스케일링까지<br/>한 번에 받고 싶나?"]
    Q2 -- "예" --> EXP["<b>ECS Express Mode</b><br/>실행은 Fargate 로 정해짐"]
    Q2 -- "하나씩 고른다" --> ECS["<b>ECS</b>"]

오케스트레이터를 골랐으면 그 위에서 컨테이너가 도는 서버를 누가 돌볼지를 한 번 더 고릅니다.

%%{init: {"flowchart": {"rankSpacing": 30, "nodeSpacing": 24, "wrappingWidth": 240}}}%%
flowchart TD
    Q3["ECS·EKS 를 골랐다면<br/>서버는 누가 돌보나?"]
    Q3 -- "내가" --> EC2["<b>EC2 인스턴스</b>"]
    Q3 -- "AWS 가,<br/>서버 없이" --> FG["<b>Fargate</b>"]
    Q3 -- "AWS 가,<br/>내 계정 EC2 로" --> MI["<b>Managed Instances</b><br/>EKS 는 Auto Mode"]

Fargate 는 ECS·EKS 와 나란한 선택지가 아닙니다. ECS 나 EKS 가 컨테이너를 올릴 곳으로 고르는 실행 방식입니다. Express Mode 는 ECS 의 한 기능이고 밑에서 Fargate 를 씁니다.

1. ECS — AWS 가 만든 오케스트레이터

ECS 는 AWS 가 직접 만든 오케스트레이터입니다. 컨테이너를 띄우고, 정한 개수를 유지하고, 죽으면 다시 띄웁니다. 콘솔을 열면 바로 만나는 용어 넷이 이 일을 나눠 맡습니다.

용어 뜻 예
태스크 정의(task definition) 앱의 설계도. 이미지·vCPU·메모리·포트·환경 변수를 적는다 api:7 — 이미지 api:1.4, 0.5 vCPU, 1 GB
태스크(task) 태스크 정의로 띄운 실행 단위. 일을 하고 끝나는 배치 작업도 태스크다 지금 도는 api:7 두 개
서비스(service) 오래 도는 앱. 원하는 태스크 개수를 유지하고 죽은 태스크를 새로 띄운다 「api:7 을 늘 2개」
클러스터(cluster) 태스크가 도는 기반을 묶은 단위 prod 클러스터

클러스터가 묶는 기반, 곧 태스크가 실제로 도는 서버는 넷 중에서 고릅니다(What is Amazon Elastic Container Service?).

실행 방식 서버를 돌보는 쪽 ECS 자체 요금(서울)
EC2 나. 인스턴스 타입·개수·패치를 정한다 없음. EC2·EBS·공인 IPv4 값만
Fargate AWS. 서버가 안 보인다 없음. Fargate 의 vCPU·메모리 값만(4절)
ECS Managed Instances AWS 가 내 계정에 EC2 를 골라 띄우고 패치까지 EC2 값 + 관리 수수료. t4g.small 은 시간당 $0.002496
ECS Anywhere 나. 사내 서버·가상 머신을 등록한다 서버 한 대에 시간당 $0.01025

EC2 방식이면 인스턴스가 ECS 컨테이너 에이전트를 돌리며 클러스터에 등록돼야 태스크를 받습니다. 에이전트가 미리 깔린 ECS 최적화 AMI(Amazon Machine Image, 부팅용 틀)로 띄우는 것이 가장 빠릅니다(Amazon EC2 container instances for Amazon ECS). Managed Instances 는 GPU 나 특정 인스턴스 타입이 필요하지만 서버는 돌보기 싫을 때 고르는 중간 선택지입니다. 수수료는 EC2 를 어떤 요금 방식으로 사든 붙고, 표의 t4g.small(Arm 프로세서 Graviton 을 쓰는 2 vCPU·2 GiB 범용 인스턴스, 이름 읽는 법은 AWS 01-1 서버를 통째로 빌린다 — EC2·Lightsail·Beanstalk·CloudShell)이면 시간당 $0.002496 입니다(Amazon ECS pricing).

어느 실행 방식을 고르든 오케스트레이터 값은 0원이고, AWS 의 다른 서비스와 바로 엮입니다. 대신 태스크 정의·서비스 같은 ECS 설정은 AWS 밖에서 돌지 않습니다.

이럴 때 맞다 이럴 때 안 맞다 대신 치르는 것
AWS 안에서만 컨테이너를 돌린다 같은 설정을 다른 클라우드·사내 Kubernetes 에서도 돌려야 한다 ECS 설정은 AWS 밖에서 안 돈다
오케스트레이터를 운영할 사람이 없다 Kubernetes 전용 도구를 이미 쓴다 Kubernetes 생태계 도구를 못 쓴다
로드 밸런서·IAM·CloudWatch 와 촘촘히 엮는다 함수 하나만 돌리면 된다(→ 01-3편, 요청이 올 때만 도는 서비스) 로드 밸런서·스케일링은 따로 구성한다

마지막 줄의 로드 밸런서·스케일링 구성이 일의 대부분이라면 그것까지 한 번에 해 주는 Express Mode(2절)로, 조직이 Kubernetes 로 표준을 정했다면 EKS(3절)로 갑니다.

2. ECS Express Mode — 이미지 하나로 웹 서비스를 세운다

Express Mode 는 ECS 표 마지막 줄의 수고, 곧 로드 밸런서와 스케일링을 따로 구성하는 일을 덜어 주는 ECS 기능입니다. 컨테이너 이미지 하나와 IAM 역할 둘을 주면 Fargate 위의 ECS 서비스, HTTPS 로드 밸런서, 오토스케일링, 네트워크를 내 계정 안에 한 번에 구성합니다. 2025-11-21 에 나왔고 자체 요금은 없습니다(Announcing Amazon ECS Express Mode). 역할 둘은 ECS 가 이미지를 받고 로그를 쓰는 태스크 실행 역할과 Express Mode 가 자원을 만드는 인프라 역할입니다.

이 셋을 넣으면 생기는 것과 기본값은 이렇습니다.

생기는 것 기본값
태스크 정의 1 vCPU · 2 GB · x86 · 포트 80
서비스 카나리 배포(새 판에 트래픽 일부만 먼저 보내는 방식) · 최소 태스크 1개
ALB(Application Load Balancer) 443 포트 HTTPS, AWS 가 주는 주소 하나, TLS 인증서
오토스케일링 평균 CPU 60% 를 목표로 태스크 1~20개
네트워크 기본 VPC 의 공인 서브넷들, 태스크마다 공인 IP
그 밖 보안 그룹 둘, 서비스 전용 로그 그룹, 배포 실패를 잡는 알람

기본 VPC 를 쓰려면 가용 영역 두 곳 이상에 공인 서브넷이 있어야 합니다. 사설 서브넷을 주면 내부용 ALB 가 생기고, 태스크가 밖으로 나가려면 NAT 게이트웨이(사설 서브넷에서 인터넷으로 나가는 관문)를 직접 붙입니다(Resources created by Amazon ECS Express Mode services).

같은 VPC 의 Express Mode 서비스는 최대 25개까지 ALB 하나를 나눠 씁니다. 서비스가 늘면 ALB 를 더 만들고, 줄면 안 쓰는 ALB 를 지웁니다. 만든 자원은 전부 내 계정에 보이고 고칠 수 있지만, 서비스의 배포 방식(카나리)과 서비스에 묶인 로드 밸런서 연결은 못 바꿉니다.

같은 일을 하던 App Runner 는 2026-04-30 부터 신규 고객을 받지 않고, AWS 는 옮겨 갈 곳으로 ECS Express Mode 를 권합니다(AWS App Runner availability change).

그럼 기본값을 바꾸지 않고 서울에서 태스크 하나를 한 달 돌리면 얼마일까요.

Express Mode 기본값 · 서울 · 한 달(730시간)
  Fargate 1 vCPU    $0.04656 × 1 × 730  = $33.99
  Fargate 2 GB      $0.00511 × 2 × 730  =  $7.46
  태스크 공인 IPv4  $0.005 × 730        =  $3.65
  ALB 시간 요금     $0.0225 × 730       = $16.43
  ALB 공인 IPv4 4개 $0.005 × 4 × 730    = $14.60
  합계                                  = $76.13
  + LCU 시간당 $0.008, 로그, 전송량
  • 730시간은 한 달 평균(8,760시간 ÷ 12)입니다
  • 공인 IPv4 는 로드 밸런서에 붙은 것까지 주소 하나에 시간당 $0.005 입니다(Amazon VPC pricing). 인터넷용 ALB 는 걸친 가용 영역마다 주소를 하나 씁니다. 서울은 영역이 4곳이라 기본값이면 3~4개이고, 서브넷을 두 영역만 지정하면 2개($7.30, 합계 $68.83)입니다
  • LCU(Load Balancer Capacity Unit)는 ALB 가 처리한 연결·트래픽 양에 매기는 단위입니다

ALB 와 그 공인 IPv4 는 일반 ECS 서비스로 웹을 받아도 똑같이 듭니다. 같은 태스크 크기라면 Express Mode 때문에 더 내는 돈은 없습니다. 금액을 키우는 것은 기본 태스크 크기 1 vCPU·2 GB 이고, 앱이 0.5 vCPU·1 GB 로 충분하면 Fargate 값이 $41.45 에서 $20.72 로 줄어듭니다.

돈은 더 받지 않는 대신, 배포 방식과 로드 밸런서 연결은 정해진 채로 오고 ALB 고정비는 그 ALB 를 나눠 쓰는 서비스가 함께 냅니다.

이럴 때 맞다 이럴 때 안 맞다 대신 치르는 것
상태 없는 웹 앱·API 를 빨리 HTTPS 로 올린다 HTTP 가 아닌 프로토콜을 받는 서버 기본 태스크 크기가 커서 작은 앱은 줄여 줘야 한다
App Runner 에서 옮겨 온다 로드 밸런서 규칙·배포 방식을 직접 정해야 한다 배포 방식·로드 밸런서 연결은 못 바꾼다
작은 서비스 여럿을 한 VPC 에 올린다 트래픽이 거의 없는 서비스 하나 서비스가 하나면 ALB 고정비를 혼자 낸다

로드 밸런서 연결이나 배포 방식을 바꿔야 하는 순간이 오면 일반 ECS 서비스로 직접 구성합니다. 하루 몇 번만 불리는 API 라면 Lambda(01-3편)가 더 쌀 수 있습니다.

3. EKS — 관리형 Kubernetes

ECS 설정이 AWS 밖에서 안 돈다는 점이 걸린다면 EKS 를 봅니다. EKS 는 오픈소스 오케스트레이터 Kubernetes 의 컨트롤 플레인을 AWS 가 대신 운영해 주는 서비스입니다.

Kubernetes 는 두 부분으로 나뉩니다. 컨트롤 플레인은 명령을 받는 API 서버, 클러스터 상태를 담는 저장소 etcd, 컨테이너를 어느 서버에 둘지 정하는 스케줄러를 묶은 관리 부분입니다. 노드는 컨테이너가 실제로 도는 서버입니다. 컨테이너를 띄우는 최소 단위는 파드(Pod)이고, 컨테이너 하나 이상을 묶은 것입니다.

EKS 가 맡는 것은 컨트롤 플레인이고, 노드는 ECS 의 실행 방식처럼 따로 고릅니다.

노드 방식 서버를 돌보는 쪽 요금(서울)
EC2 노드 나 EC2 값
EKS Auto Mode AWS 가 인스턴스를 골라 띄우고 패치·스케일링까지 EC2 값 + 관리 요금. m7g.large 는 시간당 $0.01204(인스턴스 값의 약 12%)
Fargate AWS. 파드마다 실행 환경 하나 파드마다 vCPU·메모리 값

노드 값과 별개로, 컨트롤 플레인을 맡기는 값이 첫머리에서 본 클러스터 요금입니다. 컨테이너 수와 관계없이 나가고, 클러스터가 쓰는 Kubernetes 버전이 얼마나 오래됐나에 따라 갈립니다(Amazon EKS pricing).

지원 단계 기간 클러스터 요금 한 달
표준 지원 그 Kubernetes 버전이 EKS 에 나온 뒤 14개월 시간당 $0.10(서울) $73.00
연장 지원 표준 지원이 끝난 뒤 12개월 시간당 $0.60 $438.00

Kubernetes 는 1년에 세 번 새 버전을 내고 옛 버전을 걷어 냅니다. 그래서 Kubernetes 를 운영하는 조직은 잦은 클러스터 업그레이드를 맡을 SRE(Site Reliability Engineering, 서비스 안정성 전담) 팀에 투자합니다(Choosing an AWS container service). 연장 지원 요금은 업그레이드를 미룬 값입니다.

ECS 와 갈리는 것은 결국 이식성과 운영 부담입니다. EKS 는 다른 Kubernetes 에서도 같은 설정이 돌고 커뮤니티 도구·플러그인을 쓰지만, ECS 에는 없는 클러스터 요금과 버전 업그레이드가 따라옵니다. ECS 설정은 AWS 콘솔·CLI(Command Line Interface)·CloudFormation(08편)으로 다루고 AWS 밖에서는 안 돕니다. 이식성을 사는 대신 그 부담을 지는 셈입니다.

이럴 때 맞다 이럴 때 안 맞다 대신 치르는 것
이미 Kubernetes 로 돌리던 것을 옮긴다 컨테이너 한두 개짜리 서비스 클러스터마다 월 $73 이 먼저 나간다
여러 클라우드·사내 서버에서 같은 설정을 쓴다 업그레이드를 맡을 사람이 없다 제때 안 올리면 요금이 6배가 된다
Kubernetes 생태계 도구가 꼭 필요하다 AWS 안에서만 돌고 Kubernetes 가 필요 없다 배울 것과 설정할 것이 ECS 보다 많다

Kubernetes 기능은 거의 안 쓰는데 업그레이드에 시간이 새고 있다면 ECS 로 내려옵니다. EKS 는 두되 노드 관리가 부담이라면 Auto Mode 나 Fargate 로 넘깁니다.

4. Fargate — 서버 없이 컨테이너만 돌린다

ECS 와 EKS 가 모두 실행 방식으로 고를 수 있던 Fargate 를 따로 봅니다. Fargate 는 서버를 고르지 않고 태스크나 파드에 필요한 vCPU·메모리만 적으면 AWS 가 그만큼의 실행 환경을 내주는 방식입니다. 서버가 없으니 값도 적은 vCPU·메모리에 매깁니다.

리눅스는 초 단위, 최소 1분으로 과금합니다. 태스크마다 임시 저장 공간 20 GB 가 딸려 오고, 늘린 만큼만 냅니다(AWS Fargate pricing). 프로세서는 x86 과 Arm(Graviton) 중에서 고르고, 남는 용량을 싸게 쓰는 Fargate Spot(아래에서 풉니다) 값도 따로 있습니다.

서울 · 시간당 x86 Arm
vCPU 1개 $0.04656 $0.03725
메모리 1 GB $0.00511 $0.00409
Fargate Spot vCPU 1개 $0.013968 $0.011175
Fargate Spot 메모리 1 GB $0.001533 $0.001227
추가 임시 저장 1 GB $0.000127 $0.000127

Arm 이 같은 크기에서 약 20% 쌉니다. 다만 vCPU 와 메모리를 아무 값이나 적을 수는 없고, 정해진 조합 안에서 고릅니다. ECS 는 메모리를 MiB 나 GB 로 적고, 1 GB 는 1,024 MiB 입니다(Amazon ECS task definition differences for Fargate).

vCPU 고를 수 있는 메모리
0.25 512 MiB · 1 GB · 2 GB
0.5 1 · 2 · 3 · 4 GB
1 2 ~ 8 GB (1 GB 단위)
2 · 4 4 ~ 16 GB · 8 ~ 30 GB (1 GB 단위)
8 · 16 16 ~ 60 GB (4 GB 단위) · 32 ~ 120 GB (8 GB 단위)
32 60 · 120 · 244 GB 중 하나(ECS 만)

Fargate Spot 은 AWS 의 남는 용량에서 태스크를 싸게 돌리는 방식입니다. 할인은 최대 70% 이고, 값은 수요·공급의 장기 추세에 따라 천천히 바뀝니다. 앞 요금표의 서울 값은 정가의 30% 입니다. AWS 가 용량을 되찾을 때는 2분 전에 알림이 옵니다. 알림은 이벤트 버스 EventBridge 로 가고, 태스크에는 SIGTERM(정리하고 끝내라는 종료 요청 신호)이 갑니다. 정리 시간은 stopTimeout(종료 요청 뒤 강제 종료까지 기다리는 시간)으로 최대 120초까지 줍니다. 용량이 모자라면 Spot 태스크는 늦게 뜨고, 정가 Fargate 로 대신 띄우지 않습니다(Amazon ECS clusters for Fargate). 반대로 늘 켜 둘 태스크에는 Compute Savings Plans(1년·3년 동안 시간당 얼마어치를 쓰겠다고 약속하는 할인, → AWS 01-1 서버를 통째로 빌린다 — EC2·Lightsail·Beanstalk·CloudShell)가 최대 50% 적용됩니다.

여기까지는 ECS 에서 쓸 때 이야기입니다. 같은 Fargate 라도 EKS 쪽 제약이 훨씬 많습니다(Simplify compute management with AWS Fargate).

ECS + Fargate EKS + Fargate
Fargate Spot · Arm 된다 안 된다
서브넷 공인·사설 둘 다 사설 서브넷만
메모리 계산 적은 값 그대로 Kubernetes 부품 몫 256 MB 를 더해 위 조합으로 올림
노드마다 하나씩 도는 파드(DaemonSet) 해당 없음 안 된다. 같은 파드의 보조 컨테이너(사이드카)로 바꾼다
특권 컨테이너(호스트 권한을 받는 컨테이너) · GPU 안 된다 안 된다

EKS 에서 0.5 vCPU·1 GB 를 요청하면 256 MB 가 더해져 0.5 vCPU·2 GB 로 과금됩니다(Understand Fargate Pod configuration details). 사설 서브넷의 파드가 밖에서 이미지를 받으려면 NAT 게이트웨이가 필요합니다. 서울에서 시간당 $0.059, 처리한 데이터 GB 당 $0.059 이고, 04-1편(내 망 안쪽)에서 다룹니다.

정리하면 Fargate 는 서버 돌보는 일을 없애 주는 대신, 서버 한 대에 컨테이너 여럿을 모아 아끼는 길을 막고 EKS 에서는 고를 수 있는 것까지 줄입니다.

이럴 때 맞다 이럴 때 안 맞다 대신 치르는 것
서버 패치를 맡을 사람이 없다 늘 켜 둔 작은 컨테이너가 여럿이라 한 서버에 모으는 편이 싸다 같은 크기라면 EC2 보다 비싸기 쉽다
트래픽 따라 태스크 수가 자주 바뀐다 GPU 나 특정 인스턴스 타입이 필요하다 vCPU·메모리 조합이 정해져 있다
끊겨도 되는 배치를 ECS 에서 싸게(Spot) 호스트에 접속하거나 커널 설정을 바꿔야 한다 EKS 에서는 Spot·Arm·공인 서브넷이 안 된다

늘 켜 둔 태스크가 늘어 청구서가 커지면 EC2 위 실행이나 Managed Instances 로 옮겨 한 서버에 여럿을 올립니다. 몇 개부터 그쪽이 싼지는 바로 아래에서 셉니다.

같은 크기로 맞대 보면

0.5 vCPU·1 GB 컨테이너 한 개를 서울에서 한 달 돌립니다. VPC 엔드포인트(AWS 서비스에 사설 경로로 붙는 통로)를 따로 두지 않는 한, 이미지를 받으려면 공인 IP 나 NAT 중 하나가 붙습니다. EC2 는 이 컨테이너가 들어가는 가장 작은 t4g.small 에, ECS 최적화 AMI 의 기본 루트 볼륨 30 GiB 를 범용 SSD(gp3)로 잡았습니다(AMI storage configuration).

0.5 vCPU · 1 GB 한 개 · 서울 · 한 달(730시간)

A. ECS + Fargate (x86, 공인 서브넷)
  vCPU  $0.04656 × 0.5 × 730     = $16.99
  메모리 $0.00511 × 1 × 730      =  $3.73
  태스크 공인 IPv4 $0.005 × 730  =  $3.65
  소계                           = $24.37
  같은 조건 Arm                  = $20.23
  같은 조건 Fargate Spot(x86)    =  $9.87

B. ECS + EC2 t4g.small
  인스턴스 $0.0208 × 730         = $15.18
  gp3 30 GiB $0.0912 × 30        =  $2.74
  공인 IPv4 $0.005 × 730         =  $3.65
  소계                           = $21.57

C. EKS 를 쓰면
  클러스터 $0.10 × 730           = $73.00
  C-1. EKS + EC2 노드(B 와 같음) = $94.57
  C-2. EKS + Fargate
    파드 0.5 vCPU · 2 GB 로 올림 = $24.46
    NAT 게이트웨이 $0.059 × 730  = $43.07
    NAT 공인 IPv4 $0.005 × 730   =  $3.65
    소계 (NAT 처리량 제외)       = $144.18
  • NAT 게이트웨이는 인터넷으로 나가려고 탄력적 IP(고정 공인 IPv4)를 하나 붙이고, 그 주소도 공인 IPv4 요금을 냅니다
  • 웹으로 받는다면 네 경우 모두 ALB 와 그 공인 IPv4 가 더해집니다(2절)
  • EC2 t4g.small 무료 체험은 2026-12-31 까지이고, 그동안 B 의 인스턴스 값 $15.18 이 빠집니다
  • t4g.small 은 버스트 가능 인스턴스입니다. 평소엔 기준 성능까지만 쓰고, 몰릴 때 모아 둔 크레딧으로 잠깐 올라갑니다. 기준은 vCPU 당 20%, 둘을 합쳐 0.4 vCPU 이고, 24시간 평균이 이를 넘으면 추가 요금이 붙습니다
  • 전송량과 CloudWatch 로그는 뺐습니다

컨테이너가 늘면 몇 개부터 EC2 가 싼가. EC2 는 광고한 메모리보다 적게 클러스터에 등록됩니다. OS 와 커널이 쓰는 몫이 빠지기 때문입니다(Reserving Amazon ECS Linux container instance memory). 그래서 2 GiB 인 t4g.small 에는 1 GB(1,024 MiB) 태스크가 하나만 들어갑니다. 4 GiB 인 t4g.medium(시간당 $0.0416)에는 셋이 들어갑니다.

t4g.medium 한 대 · 서울 · 한 달
  인스턴스 $0.0416 × 730 + gp3 $2.74 + IPv4 $3.65 = $36.76
  컨테이너 3개 → 개당 $12.25 · 2개 → 개당 $18.38
  비교: Fargate Arm(공인 IP 포함) 개당 $20.23

둘째 컨테이너부터 EC2 가 쌉니다. 단 t4g.medium 의 기준 성능도 0.4 vCPU 라서, 셋의 CPU 사용을 합친 24시간 평균이 0.4 vCPU 안일 때 이야기입니다. CPU 를 늘 꽉 쓰면 크레딧이 없는 m7g.large(2 vCPU·8 GiB, 시간당 $0.1003)에 넷을 올려 개당 $19.90 으로, Fargate Arm 과 거의 같아집니다.

정리하면, 컨테이너 한 개라면 서버를 안 보는 ECS + Fargate Arm($20.23) 이 낫습니다. EC2($21.57)가 이기는 것은 t4g.small 무료 체험이 남은 2026-12-31 까지, 그리고 CPU 평균이 기준 성능 0.4 vCPU 안인 컨테이너를 둘 이상 한 서버에 올릴 때입니다. EKS 는 컨테이너 수와 관계없이 클러스터 $73 이 더해지므로 Kubernetes 가 꼭 필요할 때만 고릅니다.

이 서비스들에 자주 붙는 것은 ECR · ALB · VPC 와 NAT 게이트웨이 · IAM · CloudWatch · EventBridge 이고, 엮이는 방식은 이 시리즈 뒤쪽의 조합 편(20번대, 웹 서비스 구성·배포 파이프라인)에서 풉니다.

이럴 땐 무엇

상황 서비스 이유
웹 앱·API 이미지를 HTTPS 로 빨리 올린다 ECS Express Mode ALB·스케일링·인증서를 한 번에, 추가 요금 없음. 태스크 크기만 앱에 맞춘다
App Runner 를 쓰다가 옮긴다 ECS Express Mode AWS 가 권하는 이전 경로
컨테이너 하나, 서버는 안 보고 싶다 ECS + Fargate(Arm) 오케스트레이터 0원, 서버 관리 없음
CPU 를 적게 쓰는 컨테이너가 여럿 늘 켜져 있다 ECS + EC2 둘째부터 개당 값이 Fargate 보다 싸다
GPU·특정 인스턴스 타입이 필요한데 서버는 안 돌보고 싶다 ECS Managed Instances EC2 선택 폭 + AWS 가 패치
끊겨도 되는 배치 컨테이너를 싸게 ECS + Fargate Spot 최대 70%, 대신 2분 예고 후 회수
이미 Kubernetes 로 돌린다, 여러 클라우드에서 같은 설정 EKS 설정을 그대로 가져간다, 대신 클러스터 월 $73
EKS 에서 노드 관리를 넘기고 싶다 EKS Auto Mode 또는 EKS + Fargate Fargate 는 Spot·Arm 불가, 사설 서브넷만

한 장 요약

Fargate 는 ECS·EKS 가 고르는 실행 방식이지 셋째 오케스트레이터가 아닙니다. ECS 는 자체 요금이 없고, Express Mode 는 그 위에서 이미지 하나로 ALB·스케일링까지 구성합니다. EKS 는 Kubernetes 가 필요할 때만 고르는데, 클러스터 월 $73 이 먼저 나가고 업그레이드를 미루면 $438 이 됩니다. 0.5 vCPU·1 GB 한 개면 ECS + Fargate Arm 이 $20.23 이고, CPU 를 적게 쓰는 컨테이너가 둘 이상이면 EC2 위 ECS 가 쌉니다.

관련 항목

컨테이너를 맡기는 같은 갈래

ECS · ECS Express Mode · EKS · Fargate · ECS Managed Instances · EKS Auto Mode · ECS Anywhere

ECS 를 이루는 개념

태스크 정의 · ECS 태스크 · ECS 서비스 · ECS 클러스터 · 컨테이너 인스턴스 · ECS 컨테이너 에이전트 · 용량 공급자 · ECS 최적화 AMI

EKS 가 올라앉는 Kubernetes 부품

Kubernetes · 컨트롤 플레인 · etcd · kubelet · 파드 · DaemonSet · 사이드카 컨테이너 · Kubernetes 버전 지원 주기

컨테이너 자체를 이루는 것

컨테이너 · 컨테이너 이미지 · 컨테이너 런타임 · Docker · cgroup · 네임스페이스 · 오케스트레이션

Fargate 와 EC2 를 싸게 사는 방법

Fargate Spot · Compute Savings Plans · 스팟 인스턴스 · Graviton · vCPU · 버스트 가능 인스턴스 · CPU 크레딧

Express Mode 가 대신 구성하는 것

로드 밸런서 · Application Load Balancer · 오토스케일링 · 카나리 배포 · TLS · 보안 그룹 · 헬스 체크

태스크와 파드가 뜨는 네트워크

VPC · 서브넷 · NAT 게이트웨이 · VPC 엔드포인트 · 공인 IPv4 요금 · 탄력적 IP · 가용 영역

이미지와 권한을 대 주는 서비스

ECR · IAM 역할 · 태스크 실행 역할 · CloudWatch · EventBridge

같은 일을 다른 방식으로 하는 배포 수단

EC2 · Elastic Beanstalk · App Runner · Lambda · AWS Batch · 서버리스