ECS(Amazon Elastic Container Service)는 AWS에서 제공하는 컨테이너 오케스트레이션 서비스이다. 컨테이너 기반 애플리케이션을 AWS 환경에서 쉽게 배포하고 관리할 수 있도록 도와준다. 쿠버네티스와 비슷한 역할을 하지만 보다 저렴하고 사용하기 쉬우며 AWS에 최적화된 관리형 서비스로 제공된다. 또한 서버리스로도 구성 가능하다.
주요 기능으로는 컨테이너 관리, 클러스터 관리, 로드 밸런싱, 자동 스케일링, IAM으로 권한 세분화 등이 있다.
ECS는 컨테이너 실행에 2가지 방식을 제공한다. 하나는 EC2 기반의 방식 또 다른 하나는 Fargate를 사용한 서버리스 방식이다.
초기 설정
1. 컨테이너 이미지 빌드 & 저장
2. 클러스터 인스턴스 생성 (EC2 방식일 경우)
3. Task Definition 생성
4. Service 생성
실행 과정
1. 컨테이너 레지스트리에 저장된 도커 이미지를 가져옴
2. ECS에서 이미지를 실행하여 컨테이너(task) 생성
3. ECS에서 서비스 및 클러스터 관리, 모니터링
ECR(Amazon Elastic Container Registry)은 Docker 컨테이너 이미지를 저장하고 관리하는 AWS의 컨테이너 레지스트리 서비스이다. 도커 허브와 비슷한 기능을 하지만 AWS 환경에 최적화되어 있다. 주요 기능으로는 컨테이너 이미지 저장 및 관리, CI/CD 연동, 보안 및 스캔 기능 등이 있다.
ECR 이미지 업로드 및 배포 과정
1. 도커 이미지 빌드
2. ECR 로그인
3. ECR에 이미지 태깅
4. ECR에 이미지 푸시
5. ECR에서 컨테이너 배포
ECS과 ECR을 활용하여 다음과 같은 과정으로 CI/CD 파이프라인을 구성 할 수 잇다.