SAABlog
컴퓨팅중급

ECS vs EKS vs Fargate: 컨테이너 서비스 어떤 걸 선택할까?

AWS ECS, EKS, Fargate의 차이점과 선택 기준을 비교합니다. 비용, 관리 복잡도, 사용 사례별 최적의 컨테이너 서비스를 안내합니다.

PHILOLAMB-
ECSEKSFargate컨테이너KubernetesDocker

관련 시험 도메인

  • Design High-Performing Architectures
  • Design Cost-Optimized Architectures

핵심 요약

ECS는 AWS 네이티브로 간단하고 비용 효율적, EKS는 Kubernetes 생태계가 필요할 때, Fargate는 서버 관리 없이 컨테이너만 실행하고 싶을 때 선택합니다. 소규모/스타트업은 ECS, 대규모/멀티클라우드는 EKS를 권장합니다.

시험 팁

시험 빈출: "컨테이너 서버 관리 없이 실행하려면?" → Fargate. "Kubernetes 기반 오케스트레이션?" → EKS. "AWS 통합이 중요하고 간단한 컨테이너 관리?" → ECS.


1. 컨테이너 서비스 개요

기본 개념

┌─────────────────────────────────────────────────────────┐
│              AWS 컨테이너 서비스 구조                      │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  오케스트레이션 레이어:                                   │
│  ┌────────────────┐    ┌────────────────┐              │
│  │     ECS        │    │     EKS        │              │
│  │ (AWS 네이티브)  │    │ (Kubernetes)   │              │
│  └───────┬────────┘    └───────┬────────┘              │
│          │                      │                       │
│          └──────────┬───────────┘                       │
│                     │                                   │
│  컴퓨팅 레이어:      ▼                                   │
│  ┌────────────────┐    ┌────────────────┐              │
│  │     EC2        │    │    Fargate     │              │
│  │ (직접 관리)     │    │ (서버리스)     │              │
│  └────────────────┘    └────────────────┘              │
│                                                         │
│  선택 조합:                                              │
│  - ECS + EC2      - ECS + Fargate                      │
│  - EKS + EC2      - EKS + Fargate                      │
└─────────────────────────────────────────────────────────┘

각 서비스 역할

서비스역할특징
ECS오케스트레이션AWS 네이티브, 간단한 설정
EKS오케스트레이션Kubernetes 기반, 오픈소스 생태계
Fargate컴퓨팅서버리스, 인스턴스 관리 불필요
EC2컴퓨팅직접 관리, 세밀한 제어

2. ECS (Elastic Container Service)

특징

ECS는 AWS가 자체 개발한 컨테이너 오케스트레이션 서비스입니다.

┌─────────────────────────────────────────────────────────┐
│                   ECS 핵심 특징                           │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ✅ 장점                                                │
│  ├── 클러스터 관리 비용 없음 (EKS는 $72/월)              │
│  ├── AWS 서비스와 깊은 통합 (ALB, CloudWatch, IAM)       │
│  ├── 간단한 설정, 빠른 배포                              │
│  ├── AWS 콘솔에서 직관적 관리                            │
│  └── Task Definition으로 쉬운 구성                      │
│                                                         │
│  ❌ 단점                                                │
│  ├── AWS에 종속 (Lock-in)                               │
│  ├── Kubernetes 생태계 도구 사용 불가                    │
│  └── 온프레미스/멀티클라우드 지원 제한                    │
└─────────────────────────────────────────────────────────┘

ECS 구성 요소

ECS 구성 요소:
├── Cluster: 논리적 컨테이너 그룹
├── Task Definition: 컨테이너 설정 (이미지, CPU, 메모리)
├── Task: Task Definition의 인스턴스 (실행 중인 컨테이너)
├── Service: Task를 유지/관리하는 구성
└── Container Instance: Task가 실행되는 EC2 (Fargate는 불필요)

ECS + EC2 vs ECS + Fargate

특성ECS + EC2ECS + Fargate
인스턴스 관리직접 관리AWS 관리
비용저렴 (대규모 시)단순하지만 비쌀 수 있음
SSH 접근가능불가
GPU 지원가능제한적
스케일링Auto Scaling 구성 필요자동

3. EKS (Elastic Kubernetes Service)

특징

EKS는 관리형 Kubernetes 서비스로, 오픈소스 생태계를 활용할 수 있습니다.

