Amazon ECS란

2026. 7. 9. 14:16·Data Engineering/AWS

들어가며

컨테이너 기술이 보편화되면서 애플리케이션을 Docker 이미지로 배포하는 환경이 많아졌습니다. 하지만 컨테이너가 많아질수록 실행 환경을 관리하고, 장애가 발생한 컨테이너를 다시 실행하며, 트래픽 증가에 따라 컨테이너 수를 조절하는 작업도 함께 필요해집니다. 이러한 운영 부담을 줄이기 위해 AWS에서는 Amazon ECS(Elastic Container Service)를 제공합니다.

 

Amazon ECS는 Docker 컨테이너를 쉽게 실행하고 관리할 수 있는 완전관리형 컨테이너 오케스트레이션 서비스입니다. 개발자는 애플리케이션을 컨테이너 이미지로 준비하면 ECS가 컨테이너의 실행과 배포, 확장까지 효율적으로 관리해 줍니다.

 

이번 글에서는 Amazon ECS의 기본 개념부터 EC2와 Fargate의 차이, IAM 권한 관리, Load Balancer 연동, EFS 활용까지 살펴보겠습니다.


1. Amazon ECS란?

Amazon ECS(Elastic Container Service)는 Docker 컨테이너를 실행하고 관리하기 위한 AWS의 완전관리형 컨테이너 오케스트레이션 서비스입니다. 개발자는 애플리케이션을 Docker 이미지로 생성한 뒤 ECS에 등록하면, ECS가 컨테이너를 실행하고 장애 발생 시 재시작하거나 필요한 개수만큼 자동으로 확장할 수 있습니다.

 

또한 ECS는 AWS의 다양한 서비스와 쉽게 연동되며, EC2 기반으로 직접 서버를 관리하는 방식과 서버를 직접 관리하지 않는 AWS Fargate 방식 중 하나를 선택하여 사용할 수 있습니다.


2. ECS의 주요 구성 요소

https://dev.to/tomspencerlondon/spring-boot-and-aws-lla=

2-1) Cluster

컨테이너를 실행하기 위한 논리적인 그룹입니다. 하나의 Cluster 안에서 여러 서비스와 Task를 관리합니다.

2-2) Task Definition

컨테이너 실행 정보를 정의하는 설정 파일입니다. 다음과 같은 정보를 포함합니다.

  • Docker 이미지
  • CPU 및 Memory
  • Port
  • 환경 변수
  • IAM Role
  • Volume

2-3) Task

Task Definition을 기반으로 실제 실행되는 컨테이너입니다. 하나 이상의 컨테이너를 포함할 수 있습니다.

2-4) Service

Task 개수를 유지하는 역할을 합니다. 실행 중인 Task가 종료되면 자동으로 새로운 Task를 생성하여 원하는 개수를 유지합니다.


3. ECS 실행 방식

3-1) EC2 Launch Type

https://issackpaul95.medium.com/aws-theory-deep-dive-into-amazon-ecs-launch-types-iam-roles-load-balancers-and-data-43088ceaf991

EC2 인스턴스를 직접 생성하고 관리하는 방식입니다. 개발자가 EC2 인스턴스를 준비하면 ECS는 해당 서버 위에서 Docker 컨테이너를 실행합니다.

특징

  • EC2 직접 관리
  • ECS Agent 설치 필요
  • 세부 설정 가능
  • 높은 자유도

대규모 서비스나 세밀한 서버 설정이 필요한 환경에서 많이 사용됩니다.

3-2) Fargate Launch Type

https://medium.com/%40rohannair1099/how-to-deploy-a-docker-app-on-aws-ecs-fargate-with-application-load-balancer-56734da0284d

Fargate는 서버를 직접 관리하지 않는 서버리스 실행 방식입니다. EC2를 생성하거나 운영할 필요 없이 Task Definition만 등록하면 AWS가 필요한 컴퓨팅 자원을 자동으로 준비하여 컨테이너를 실행합니다.

특징

  • EC2 관리 불필요
  • 서버리스
  • 빠른 배포
  • 사용량 기반 과금

운영 부담을 줄이고 싶은 서비스에서 많이 활용됩니다.


4. EC2와 Fargate 비교

항목 EC2 Fargate
서버 관리 직접 AWS
운영 부담 높음 낮음
비용 EC2 기준 실행 시간 기준
자유도 높음 제한적
추천 환경 대규모 서비스 서버리스 환경

5. ECS IAM Role

https://issackpaul95.medium.com/aws-theory-deep-dive-into-amazon-ecs-launch-types-iam-roles-load-balancers-and-data-43088ceaf991

5-1) EC2 Instance Profile

EC2 Launch Type에서 ECS Agent가 사용하는 권한입니다. 주요 역할은 다음과 같습니다.

  • ECS Cluster 등록
  • ECR 이미지 다운로드
  • CloudWatch Logs 전송
  • Secrets Manager 접근

EC2 인스턴스 자체가 사용하는 IAM 권한입니다.

