반응형

Amazon ECS(Elastic Container Service)

클러스터에서 컨테이너를 쉽게 실행, 중지 및 관리할 수 있게 해주는 컨테이너 관리 서비스.

간단한 API 호출을 통해 컨테이너 기반 앱을 시작, 중지할 수 있음.

 

ECS 구성 요소

1. ECR(Elastic Container Repository)

아마존에서 제공하는 컨테이너 이미지 저장소.

ECR에서 이미지 URI를 이용해 빌드한 이미지를 푸쉬하고 가져올 수 있음.

 

2. 작업 정의(=Task Definition)

 애플리케이션을 구성하는 컨테이너를 설명하는 텍스트(JSON), 태스크를 실행하기 위한 정의.

(태스크는 클러스터에 종속적이지만 Task Definition은 클러스터에 종속적이지 않음)

  - 시작 유형 (Fargate, EC2, External)

  - 사용할 컨테이너 이미지

  - 개방할 포트, CPU/MEM 리소스, 데이터 볼륨 설정 등

 

3. 작업(Task)

작업 정의에서 정의된 설정으로 인스턴스화 하는 것. 컨테이너를 실행하는 최소 단위로 하나 이상의 컨테이너로 구성됨.

Task는 Cluster에 속한 컨테이너 인스턴스(EC2 Instance)나 Fargate에 배포하게 됨.

 

4. 서비스(Service)

클러스터에서 지정된 수의 작업을 동시에 실행하고 관리할 수 있게 해주는 구성.

서비스는 Task를 포함하며, Task와 관련된 Auto Scaling, LB(Load Balancing)을 관리.

 - 클러스터, 작업정의, 시작유형, 작업 개수, LB, Auto Scaling, 네트워크 구성, 배포 유형(롤링, 블루/그린 등) 설정

 

5. 클러스터(Cluster)

작업 또는 서비스의 논리적 그룹. 클러스터를 실행하여 작업을 실행할 수 있음.

 - 클러스터 템플릿 선택(Fargate, EC2, External)

 

 

* 시작 유형

Fargate : 컨테이너를 배포하고 관리할 수 있는 서버리스 컴퓨팅 엔진
EC2 : 컨테이너를 배포하고 관리할 수 있는 클라우드 컴퓨팅 플랫폼
External : 컨테이너를 배포하고 관리할 수 있는 온프레미스 서버 또는 가상 머신

 

 

* 클러스터에는 두 가지 방식으로 태스크를 실행할 수 있음.

1. 작업 정의(=Task Definition)로 직접 태스크를 실행하는 방식

곧바로 실행되며 실행이 된 후로 더 이상 관리되지 않음. 일회성 명령어라면 한 번 실행된 후 종료되며, 데몬이라면 태스크를 명시적으로 종료할 때까지 컨테이너가 남아 있음. 직접 태스크를 실행하는 방법은 특별한 이유가 있을 때 외에는 거의 사용되지 않음.

 

2. 서비스(=Service): 하나의 Task Definition(Revision)과 연결됨

- 데몬타입: 모든 컨테이너 인스턴스에 해당하는 태스크가 하나씩 실행됨. 이것은 인스턴스 관리를 위한 용도로 사용됨.

- 리플리카 타입: 실행하려는 태스크의 개수를 지정하여, 이 개수만큼 실행되도록 자동 관리해줌. 이 리플리카 타입이 웹서버를 비롯한 실제 서비스에서 주로 사용됨.

프로세스를 배치하는 경우, 운영자가 직접 어떤 인스턴스에 어떤 프로세스를 언제 배치할지 결정해야 하는데, ECS에서는 서비스가 이 스케쥴링 역할을 담당함. (= 서비스는 각 인스턴스들에 설치된 ecs-client에서 수집된 정보를 기반으로 어디에 어떤 태스크를 언제 실행할지 결정. 즉, 다수의 컨테이너 인스턴스가 있을 시 언제 어디서 태스크가 실행될지 알 수 없음. 서비스가 직접 태스크 배치 스케쥴링을 수행) 

 

출처

https://tech.cloud.nongshim.co.kr/2021/08/30/%EC%86%8C%EA%B0%9C-amazon-ecs%EB%9E%80/

https://www.44bits.io/ko/post/container-orchestration-101-with-docker-and-aws-elastic-container-service

 

AWS ECS로 시작하는 컨테이너 오케스트레이션

컨테이너는 격리된 환경에서 애플리케이션을 실행할 수 있도록 도와줍니다. 컨테이너를 프로덕션 환경에서 사용하기 위해서는 적절한 스케줄링과 관리를 위한 도구가 필요합니다. 이 글에서는

www.44bits.io

 

[소개] Amazon ECS란?

Amazon ECS(Elastic Container Service) 란? 클러스터에서 컨테이너를 쉽게 실행, 중지 및 관리할 수 있게 해주는 컨테이너 관리 서비스 입니다.간단한 API 호출을 사용하여 컨테이너 기반 애플리케이션을

tech.cloud.nongshim.co.kr

 

반응형

+ Recent posts