┌─────────────────────────────────────────────────────────┐
│                   EKS 핵심 특징                           │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ✅ 장점                                                │
│  ├── Kubernetes 표준 (멀티클라우드 이식성)               │
│  ├── 풍부한 생태계 (Helm, Istio, Prometheus 등)         │
│  ├── 고가용성 컨트롤 플레인 (AWS 관리)                   │
│  ├── 복잡한 마이크로서비스에 적합                        │
│  └── 온프레미스 Kubernetes와 일관성                      │
│                                                         │
│  ❌ 단점                                                │
│  ├── 클러스터 관리 비용: $0.10/시간 = $72/월             │
│  ├── 학습 곡선 높음                                     │
│  ├── 복잡한 YAML 구성                                   │
│  └── 운영 오버헤드 큼                                   │
└─────────────────────────────────────────────────────────┘

EKS를 선택해야 하는 경우

EKS 선택 기준:
├── 이미 Kubernetes 경험/투자가 있는 경우
├── 멀티클라우드 또는 하이브리드 클라우드 전략
├── Istio, ArgoCD, Helm 등 K8s 도구 필요
├── 온프레미스 Kubernetes와 일관성 필요
└── 대규모 마이크로서비스 아키텍처

4. Fargate (서버리스 컨테이너)

특징

Fargate는 ECS/EKS의 컴퓨팅 레이어로, 서버 관리 없이 컨테이너를 실행합니다.

┌─────────────────────────────────────────────────────────┐
│                  Fargate 작동 방식                        │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  [EC2 모드]                 [Fargate 모드]               │
│  ┌──────────────────┐      ┌──────────────────┐        │
│  │ EC2 인스턴스     │      │  Task 1  Task 2  │        │
│  │ ┌────┐ ┌────┐  │      │  ┌────┐ ┌────┐  │        │
│  │ │Task│ │Task│  │      │  │    │ │    │  │        │
│  │ │ 1  │ │ 2  │  │      │  │    │ │    │  │        │
│  │ └────┘ └────┘  │      │  └────┘ └────┘  │        │
│  │ OS, 패치, 용량  │      │  (AWS가 모두 관리) │        │
│  │ 직접 관리 필요  │      │                   │        │
│  └──────────────────┘      └──────────────────┘        │
│                                                         │
│  Fargate = 각 Task가 독립된 환경에서 실행               │
│            인스턴스 관리 불필요                          │
└─────────────────────────────────────────────────────────┘

Fargate 제약 사항

제약설명
SSH 접근불가 (호스트 접근 불가)
이미지 캐시불가 (매번 다운로드)
GPU제한적 지원
데몬셋EKS에서만 제한적 지원
특권 컨테이너불가

5. ECS vs EKS vs Fargate 비교

핵심 비교표

특성ECSEKSFargate
유형오케스트레이션오케스트레이션컴퓨팅
기반AWS 네이티브Kubernetes서버리스
클러스터 비용없음$72/월N/A
학습 곡선낮음높음낮음
AWS 통합매우 좋음좋음좋음
이식성AWS 전용높음AWS 전용
생태계AWS 도구K8s 생태계N/A

선택 기준 플로우차트

시작
  │
  ├── Kubernetes 사용 경험/요구사항이 있나요?
  │     ├── 예 → EKS
  │     └── 아니오 → 다음 질문
  │
  ├── 멀티클라우드/하이브리드 전략인가요?
  │     ├── 예 → EKS
  │     └── 아니오 → 다음 질문
  │
  ├── 서버 관리를 원하지 않나요?
  │     ├── 예 → ECS + Fargate
  │     └── 아니오 → 다음 질문
  │
  ├── 비용이 가장 중요한가요?
  │     ├── 예 → ECS + EC2
  │     └── 아니오 → 다음 질문
  │
  └── 소규모/스타트업인가요?
        ├── 예 → ECS + Fargate
        └── 아니오 → ECS + EC2 또는 EKS

조합별 권장 사용 사례

조합권장 사용 사례
ECS + Fargate소규모, 스타트업, 빠른 시작, 간단한 워크로드
ECS + EC2비용 민감, 대규모, Stateful 워크로드
EKS + FargateK8s 필요 + 서버 관리 부담 줄이기
EKS + EC2대규모, 복잡한 마이크로서비스, GPU 필요

6. 비용 비교

고정 비용

항목ECSEKS
클러스터 관리무료$0.10/시간 = $72/월

컴퓨팅 비용 예시

예: 2 vCPU, 4GB 메모리, 24시간 실행, 서울 리전

EC2 (t3.medium):
= $0.052/시간 × 24시간 × 30일 = $37.44/월

Fargate:
= (2 vCPU × $0.04048 + 4GB × $0.004445) × 24 × 30
= 약 $70/월

결론: Fargate는 EC2보다 약 1.5-2배 비용
단, 관리 비용 절감 효과 고려 필요

