현대 비즈니스 환경에서 데이터베이스의 가용성과 안정성은 성공의 열쇠입니다. Stripe는 이러한 필요를 충족시키기 위해 2023년에 총 결제량 1조 달러를 처리하면서도 99.999%의 가동 시간을 유지하는데 성공했습니다. 이 놀라운 성과의 비밀은 바로 다운타임 없는 데이터 마이그레이션을 가능하게 한 Stripe의 데이터베이스 인프라 전략에 있습니다. 오늘은 이 혁신적인 시스템의 핵심을 살펴보겠습니다.
Stripe의 DocDB: 안정적인 데이터베이스 인프라의 핵심
Stripe의 데이터베이스 인프라 팀은 DocDB라는 DBaaS(DataBase as a Service)를 기반으로 API의 기반 계층을 운영합니다. DocDB는 MongoDB Community의 확장판으로, Stripe 내부에서 구축된 여러 서비스로 구성되어 있습니다. 초당 500만 건 이상의 쿼리를 처리하며, 페타바이트 단위의 중요한 금융 데이터를 2,000개 이상의 데이터베이스 샤드에 분산하여 저장합니다. 이 시스템이 어떻게 이토록 높은 안정성을 유지할 수 있었을까요?
데이터 이동 플랫폼: 진정한 무중단 마이그레이션의 구현
Stripe의 DocDB는 ‘Data Movement Platform’이라는 고유한 시스템을 통해 무중단 데이터 마이그레이션을 가능하게 했습니다. 이 플랫폼은 대규모 데이터를 손쉽게 이동시킬 수 있으며, 마이그레이션 중에도 데이터의 가용성과 일관성을 유지합니다. 이 기술은 주로 트래픽이 급증할 때는 데이터를 분할하고, 트래픽이 낮을 때는 빈 샤드를 통합하는 방식으로 작동합니다.
1. 청크 마이그레이션 등록
마이그레이션 과정은 청크 메타데이터 서비스에서 시작됩니다. 데이터베이스 청크를 소스 샤드에서 타겟 샤드로 이동시키기 위해서는 먼저 소스 샤드의 청크를 임의의 타겟 샤드로 이동시키려는 의도를 등록합니다. 이 과정은 데이터의 무결성을 보장하며, 데이터를 빠르고 효율적으로 이동시키는 데 중점을 둡니다.
2. 대량 데이터 가져오기
이후, 대량 데이터 가져오기를 수행합니다. 대량의 데이터를 가져오는 동안, DocDB 엔진은 데이터를 정렬하여 쓰기 처리량을 최적화합니다. 이로 인해 쓰기 성능이 10배 이상 향상되었으며, 데이터의 정렬 삽입은 시스템의 효율성을 극대화했습니다.
3. 비동기 복제 및 복제 지연
데이터가 타겟 샤드에 성공적으로 이동되면 비동기 복제 시스템이 소스 샤드의 데이터를 타겟 샤드로 복제합니다. 복제 과정에서 소스 샤드의 성능 저하를 방지하기 위해, 소스 샤드의 oplog 이벤트를 사용하여 데이터를 복제하며, 타겟 샤드의 성능 저하를 최소화합니다.
4. 트래픽 전환
마이그레이션이 완료되면, 청크 메타데이터 서비스가 청크 경로를 타겟 샤드로 업데이트합니다. 이 과정은 불과 몇 초 만에 이루어지며, 서비스 중단 없이 트래픽이 새로운 샤드로 전환됩니다. 이는 Stripe가 매일 수백만 건의 결제를 처리할 수 있는 이유 중 하나입니다.
결론: Stripe의 무중단 마이그레이션 성공 요인
Stripe의 DocDB와 Data Movement Platform은 온라인 데이터베이스 마이그레이션의 새로운 기준을 세웠습니다. 99.999%의 가동 시간을 유지하며, 서비스 중단 없이 데이터를 이동시키는 능력은 Stripe가 글로벌 결제 시장에서 성공을 거둘 수 있었던 핵심 요인 중 하나입니다. 이 시스템은 향후 데이터베이스 관리와 마이그레이션의 중요한 참조 모델이 될 것입니다.
참고 자료: Stripe, “How Stripe’s document databases supported 99.999% uptime with zero-downtime data migrations”