EKS → 다른 클라우드 Kubernetes로 마이그레이션
Kubernetes 자체는 표준이지만, 매니지드 서비스가 되는 순간 클라우드마다 다른 사람의 작품처럼 느껴져요. 마이그레이션을 검토할 때는 단순한 manifest 이전이 아니라, 인프라 어댑터 자체를 갈아끼우는 작업이라고 봐야 해요.
핵심 비교 포인트
| 영역 | AWS EKS | 다른 매니지드 K8s | 주의할 점 |
|---|---|---|---|
| 노드 풀 | Managed Node Group | Node Pool | 자동 스케일 정책의 동작 방식이 다름 |
| 스토리지 | EBS / EFS | 클라우드별 블록·파일 스토리지 | StorageClass 매핑 표 작성 필수 |
| 네트워크 CNI | aws-vpc-cni | 클라우드별 자체 CNI / Global Router | Pod IP 할당 방식이 달라서 Network Policy 영향 |
| LB | ALB / NLB | CLB (L4/L7) | Ingress Controller 차이 → 어노테이션 전부 재검토 |
| 보안 그룹 | SG | 다른 모델 | 룰 변환 매핑 표 작성 필수 |
| 모니터링 | CloudWatch | 클라우드별 모니터링 + Prometheus | 알람 정책 재구성 |
진행 전 체크리스트
- 현재 워크로드 인벤토리 — 모든 manifest와
values.yaml을 한 곳에 모으기. 이게 시작점 - 외부 의존성 식별 — IAM 역할, S3 버킷, RDS, ALB 인증서 등 K8s 바깥의 모든 연결고리
- 상태 저장(stateful) 워크로드 우선순위 — 무상태 서비스는 쉽지만, DB·Redis·캐시 같은 건 다운타임 전략 필요
- 네트워크 정책 의존도 — CNI가 바뀌면 NetworkPolicy 동작이 달라질 수 있음
- CI/CD 파이프라인 — 빌드 환경, 이미지 레지스트리, 배포 도구가 새 클라우드와 호환되는지
단계적 접근
처음부터 전체를 옮기려고 하면 무조건 실패해요. 권장하는 순서는:
- PoC — 가장 단순한 무상태 서비스 1개를 새 K8s 클러스터에 띄워보기
- 측정 — 성능, 비용, 운영 편의성을 기존 환경과 비교
- 점진적 이전 — 트래픽 분할 → 하나씩 옮기기
- 롤백 플랜 — 어느 시점에든 원래 환경으로 돌아갈 수 있도록 DNS·DB 동기화 보장
가장 잘못 보는 함정
“manifest만 옮기면 된다”고 생각하는 것이 가장 큰 함정이에요. 실제로는 인프라 의존성 70% + manifest 30% 정도의 작업이고, 그 70%가 일정과 비용을 결정해요.
마무리
매니지드 K8s 마이그레이션은 단순한 “다른 클라우드 적응”이 아니라, 우리 시스템이 어떤 클라우드 추상화 위에 서 있었는지를 재발견하는 과정이에요. 그래서 항상 비교 매트릭스를 먼저 그리고 시작합니다.