본문으로 건너뛰기
김신건의 로그

[AWS] ECS + Fargate: 컨테이너 오케스트레이션

· 수정 · 📖 약 1분 · 377자/단어 #aws #ecs #fargate #container #cloud
ECS, Amazon ECS, Fargate, Task Definition, Service, Cluster, ECS Anywhere

정의

ECS (Elastic Container Service) = AWS 의 컨테이너 오케스트레이션. K8s 보다 단순. Fargate = ECS / EKS 의 서버리스 실행 환경 (EC2 관리 없음).

ECS 구조

flowchart TB
    Cluster[Cluster] --> Service1[Service A]
    Cluster --> Service2[Service B]
    Service1 --> Task1["Task<br/>(컨테이너 묶음)"]
    Service1 --> Task2[Task]
    Task1 --> Cont1[Container 1]
    Task1 --> Cont2[Container 2]
객체의미
Cluster논리 그룹
Task DefinitionYAML 같은 spec (K8s Pod 비슷)
Task실행된 인스턴스
Servicedesired count, LB 통합 (K8s Deployment 비슷)

Task Definition

{
  "family": "web",
  "networkMode": "awsvpc",
  "requiresCompatibilities": ["FARGATE"],
  "cpu": "512",
  "memory": "1024",
  "containerDefinitions": [
    {
      "name": "nginx",
      "image": "nginx:1.27",
      "portMappings": [{ "containerPort": 80 }],
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/web",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "ecs"
        }
      }
    }
  ]
}

Launch Types

EC2Fargate
노드 관리사용자AWS
가격EC2 시간Task 의 CPU/Memory 시간
시작 속도빠름 (예약 EC2)약간 느림
GPU가능일부
호스트 권한가능제한
Spot가능Fargate Spot
비용일반적으로 저렴 (밀도)운영 비용 0

TIP

작은 팀 / 가변 워크로드 = Fargate. 큰 규모 / 비용 최적화 = EC2.

Service (Deployment 비슷)

service:
  cluster: prod
  taskDefinition: web:42
  desiredCount: 3
  deploymentConfiguration:
    minimumHealthyPercent: 100
    maximumPercent: 200
  loadBalancers:
    - targetGroupArn: arn:aws:elasticloadbalancing:...
      containerName: nginx
      containerPort: 80

ECS vs EKS

항목ECSEKS
학습 곡선낮음높음
표준AWS 전용K8s 표준 (이식성)
운영단순복잡
가격cluster 무료$0.10/h per cluster
ecosystem작음방대
적합AWS lock-in OK, 빠른 시작멀티 클라우드 / 큰 규모

ECS Anywhere

자체 데이터센터 / edge 의 외부 머신을 ECS 에서 관리. 온프레미스 + 클라우드 통합.

흔한 함정

WARNING

  1. Fargate Spot 의 중단 = stateless 만. batch 에 권장.
  2. awsvpc network mode 의 ENI 한도 = EC2 instance type 별 최대 ENI 수. 한 노드에 수십 task 가능한지 확인.
  3. CloudWatch Logs 비용 = 모든 컨테이너 로그가 CW Logs 로. fluent-bit + S3 으로 비용 절감.
  4. Service Auto Scaling = target tracking 기본. step / scheduled 도 가능.

관련 위키

이 글의 용어 (5개)
[AWS] ALB vs NLB: L7 vs L4 로드 밸런서cloud
정의 | | ALB | NLB | (Classic ELB) | |---|---|---|---| | Layer | L7 (HTTP) | L4 (TCP/UDP) | L4 + L7 (…
[AWS] EC2: 인스턴스 타입, AMI, EBScloud
정의 EC2 (Elastic Compute Cloud) = AWS 의 VM 서비스. instance type (CPU / RAM / NW) 결정 + AMI (OS 이미지) + E…
[AWS] EKS: managed Kubernetescloud
정의 EKS (Elastic Kubernetes Service) = AWS 의 managed K8s control plane. worker node 는 사용자 (또는 Fargat…
[Container] Docker: image, layer, registryvirtualization
정의 Docker = 컨테이너 빌드 + 실행 + 배포 의 표준 도구. 2013 출시 → 컨테이너 시대 의 시작. 현재는 OCI 표준 으로 진화 ( , , 등 호환). Layere…
[K8s] Deployment: ReplicaSet, rolling update, rollbackkubernetes
정의 Deployment = stateless 워크로드를 위한 컨트롤러. 내부적으로 ReplicaSet 관리 + rolling update / rollback. 계층 | 객체 |…

이 개념을 다룬 위키 페이지 (1)

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기