Amazon ECS 알아보기

Hyeokminn·2025년 9월 1일

aws-ecs

목록 보기
1/2
post-thumbnail

1. Amazon ECS란?

Amazon Elastic Container Service (ECS)는 AWS에서 제공하는 완전관리형 컨테이너 오케스트레이션 서비스. ➡️ 실행, 중지 등 컨테이너 관리 서비스

컨테이너 애플리케이션의 배포, 관리, 확장을 간편하게 해주며, 서버 인프라 관리 부담을 줄여줍니다. 따라서 애플리케이션 개발에 집중할 수 있음.

2. ECS의 주요 구성 요소

작업 정의(Task Definition): 컨테이너의 이미지, CPU/메모리 등 실행 설정을 JSON 형식으로 작성한 템플릿입니다. * 배포 타입 설정(Fargate, EC2, External), 컨테이너 이미지 맵핑 정의 작업, 작업 크기 설정

클러스터(Cluster): 컨테이너를 실행하는 리소스(EC2 인스턴스, Fargate 등)를 논리적으로 묶는 단위입니다. 작업이 실행되는 논리적 그룹

작업(Task): 작업 정의를 기반으로 실행된 컨테이너의 실제 인스턴스입니다. ECS 클러스터 내의 최소 실행 단위(1작업당 1~10개 컨테이너 가능)

서비스(Service): 원하는 수의 작업을 컨테이너 인스턴스에 유지하고, 자동 스케일링 및 로드밸런싱 기능을 제공합니다. 작업을 실행, 관리하는 역할. Unhealthy Task 확인 및 교체, 서비스 타입(Replica, Daemon), 배포 유형(롤링 업데이트, 블루/그린 배포)...

3. ECS 실행 옵션

EC2 모드: AWS EC2 인스턴스 위에 컨테이너를 실행하는 방식으로, 인프라를 직접 관리합니다.

Fargate 모드: 서버리스 컴퓨팅 엔진을 이용해 인프라 관리 없이 컨테이너를 실행할 수 있습니다.

  • Fargate compute

    AWS Fargate: 컨테이너에 적합한 서버리스 컴퓨팅
    - 서버를 관리할 필요가 없기 때문에 애플리케이션 구축에 집중 가능.
    - 서버 관리, 리소스 할당 및 규모 조정과 같은 작업을 AWS로 이전하여 운영 태세 개선.
    - 추가로 클라우드에서 아이디어를 프로덕션으로 전환하는 프로세스가 가속화되고 총 소유 비용이 낮아짐.

4. ECS 작업 정의 예제

{
  "containerDefinitions": [
    {
      "name": "app",
      "image": "nginx:latest",
      "essential": true,
      "memory": 512,
      "cpu": 256
    }
  ],
  
  "family": "my-task",
  "networkMode": "awsvpc",
  
  "requiresCompatibilities": ["FARGATE"],
  "cpu": "256",
  "memory": "512"
}
  • containerDefinitions: Container Resource, Port, Image, HealthCheck ...
  • Task Level Config: Task Role, Task execution Role, Network Mode, revision
  • requiresCompatibilities: FARGATE, EC2, EXTERNAL ...
  • task Level Resource: cpu, memory ...

5. ECS의 장점

AWS 서비스와 완전 통합되어 편리함
높은 확장성 및 자동화 지원
서버 관리 부담 감소 (특히 Fargate 이용 시)
다양한 네트워킹 및 보안 옵션 지원

결론

ECS는 작업 정의(Task Definition)를 기반으로 컨테이너의 배포, 확장, 관리를 자동화하여 개발자가 인프라 대신 애플리케이션에 집중하게 해주는 완전관리형 오케스트레이션 서비스.

참고

0개의 댓글