[TIL] CI/CD 파이프라인과 ECS 블루/그린 배포 실습-2025.09.16

2025. 9. 16. 16:28대외활동/인공지능사관학교

728x90
반응형
SMALL

오늘의 학습 목표

  • CI/CD 파이프라인의 전체적인 흐름을 이해한다.
  • Amazon ECS를 활용하여 Blue/Green Deployment를 수행하는 방법을 실습한다.
  • 무중단 배포(Zero-downtime Deployment)의 개념과 필요성을 체감한다.

 

주요 개념 정리

1. CI/CD 파이프라인

  • CI (Continuous Integration): 개발자가 코드를 push할 때마다 자동으로 빌드/테스트가 실행되는 과정.
  • CD (Continuous Delivery/Deployment): 빌드된 애플리케이션을 자동으로 배포까지 이어가는 과정.
  • 핵심은 자동화빠른 피드백.

2. Amazon ECS (Elastic Container Service)

  • AWS에서 제공하는 컨테이너 오케스트레이션 서비스.
  • Fargate(서버리스 방식) 또는 EC2 기반으로 컨테이너 실행 가능.
  • 서비스 정의(Service)를 통해 원하는 태스크(Task)를 여러 개 실행하고 관리.

3. 블루/그린 배포 (Blue/Green Deployment)

  • 현재 운영 중인 애플리케이션을 Blue 환경이라 하고, 새 버전을 Green 환경에 배포.
  • 트래픽을 점진적으로 Green으로 전환 → 문제 발생 시 빠른 롤백 가능.
  • 장점: 무중단 배포, 신속한 버전 전환, 안정성 향상.

출처: 실습과정 중 성공한 화면 (기존에 블루였던 화면 그린으로)

실습 과정

1. 소스코드 → 빌드

  • GitHub 저장소에 코드 push → GitHub Actions / CodePipeline 트리거.
  • Dockerfile 기반으로 컨테이너 이미지 빌드.

2. 이미지 저장

  • Amazon ECR (Elastic Container Registry)에 새로운 이미지 push.

3. ECS 배포 설정

  • ECS 서비스에서 배포 방식을 Blue/Green으로 설정.
  • AWS CodeDeploy와 연계하여 트래픽 라우팅을 관리.

4. 배포 전환

  • Green 환경에 새로운 Task Definition을 배포.
  • ALB(Application Load Balancer)를 통해 트래픽을 점진적으로 Green으로 이동.
  • 정상 동작 확인 후 Blue 환경 종료.

 

배운 점 / 인사이트

  1. 무중단 배포의 필요성
    사용자가 접근하는 서비스라면, 다운타임이 없는 배포는 필수적이다.
  2. 자동화된 파이프라인의 가치
    수동 배포보다 훨씬 빠르고, 오류 가능성을 줄여준다.
  3. AWS 서비스 간 연계
    • CodePipeline → CodeBuild → ECR → ECS → CodeDeploy → ALB
    • 각각의 역할을 이해하고 연결해야 전체적인 배포 흐름이 명확해진다.

 

다음에 시도해볼 것

  • Canary 배포 방식과 비교해보기 (트래픽 일부만 전환).
  • 배포 실패 시 자동 롤백 전략 실습.
  • GitHub Actions 단독 파이프라인 vs AWS CodePipeline 차이점 정리.

 

👉 오늘 실습을 통해 단순히 "배포"가 아니라 안정적이고 반복 가능한 배포의 중요성을 배웠다. 특히 ECS Blue/Green 배포는 실제 서비스 환경에서 자주 쓰이는 전략이라, 프로젝트에도 적극적으로 적용해볼 가치가 있다.

728x90
반응형
LIST