주간 랩업/[SCC] Docker 기반 CI&CD 파이프라인 구축하기

3-2. Amazon ECS란?

hooooolly 2025. 4. 8. 08:00

🔽 3주차 목표 

💡 ECR에 푸시한 도커 이미지를 배포하기
💡 AWS ECS는 AWS에서 제공하는 docker container 실행 서비스로 ECR에 있는 docker image를 ECS에 배포해서 “인터넷 사용자가 접속할 수 있도록” 하기

 

 

GitLab에 코드가 push 되면 Docker Image 가 만들어지고 ECR에 Push를 하게 됩니다. ECR에 Push를 하면 GitLab은 “deploy stage”의 job을 실행하는데, 이 job은 ECS를 이용해서 Docker Image를 PULL 해서 docker container 실행하게 됩니다. 이제 사용자는 웹 브라우저를 이용해서 서비스를 사용할 수 있게 됩니다.

AWS는 API를 이용해서 ECS에 새로운 docker container 서비스가 실행되게 할 수 있는데, aws cli를 이용하면 됩니다. 결국 GitLab runner가 ECS에 docker container 서비스를 수행하도록 aws cli 명령을 실행하면 됩니다.

 


 

Amazon ECS란

 

  • AWS Elastic Container Service는 docker 애플리케이션을 쉽게 배포하고 운영 할 수 있도록 지원하는 완전관리형 Container Orchestration 서비스이다.
  • Kubernetes 보다 사용하기 쉽고, 비용적으로도 저렴하기 때문에 소/중 규모의 프로젝트에 널리 사용하고 있다.
  • serverless로 구성하면 인스턴스(가성서버)를 구성하고 관리할 필요가 없다 (로드밸런서, 모니터링, Auto Scaling 등 자동화)

 

Amazon ECS의 구조
  • ECS는 크게 ECR, ECS Cluster, ECS Service, ECS Task로 이루어져 있다.
    • ECR: Docker image 저장소
    • ECS Cluster: 컨테이너를 실행하기 위한 Cluster로 여러 인스턴스로 이루어져 있다. 이 인스턴스에 Docker container가 분산 실행되며 Serverless로 할 경우에는 인스턴스도 필요가 없다.
    • ECS Server: Docker 애플리케이션의 실행 그룹
    • ECS Task: ECS Server에 실제로 실행되는 docker container들

  • ECS는 Task Definition를 통해 도커 컨테이너 애플리케이션 실행 정보를 받아 서비스를 실행한다