GCP → Tencent Cloud 무중단 마이그레이션.
서머너즈워: 크로니클의 서버 80대·DB 20개를 약 1주일 만에 서비스 중단 없이 GCP에서 Tencent Cloud로 옮긴 프로젝트입니다.
문제
라이브 게임의 인프라를 클라우드 간에 옮기면서 서비스를 멈출 수 없었고, 옮기는 과정에서 방화벽 정책이 다르게 적용되면 안 됐습니다.
접근
네트워크와 방화벽 규칙을 Tencent에 GCP와 동일하게 먼저 구성했습니다. 서버는 Online Migration 도구로 옮기고 같은 인프라를 구성한 뒤, 비공개로 운영하며 개발팀과 이슈를 확인하고 트래픽을 단계적으로 전환했습니다. 전 과정은 GCP Terraform 코드를 Tencent Terraform 코드로 옮기는 방식으로 진행했습니다.
구현
- Terraform
- GCP
- Tencent Cloud
- Online Migration
규모 · 서버 80대 · DB 20개
GCP에서 운영 중인 서버 80대·DB 20개를 Tencent Cloud로 옮깁니다. 서비스 중단은 허용되지 않습니다.
Tencent에 네트워크와 방화벽 규칙을 GCP와 동일하게 먼저 구성합니다.
서버는 Tencent의 Online Migration 도구로 이관합니다.
같은 인프라를 구성하고 비공개로 운영하며 개발팀과 이슈를 확인합니다.
검증이 끝나면 트래픽을 단계적으로 Tencent로 전환합니다.
약 1주일 만에 서비스 중단 없이 끝납니다. 전 과정이 GCP Terraform 코드에서 Tencent Terraform 코드로 남습니다.
전체 단계 읽기
- GCP에서 운영 중인 서버 80대·DB 20개를 Tencent Cloud로 옮깁니다. 서비스 중단은 허용되지 않습니다.
- Tencent에 네트워크와 방화벽 규칙을 GCP와 동일하게 먼저 구성합니다.
- 서버는 Tencent의 Online Migration 도구로 이관합니다.
- 같은 인프라를 구성하고 비공개로 운영하며 개발팀과 이슈를 확인합니다.
- 검증이 끝나면 트래픽을 단계적으로 Tencent로 전환합니다.
- 약 1주일 만에 서비스 중단 없이 끝납니다. 전 과정이 GCP Terraform 코드에서 Tencent Terraform 코드로 남습니다.
결과
약 1주일 만에 서비스 중단 없이 이관을 끝냈습니다. 일부는 GCP에 남기고 대부분의 게임 서버와 DB를 Tencent로 옮겼으며, 방화벽 정책은 전부 검토해 다시 세운 상태로 운영했습니다.
- 80
- 이관한 서버
- 20
- 이관한 DB
- 0
- 서비스 중단
배운 점
클라우드 간 이관에서 가장 먼저 할 일은 서버를 옮기는 것이 아니라 두 클라우드의 리소스를 역할별로 짝지어 보는 일이었습니다. 네트워크, 서브넷, 방화벽, 서버의 대응표를 먼저 정리하니 GCP Terraform 코드를 Tencent Terraform 코드로 옮기는 작업이 단순해졌고, 방화벽 정책도 옮기는 김에 전부 검토해 다시 세울 수 있었습니다. 서비스를 멈추지 않는 비결도 한 번에 바꾸지 않는 데 있었습니다. 같은 인프라를 먼저 구성해 비공개로 운영하며 개발팀과 이슈를 확인하고, 트래픽은 단계적으로 넘겼습니다. 인프라는 코드로 남았지만 트래픽 전환 절차까지 코드와 런북으로 남겨야 다음 이관에서도 같은 결과를 재현할 수 있다는 점을 배웠습니다.
약 1주일 — 서비스 중단 0, 서버 80대·DB 20개