가이드 · 클라우드
진단부터 전환까지, 엔터프라이즈를 위한 클라우드 마이그레이션 플레이북
마이그레이션은 일련의 의사 결정이며, 그 대부분은 서버를 옮기기 전에 이루어집니다. 이 플레이북에서는 단계별 진행 방식, 리전 선택과 데이터 레지던시, 그리고 전환 주말을 무사히 넘기기 위한 실무 방법을 설명합니다.
플레이북의 목적
기업이 마이그레이션을 한 번만 하는 경우는 드뭅니다. 첫 번째 시스템을 이전하며 교훈을 얻고, 이어서 다음 열 개를 이전합니다. 플레이북은 두 번째 웨이브가 첫 번째보다 빠르고 안전하게 진행되도록 그 교훈을 정리한 것입니다. 시스템을 어떻게 평가하는지, 랜딩 존은 어떤 모습인지, 전환은 어떻게 실행하는지, “완료”란 무엇을 의미하는지가 담겨 있습니다. 이 가이드는 당사가 고객과 함께 출발점으로 삼는 플레이북이며, 문자 그대로 따르기보다 귀사 조직에 맞게 조정해야 합니다.
여기에는 두 가지 원칙이 일관되게 적용됩니다. 첫째, 서버가 아니라 비즈니스 기능을 이전합니다. 핵심은 가상 머신을 어떻게 복사하느냐가 아니라 애플리케이션과 데이터가 어떻게 계속 사용자에게 서비스를 제공하느냐입니다. 둘째, 의도적으로 확정하는 순간까지 모든 단계를 되돌릴 수 있도록 유지합니다.
단계
각 단계는 운영위원회가 판단할 수 있는 의사 결정으로 마무리됩니다. 단계는 웨이브 간에 겹쳐 진행됩니다. 즉, 첫 번째 웨이브를 이전하는 동안 두 번째 웨이브를 평가합니다.
- 1
평가
모든 애플리케이션의 담당자, 의존성, 데이터 분류, 연동, 라이선스, 현재 인프라를 목록화합니다. 의존성과 위험도에 따라 애플리케이션을 웨이브로 묶습니다. 각 애플리케이션의 처리 방식을 결정합니다. 리호스트(그대로 이전), 리플랫폼(관리형 데이터베이스 사용 등 소규모 변경), 리팩터(컨테이너화 또는 재설계), 교체(SaaS), 폐기 중 하나입니다. 산출물: 처리 방식이 포함된 웨이브 계획과 첫 번째 비즈니스 케이스.
- 2
계획
첫 번째 웨이브에 대해 애플리케이션별로 목표 아키텍처, 사내에서 연결되는 네트워크 경로, 신원 관리(사람에게는 SSO, 워크로드에는 역할), 데이터 마이그레이션 방법, 전환 패턴을 설계합니다. 인수 기준도 이 단계에서 작성합니다. 어떤 테스트를 거치고, 어떤 사용자가 확인하며, 어떤 보고서의 수치가 일치해야 하는지 정합니다. 산출물: 애플리케이션별 설계와 런북 골격.
- 3
랜딩 존 구축
워크로드가 들어오기 전에 계정 구조, 네트워킹, 신원 관리, 로깅, 보안 기준, 백업, 비용 통제를 코드로 구성합니다. 이후의 모든 웨이브가 이 기반 위에 놓이므로 한 번에 제대로 구축할 가치가 있습니다. 산출물: 자체 컴플라이언스 검사를 통과하는 Terraform 관리 환경.
- 4
웨이브 단위 마이그레이션
한 번에 한 웨이브씩 비운영 환경을 먼저 이전하고 그다음 운영 환경을 이전합니다. 패턴상 필요한 경우 데이터를 지속적으로 복제하고, 목표 환경에서 실제 데이터로 인수 테스트를 실행하며, 다른 사람에게 영향이 가기 전에 문제를 해결합니다. 산출물: 기존 시스템이 계속 가동되는 상태에서 인수 테스트를 통과한 목표 환경.
- 5
전환
리허설을 마친 런북을 실행합니다. 변경을 동결하고, 최종 데이터 동기화를 완료하고, 트래픽을 전환하고, 검증한 뒤 공지합니다. 원본 환경은 합의된 기간 동안 손대지 않고 롤백할 수 있는 상태로 유지합니다. 산출물: 롤백 결정 시점을 명시적으로 통과한 상태에서 목표 환경에서 가동되는 운영 시스템.
- 6
최적화
안정화 이후에는 안전을 위해 과도하게 할당한 자원을 적정 규모로 조정하고, 적합한 워크로드를 관리형 서비스나 컨테이너로 옮기며, 사용량을 예측할 수 있는 부분에는 약정 요금을 적용하고, 원본 시스템을 폐기합니다. 결과물은 운영 비용 기준선과, 다음 웨이브를 위해 플레이북에 반영한 교훈입니다.
리전 선택과 데이터 레지던시
리전 선택이 가장 먼저입니다. 국내 리전이 있다면 복원력을 위한 다중 가용 영역과 현지 사용자에 대한 낮은 지연 시간을 제공합니다. AWS 아시아 태평양(방콕) 리전(ap-southeast-7)이 그 예입니다. 태국에 사용자를 둔 조직은 싱가포르에서 서비스하는 대신, 클라우드 시대 대부분의 기간 동안 존재하지 않았던 선택지를 갖게 되었습니다. 지연 시간에 민감한 시스템이나, 정책 또는 규제 기관이 데이터의 국내 보관을 선호하는 조직이라면 국내 리전이 기본 출발점입니다.
두 가지 주의 사항이 있습니다. 신규 리전은 모든 서비스를 갖추고 출시되지 않습니다. 확정하기 전에 설계에 포함된 각 관리형 서비스가 리전별 서비스 목록에 있는지 확인하고, 대안(다른 서비스 또는 해당 구성 요소에 대한 다른 리전)을 준비하십시오. 또한 데이터 레지던시는 기술적 결정이기 이전에 정책적 결정입니다. PDPA 같은 개인정보 보호법은 일정 조건하에 국외 이전을 허용하며, 금융 서비스 등 업종별 규제 기관은 별도의 기준을 둘 수 있습니다. 어떤 데이터 범주를 반드시 국내에 두어야 하고 어떤 범주를 재해 복구를 위해 해외에 복제할 수 있는지 문서화하고, 법무팀과 컴플라이언스팀의 확인을 받으십시오. 그런 다음 이를 조직 정책의 리전 제한으로 코드화하여, 잘못된 위치의 리소스를 사후에 발견하는 것이 아니라 사전에 차단하십시오.
재해 복구에도 같은 수준의 명확성이 필요합니다. 리전 내에서는 다중 가용 영역이 시설 장애로부터 보호합니다. 리전 단위의 사고에 대비하려면 백업이나 대기 환경용으로 두 번째 리전을 허용할지, 어느 리전으로 할지, 비즈니스에서 어느 수준의 복구 시간과 복구 시점에 비용을 투자할지 결정하십시오.
Terraform: 코드로 관리하는 랜딩 존
랜딩 존에서 코드로 정의할 수 있는 모든 것은 코드로 정의해야 합니다. 계정과 조직 정책, 네트워크와 라우팅, 신원과 역할, 로깅과 감사 추적, 암호화 키, 백업 정책, 예산과 알림이 이에 해당합니다. 당사가 Terraform을 선택한 이유는 선언적이고, 특정 제공업체에 종속되지 않으며, 애플리케이션 코드와 동일한 풀 리퀘스트 흐름에서 검토할 수 있기 때문입니다.
몇 가지 실무 원칙을 지키면 관리가 수월해집니다. 상태(state)는 잠금 기능을 갖춘 원격 저장소에 보관하고, 환경별·논리적 구성 요소별로 하나씩 두어 한 곳의 실수가 다른 곳을 손상시키지 않도록 합니다. 반복적으로 생성하는 대상(컨테이너 정의, 로드 밸런서 규칙, IAM 역할, 로그 그룹을 갖춘 서비스 등)은 작고 이름이 명확한 모듈로 만들고 버전을 관리합니다. 이후의 비용 관리가 여기에 달려 있으므로, 단일 태깅 모듈을 통해 모든 리소스에 담당자, 환경, 애플리케이션, 비용 센터 태그를 붙입니다. 변경할 때마다 plan을 실행하고, 검토를 의무화하며, 노트북이 아닌 파이프라인에서 apply합니다. 정기적으로 드리프트를 탐지하고, 콘솔에서의 수동 변경은 새로운 표준이 아니라 바로잡아야 할 인시던트로 취급합니다.
그 결과 두 번째 웨이브의 환경은 하나의 프로젝트가 아니라 풀 리퀘스트 하나로 마련됩니다.
전환 패턴 비교
패턴은 프로그램 단위가 아니라 애플리케이션 단위로 선택하십시오. 허용 가능한 다운타임, 데이터 양, 트래픽이 시스템에 도달하는 방식에 따라 적합한 패턴이 정해집니다.
| 패턴 | 작동 방식 | 적합한 대상 | 다운타임과 롤백 |
|---|---|---|---|
| 빅뱅(오프라인) | 원본을 중지하고, 데이터를 복사하고, 목표 환경을 시작한 뒤 DNS 또는 엔드포인트를 전환합니다. | 소규모 시스템, 배치 워크로드, 유지 보수 시간대가 있는 내부 도구. | 다운타임은 복사 시간과 같습니다. 롤백은 간단하며, 손대지 않은 원본으로 다시 연결하면 됩니다. |
| 복제 후 전환 | 원본을 가동하는 동안 데이터베이스를 목표 환경으로 지속 복제(예: 관리형 복제 서비스 이용)하고, 전환 시점에 최종 동기화 후 전환합니다. | 장시간 중단은 허용되지 않지만 짧은 중단은 감수할 수 있는 데이터베이스와 ERP. | 다운타임은 수 분입니다. 롤백하려면 역방향 복제를 하거나 전환 이후의 데이터 손실을 감수해야 하므로 사전에 결정해 두십시오. |
| 블루-그린 | 원본과 나란히 목표 환경을 완전히 구축하고 테스트한 뒤, 로드 밸런서나 DNS에서 트래픽을 한 번에 전환합니다. | 상태 비저장 및 웹 계층 워크로드, 데이터 계층이 이미 이전된 애플리케이션. | 거의 없습니다. 데이터 계층이 공유되거나 동기화되어 있다면 같은 전환을 반대로 실행하는 것으로 롤백됩니다. |
| 카나리 / 가중치 기반 | 트래픽의 일부(가중치, 지역 또는 사용자 그룹 기준)를 목표 환경으로 보내고, 확신이 생길수록 비율을 늘립니다. | 사용자가 많은 고객 대면 애플리케이션, 모든 사용자에게 영향이 가기 전에 문제를 발견해야 하는 경우. | 설계상 다운타임이 없습니다. 가중치를 낮추면 롤백됩니다. 양쪽 환경에 걸친 세션 처리와 데이터 일관성이 필요합니다. |
| 스트랭글러(점진적) | 한 번에 하나의 기능씩 목표 환경의 새 서비스로 라우팅하며, 레거시 시스템은 폐기될 때까지 점차 축소됩니다. | 리팩터링 중인 대규모 모놀리스, 수년에 걸친 현대화 프로그램. | 단계별 다운타임이 없습니다. 롤백은 기능 단위로 합니다. 전체적으로 가장 느리지만 변경당 위험이 가장 낮습니다. |
롤백 리허설
모든 런북에는 롤백 항목이 있지만, 실제로 실행해 본 팀은 많지 않습니다. 비운영 환경에서 동일한 인원, 동일한 체크리스트로 시간을 재며 전체 전환을 최소 한 번 리허설하고, 이어서 롤백도 리허설하십시오. 진행/중단 기준(어떤 테스트를 통과해야 하는지, 어떤 이해관계자가 몇 시까지 확인해야 하는지)을 당일 이전에 정하고, 최종 결정을 내릴 한 사람을 지정하십시오. 되돌릴 수 없는 시점도 명시적으로 정하십시오. 그 시점 이후에는 새 거래가 목표 환경에만 존재하므로 롤백하려면 데이터를 수작업으로 대조해야 합니다.
실제 전환 중에는 일이 생길 때가 아니라 정해진 일정에 따라 소통하십시오. 작업이 계획대로 진행 중이라는 내용이라도 30분마다 상황을 공유하면 현업 부서는 안심하고 팀은 작업에 집중할 수 있습니다. 전환이 끝나면 기억이 생생할 때 짧은 회고를 진행하고 플레이북을 업데이트하십시오.
첫날부터 비용 관리
클라우드 비용은 기본적으로 늘어나며, 누군가 책임지고 관리할 때만 줄어듭니다. 첫 번째 운영 워크로드를 올리기 전에 다음 통제 장치를 갖추십시오.
- 계정별·애플리케이션별 예산과 알림을 설정하고, 재무팀뿐 아니라 애플리케이션 담당자도 볼 수 있게 합니다.
- 정책으로 필수 태그를 강제하여 모든 지출의 귀속처를 파악할 수 있게 합니다.
- 비운영 환경은 업무 시간 외에 자동으로 중지하거나, 필요할 때 Terraform으로 생성합니다.
- 마이그레이션은 효율보다 안전을 기준으로 용량을 잡으므로, 각 웨이브 후 한 달이 지나면 적정 규모를 검토합니다.
- 약정 요금(Savings Plans 또는 예약 용량)은 사용량이 안정되고 파악된 후에만 적용합니다.
- 스토리지 수명 주기 규칙: 로그, 백업, 스냅샷을 일정에 따라 저렴한 계층으로 옮기고 만료시킵니다.
- 운영 절감 효과가 실제로 있는 경우에만 관리형 서비스와 컨테이너를 도입합니다. 재설계가 비용 절감의 전제 조건은 아닙니다.
- 가용성 검토와 같은 수준의 엄격함으로 매월 비용을 검토합니다.
웨이브 계획에 대한 제3자 의견
웨이브 계획을 공유해 주시면 당사라면 무엇을 다르게 할지 말씀드리겠습니다. 당사의 클라우드 및 인프라 팀은 Terraform으로 관리되는 AWS 환경을 구축하고, AWS 아시아 태평양(방콕) 리전으로의 이전을 포함해 기업의 마이그레이션을 수행합니다.