핵심 요약
레브잇이 DAU 150만, MAU 300만 규모의 올웨이즈 서비스를 EC2 기반에서 Amazon EKS로 무중단 마이그레이션한 실전 DevOps 이야기를 공유합니다.
구현 방법
- GitOps Bridge 패턴으로 IaC → GitOps → Helm/Kustomize 흐름을 설계하고, Terraform으로 EKS 클러스터 및 Core Add-on를 자동화 설치
- 클러스터 메타데이터를 K8s Secret으로 주입하고 ArgoCD를 설치해 Bootstrapping Application 생성, ApplicationSet으로 모든 Add-on과 워크로드를 배포
- Add-on 구성 전략: Core Add-on은 안정성 필수 요소, Common Add-on은 일시적 중단 가능 구성 요소 구분
- 혼합 오토스케일러 도입: Core는 Managed NodeGroup + Cluster Autoscaler, 나머지는 Karpenter로 운영
- Bottlerocket 이미지 사용으로 보안성 강화 및 TaINT/Toleration으로 Add-on 리소스 점유 보장
- 1 Pod = 1 Container = 1 Process 전략, IRSA 기반 Pod 인증, External Secrets Operator로 민감 정보 관리
- Helm 베이스 차트를 도입해 수십 개 마이크로서비스와 100개 이상의 크론잡을 공통 템플릿으로 관리, 환경별 values.yaml로 구성
- ALB 기반 Ingress + Route53 자동 등록, Keel로 이미지 자동 배포, QoS/ preStop 등의 안정적 배포 전략 적용
- 대규모 운영 구조에서 ArgoCD ApplicationSet으로 Core/Common Add-on, 운영 리소스, 워크로드를 체계적으로 구성
- Datadog APM 및 Profiling으로 운영 가시성 확보(일부 이슈는 차기 포스팅에서 다룸)
- 53일 일정(2023-11-09 ~ 2023-12-31; 종료 시점은 이슈로 지연) 내 마이그레이션 완료, 연내 거의 마무리
주요 결과
- 무중단 EKS 마이그레이션 성공 및 일정 준수
- IaC/GitOps 기반 운영 체계 확립과 자동화된 애드온 배포 구조 확보
- Core Add-on과 Common Add-on의 구분 및 혼합 오토스케일러 도입으로 안정성 및 확장성 동시에 강화
- 수십 개의 마이크로서비스와 100개 이상의 크론잡을 공통 Helm 베이스 차트로 관리해 배포 일관성 확보
- Bottlerocket 이미지 도입으로 보안성과 운영 효율성 강화
- 대규모 서비스 환경에서 Infra 비용 절감 및 운영 시나리오 확장을 위한 구체적 설계 남김
- 향후 진행 예정 주제: AWS 인프라 비용 최적화, GitOps 기반 인프라 자동화, DevSecOps 사례 등 더 자세한 내용은 차후 블로그에서 다룰 예정


