데브시스터즈, 쿠키런: 킹덤 메인 DB로 CockroachDB 채택… 분산 환경 최적화 사례 공개
핵심 내용
데브시스터즈가 쿠키런: 킹덤의 메인 DB로 CockroachDB를 채택해 수평 확장과 장애 대응력을 확보했다.
자세히 보기
데브시스터즈는 모바일 게임 쿠키런: 킹덤의 메인 데이터베이스로 CockroachDB를 운용 중이다. Write-Heavy 워크로드에 적합하고 이용자 급증 시 빠른 수평 확장이 가능해야 하는 요구사항을 충족하기 위해 MySQL, PostgreSQL, NoSQL 등 다양한 후보를 검증했다.
성능 및 확장성 검증
DynamoDB, Aurora, CockroachDB를 대상으로 p50/p99 레이턴시와 확장성을 비교한 결과, CockroachDB가 p99 레이턴시에서 가장 우수한 성능을 보였다. Aurora는 수평 확장 한계가 있었으며, DynamoDB는 Hot Partition 관리가 필요했다. CockroachDB는 노드 추가만으로 확장이 가능하고 무중단 운영이 가능하다는 점에서 최종 채택됐다.
아키텍처 및 운영 전략
CockroachDB는 PostgreSQL 프로토콜을 지원하고 모든 트랜잭션에서 직렬화 격리 수준을 보장한다. 데이터는 Range 단위로 분할되어 여러 노드에 복제되며, Raft 합의 알고리즘을 통해 일관성을 유지한다. MVCC를 적용해 시간 여행 쿼리(Time Travel Query)를 지원하며, 이는 리드 부하 분산에 활용된다.
핫스팟 방지 및 멀티 리전 배포
게임 런칭 초기 급격한 트래픽 유입으로 인한 Hot Range 발생을 방지하기 위해 Primary Key에 UUID나 랜덤성을 적용하거나 Hash-sharded index를 사용하는 것이 권장된다. 또한, Locality 플래그를 설정해 각 Range의 복제본이 서로 다른 가용 영역(AZ)에 분배되도록 구성해야 데이터 소실 위험을 줄일 수 있다. 데브시스터즈는 초기 Locality 미설정으로 장애를 경험한 후 이를 개선한 사례를 공유했다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.