5-2) ECS Task Role

실제 실행되는 컨테이너(Task)가 사용하는 권한입니다.

  • S3 접근
  • DynamoDB 조회
  • SQS 전송
  • Lambda 호출

등 필요한 권한만 Task별로 부여할 수 있습니다. 즉, 애플리케이션이 사용하는 IAM 권한입니다.


6. Load Balancer 연동

https://snappytux.com/aws-ecs-101-part-1/

6-1) Application Load Balancer(ALB)

HTTP/HTTPS 기반 서비스에서 가장 많이 사용됩니다. 사용자의 요청을 여러 ECS Task로 분산하여 서비스 가용성을 높일 수 있습니다.

6-2) Network Load Balancer(NLB)

TCP/UDP 기반의 고성능 네트워크 처리가 필요한 경우 사용됩니다. 낮은 지연 시간과 높은 처리량이 필요한 환경에 적합합니다.


7. ECS와 Amazon EFS

https://issackpaul95.medium.com/aws-theory-deep-dive-into-amazon-ecs-launch-types-iam-roles-load-balancers-and-data-43088ceaf991

컨테이너는 기본적으로 종료되면 내부 데이터가 함께 삭제됩니다. 여러 ECS Task가 동일한 파일을 공유해야 하는 경우에는 Amazon EFS를 사용할 수 있습니다.

EFS를 ECS Task에 마운트하면 여러 컨테이너가 하나의 파일 시스템을 공유할 수 있으며, EC2 Launch Type과 Fargate Launch Type 모두에서 사용할 수 있습니다.

  • 업로드 파일 공유
  • 로그 공유
  • 설정 파일 공유
  • AI 모델 파일 공유

 


8. ECS와 Kubernetes(EKS) 비교

항목 ECS EKS
관리 난이도 쉬움 높음
Kubernetes 사용 안 함 사용
AWS 연동 매우 쉬움 쉬움
학습 난이도 낮음 높음
추천 환경 AWS 중심 서비스 Kubernetes 기반 서비스

9. 마치며

이번 글에서는 Amazon ECS의 기본 개념과 주요 기능을 살펴보았습니다. 처음에는 단순히 Docker 컨테이너를 실행하는 서비스라고 생각했지만, 학습하면서 ECS는 컨테이너의 실행뿐 아니라 배포, 확장, 장애 복구까지 관리하는 컨테이너 오케스트레이션 서비스라는 점을 이해할 수 있었습니다.

 

또한 EC2 Launch Type과 Fargate Launch Type의 차이를 비교하며 서버를 직접 관리하는 방식과 서버리스 방식의 특징을 이해했고, IAM Role을 통해 컨테이너와 인프라의 권한을 분리할 수 있다는 점도 알게 되었습니다.

 

특히 ALB를 이용한 트래픽 분산과 Amazon EFS를 통한 파일 공유 기능은 실제 운영 환경에서 컨테이너 기반 서비스를 안정적으로 구성하는 데 중요한 요소라는 점을 배울 수 있었습니다.

'Data Engineering > AWS' 카테고리의 다른 글

Amazon EKS란  (0) 2026.07.09
Amazon ECR이란  (0) 2026.07.09
AWS Batch란  (0) 2026.07.08
AWS SAM(Serverless Application Model)란  (0) 2026.07.08
AWS Lambda란  (0) 2026.07.08
'Data Engineering/AWS' 카테고리의 다른 글
  • Amazon EKS란
  • Amazon ECR이란
  • AWS Batch란
  • AWS SAM(Serverless Application Model)란
jjaehyeok
jjaehyeok
jjaehyeok 님의 블로그 입니다.
  • jjaehyeok
    jjaehyeok 님의 블로그
    jjaehyeok
  • 전체
    오늘
    어제
    • 분류 전체보기 (112) N
      • Navisafe (16)
        • Infrastructure (14)
        • Data Pipeline (0)
        • Trouble shooting (2)
      • Data Engineering (59) N
        • Airflow (11)
        • Kafka (3)
        • Spark (0)
        • ELK (2)
        • Kubernetes (7)
        • AWS (36) N
        • Flink (0)
      • CodingTest (31)
        • 문제 풀이(Lv1~Lv2) (21)
        • 문제 풀이(Lv3) (10)
        • SQL (0)
      • 알고리즘 정리 (3)
        • 자료구조 (스택, 큐, 해시) (3)
        • 정렬 & 그리디 (0)
        • DFS & BFS (0)
        • 이분탐색 (0)
        • DP (0)
      • 자격증 (1)
        • CKAD (1)
        • DEA-C01 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    datasync
    k8s
    drea-c01
    Glue
    DynamoDB
    elk
    Redshift
    batch
    Airflow
    DEA-C01
    trouble shooting
    ECR
    AWS
    S3
    Kafka
    documentdb
    CKAD
    EC2
    eks
    datatransfer
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
jjaehyeok
Amazon ECS란
상단으로

티스토리툴바