피드로 돌아가기
일 평균 30억 건을 처리하는 결제 시스템의 DB를 Vitess로 교체하기 - 2. 개발 및 운영기
LINE Engineering
Database

일 평균 30억 건을 처리하는 결제 시스템의 DB를 Vitess로 교체하기 - 2. 개발 및 운영기

LINE 결제팀이 Vitess 마이그레이션 과정에서 gRPC 프로토콜의 CPU 오버헤드 문제를 발견해 MySQL 프로토콜로 전환

2025년 8월 1일7intermediate

Context

LINE Billing Platform은 일 평균 30억 건의 결제를 처리하는 핵심 시스템으로, 기존 Nbase-T 데이터베이스의 한계를 극복하기 위해 Vitess로의 마이그레이션을 진행했습니다. 마이그레이션 과정에서 애플리케이션 서버가 Vitess의 VTGate와 통신할 때 사용할 프로토콜을 선택해야 했습니다.

Technical Solution

  • gRPC 프로토콜 기반 개발 시도: Vitess 공식 Git 리포지터리의 Java grpc-client 모듈을 활용해 초기 개발 진행
  • gRPC 프로토콜의 문제점 식별: 성능 테스트 중 간헐적 'http2: frame too large' 에러 발생 및 CPU 사용량 대폭 증가 관찰
  • 쿼리 결과 변환의 번거로움: gRPC 프로토콜 사용 시 쿼리 결과를 Java 객체로 수동 변환하는 과정이 복잡함
  • Vitess 공식 커뮤니티 조사: Slack 채널을 통해 gRPC 사용 시 CPU 오버헤드 확인 및 MySQL 프로토콜 권장 받음
  • MySQL 프로토콜로 전환: Vitess 측의 권장사항에 따라 최종적으로 MySQL 프로토콜을 활용한 애플리케이션 개발 진행

Key Takeaway

대규모 트래픽을 처리하는 데이터베이스 마이그레이션 프로젝트에서는 프로토콜 선택 단계에서 초기 가정을 성능 테스트로 검증하고, 오픈소스 프로젝트의 커뮤니티 가이드를 참고하여 방향을 결정하는 것이 개발 리스크를 줄일 수 있습니다.


Vitess로의 데이터베이스 마이그레이션을 계획하는 팀은 고성능 RPC 프로토콜(gRPC)보다 MySQL 프로토콜 선택으로 시작하면 안정적인 개발과 운영을 기대할 수 있으며, 프로토콜 변경이 필요할 경우 성능 테스트 단계에서 조기에 발견하고 전환할 수 있습니다.

원문 읽기