비용 최적화 전략

┌─────────────────────────────────────────────────────────┐
│              컨테이너 비용 최적화                          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  EC2 모드:                                              │
│  ├── Spot Instance 활용 (최대 90% 절감)                 │
│  ├── Reserved Instance / Savings Plans                 │
│  └── Auto Scaling으로 적정 용량 유지                    │
│                                                         │
│  Fargate 모드:                                          │
│  ├── Fargate Spot (최대 70% 절감, 중단 가능)            │
│  ├── 적정 크기 Task 정의                                │
│  └── 불필요한 Task 정리                                 │
│                                                         │
│  공통:                                                  │
│  ├── Graviton2 (ARM) 프로세서 사용                      │
│  └── 컨테이너 이미지 최적화 (크기 최소화)                │
└─────────────────────────────────────────────────────────┘

7. 실무 관점

스타트업/소규모 팀 권장

권장: ECS + Fargate

이유:
- 클러스터 관리 비용 없음
- 서버 관리 불필요
- 빠른 시작, 낮은 학습 곡선
- AWS 콘솔에서 직관적 관리

확장 시:
- Fargate → EC2로 전환 (비용 절감)
- 또는 ECS → EKS로 전환 (필요 시)

엔터프라이즈/대규모 권장

권장: EKS + EC2 (또는 혼합)

이유:
- Kubernetes 표준 도구 활용
- 멀티클라우드/하이브리드 대비
- 대규모 마이크로서비스 관리
- 세밀한 리소스 제어

비용 최적화:
- Spot Instance + On-Demand 혼합
- Karpenter로 자동 스케일링

시험 출제 포인트

자주 나오는 문제 유형

  1. 서비스 선택

    • "서버 관리 없이 컨테이너 실행?" → Fargate
    • "Kubernetes 기반 오케스트레이션?" → EKS
    • "AWS 통합이 중요, 간단한 컨테이너?" → ECS
  2. 비용 관련

    • "EKS vs ECS 클러스터 관리 비용?" → EKS만 $72/월 발생
    • "Fargate vs EC2 비용?" → Fargate가 더 비싸지만 관리 부담 없음
  3. 제약 사항

    • "Fargate에서 호스트 SSH 가능?" → 불가
    • "Fargate에서 GPU 사용?" → 제한적

시험 팁

핵심 암기:

  • ECS = AWS 네이티브, 클러스터 관리 비용 없음
  • EKS = Kubernetes, 클러스터 $72/월
  • Fargate = 서버리스, 호스트 접근 불가
  • 소규모 → ECS + Fargate, 대규모/K8s → EKS

FAQ

Q1: 이미 Docker Compose를 사용 중인데 어떤 서비스가 좋을까요?

ECS를 권장합니다. AWS Copilot CLI를 사용하면 Docker Compose 파일을 ECS로 쉽게 변환할 수 있습니다. Kubernetes 경험이 없다면 ECS가 학습 곡선이 낮습니다.

Q2: Fargate가 EC2보다 비싼데 왜 사용하나요?

**총 소유 비용(TCO)**을 고려해야 합니다. Fargate는 서버 패치, 스케일링, 모니터링 등의 관리 비용을 절감합니다. 소규모 팀에서는 엔지니어 시간 절약이 인프라 비용보다 클 수 있습니다.

Q3: ECS에서 EKS로 마이그레이션이 어려운가요?

어렵습니다. ECS Task Definition과 Kubernetes Deployment는 완전히 다른 형식입니다. 컨테이너 이미지는 재사용 가능하지만, 오케스트레이션 설정은 다시 작성해야 합니다.

Q4: Fargate Spot은 어떤 경우에 사용하나요?

중단 가능한 워크로드에 적합합니다: 배치 처리, CI/CD 빌드, 데이터 분석 등. 웹 서버처럼 항상 실행되어야 하는 서비스에는 부적합합니다.

Q5: EKS 없이 Kubernetes를 직접 설치해도 되나요?

가능하지만 권장하지 않습니다. 컨트롤 플레인 관리, 업그레이드, 보안 패치 등의 운영 부담이 큽니다. 관리형 서비스인 EKS가 운영 효율성 면에서 유리합니다.


마무리

컨테이너 서비스 선택 요약:

상황권장 조합
소규모, 빠른 시작ECS + Fargate
비용 민감, 대규모ECS + EC2
Kubernetes 필요EKS
서버리스 + K8sEKS + Fargate

시험에서는 "서버리스 컨테이너" → Fargate, "Kubernetes" → EKS, "간단한 컨테이너 + AWS 통합" → ECS를 떠올리세요.