피드로 돌아가기
Dev.toDevOps
원문 읽기
Service Selector 기반 AWS EKS Zero-Downtime Blue-Green 파이프라인 구축
From Minikube to AWS EKS: How I Built a Zero-Downtime Blue-Green Deployment Pipeline for ShopSwift
AI 요약
Context
기존 Rolling Deployment 방식에서 발생하는 Version Skew 문제와 롤백 시 발생하는 재배포 시간 지연에 따른 사용자 경험 저하 해결 필요. 단순한 코드 배포를 넘어 트래픽 전환 및 롤백 과정에서 발생하는 요청 실패(503 Error)를 완전히 제거하는 구조적 설계 지향.
Technical Solution
- NGINX Ingress는 고정하고 K8s Service의 Label Selector만 변경하는 방식으로 트래픽 스위칭 구조 설계
- 환경 변수를 통한 단일 Docker Image 기반의 Blue/Green 런타임 설정으로 빌드 파이프라인 일관성 확보
- Readiness Probe 도입을 통한 비정상 릴리스의 트래픽 유입 원천 차단 및 배포 안정성 강화
- Minikube를 활용한 로컬 검증 단계를 선행하여 AWS EKS 배포 전 503 에러 지점 파악 및 수정
- GitHub Actions CI 내 Trivy 및 kubeconform 단계 추가를 통한 이미지 보안 및 매니페스트 정적 분석 수행
- Prometheus와 Grafana 스택을 통한 K8s 메트릭 모니터링 기반의 배포 상태 가시성 확보
실천 포인트
- 배포 전 Readiness Probe가 실제 애플리케이션의 준비 상태를 정확히 반영하는지 확인 - npm ci 사용 시 package-lock.json의 동기화 상태를 검증하여 재현 가능한 빌드 환경 구축 - 클라우드 비용 최적화를 위해 배포 검증 후 자원 삭제(Teardown) 과정을 자동화 또는 프로세스화