Riot Games Korea: MongoDB 선택의 이유 및 Atlas 활용

Nochi·2023년 10월 10일
1

Conf

목록 보기
1/1

Riot Games Korea의 주요 업무

  • PC방 비즈니스 운영
  • 모바일 상점 (store.leagueoflegends.co.kr)
  • 한국 게임 퍼블리싱 (계정 관리, Player Behavior)
  • 이스포츠 데이터 (LCK)

한국 PC방 문화와 시장

  • 유료화 게임들을 시작으로 PC방과 게임 업계의 협업이 증가하는 추세
  • 통계:
    • PC방 시장 점유율: 40~50%
    • 게임 동시 접속 최대: 약 80만
    • PC 동시 접속 최대: 약 20만
    • 연간 PC방 세션: 약 40억 건
  • 이러한 대규모 데이터를 관리할 엔진과 서비스가 필요

Riot Games Korea: 주어진 상황 및 요구사항

1. 플레이어 및 업주 서비스

  • 플레이어: 게임 보상 부여
  • 업주: 과금 및 기타 서비스 제공
  • 회사 내부: 회계, 통계 및 기타 데이터 제공

주의점: PC방에서는 게임을 종료하지 않고 PC를 종료하는 경우가 많아, 이러한 시스템으로 인한 오과금 발생.

2. 기능적 요구사항

  • 빠른 반응성
  • 높은 정확도

3. 팀 구성

  • 2~6명의 소규모 엔지니어 팀

4. 시스템 관련 요구사항

  • 기존 레거시 시스템 사용 중단

MongoDB 선택의 이유와 도전점

1. 데이터베이스의 기본 요구사항

  • 유연한 스키마 관리: 이벤트 발생 시마다 스키마 변화에 유연하게 대응 가능.
  • 수평적 확장 용이: 피시방 증가에 따른 데이터의 기하급수적 증가에 대응.

2. MongoDB Community on AWS EC2의 한계

  • 쿼리 성능의 문제:
    • 연간 약 40억개의 세션 관리 documents 증가.
    • 2년 반 후, Collection 내 Documents가 100억개 이상.
  • 운영 부담점:
    • 백업 문제: 매일의 cron job을 통한 백업, 복잡한 복구 과정 및 데이터 손실 위험.
    • AWS 점검: AWS EC2의 주기적인 점검, 데이터베이스 재구동 필요.
    • 버전 업그레이드: 버전의 종료 위험, 다운타임 중 업그레이드와 테스트의 어려움.

3. 추가로 필요한 기능

  • 데이터 시각화: 비즈니스 확장과 데이터 중요성 증가에 따른 stakeholder의 데이터 요구 증가.
    • Chart, Metric 필요성: 더 나은 데이터 분석 및 시각화.
    • DBA 없는 효과적 운영: 전문 DBA 없이도 높은 DB 성능 유지.

MongoDB Atlas 마이그레이션 및 이후 변화

1. MongoDB Atlas 마이그레이션

  • 구조 변화: MongoDB Atlas 채택 후 전체 DB 구조에 변화 발생.
  • 마이그레이션 과정:
    • 클러스터 생성:
      • Web UI를 통한 간편 생성.
      • API를 통한 프로그래밍적 생성도 가능.
    • 데이터 마이그레이션:
      • mongomirror 도구 사용.
      • 100억건 데이터 기준: 동기화에 10시간, oplog tailing에 6시간 소요.
    • 성능 테스트: 데이터 마이그레이션 후 성능을 테스트.
    • 데이터 검증: 마이그레이션된 데이터의 정확성 검증.
    • 컷오버:
      • 게임 서비스의 정기 점검 시간에 수행.
      • 미러링 lag이 0을 확인 후, 새 DB에 연결된 코드 배포.
      • 테일링 작업 종료.

참고: DB URI 설정 변경만으로 큰 마이그레이션 작업을 손쉽게 처리.

2. 마이그레이션 후 주요 변화 및 추가 기능

  • 운영 부담 경감:
    • Automated Maintenance: 자동화된 유지보수.
    • Automated Backups: 자동화된 백업.
    • Profiler: DB 프로파일링 도구.
    • Performance Advisor:
      • DB 성능 향상 제안 도구.
      • 인덱스 추가/제거 제안 등을 참고.
  • 도움되는 추가 기능:
    • Charts:
      • 데이터 시각화 도구.
      • 간단한 데이터 분석과 모니터링에 활용.
    • Online Archive:
      • 4년 간 150억 건의 과금 세션 데이터 보관.
      • 근 2년 데이터는 원본 DB에, 나머지는 별도 저장.
      • 약 2년(733일) 초과 문서 자동 아카이브.
      • 전체/원본/아카이브 데이터 선택 연결 가능.
      • 150억 문서를 46억건으로 경량화 및 일정 크기 유지.

MongoDB와 함께한 우리 팀의 만족 포인트


  • 우수한 기술력: MongoDB는 선두적인 DB 엔진과 기술을 보유하고 있어, 높은 성능과 안정성을 제공한다.
  • 편의성 강조: MongoDB Atlas Cloud는 다양한 편의 서비스로 개발 및 운영을 간편하게 지원한다.
  • 전문 지원: MongoDB Korea의 엔지니어 팀은 다양한 기술적 지원을 제공한다. 이에는 컨설팅, DB 마이그레이션, DB 성능 최적화 등이 포함된다.

후기

Riot Games Korea의 대용량 트래픽은 무엇이며 그것을 어떻게 관리하는지 들을 수 있어서 좋은 시간이었습니다. 대부분의 발표가 몽고디비에 어떤 기능들이 있는지 소개하는 내용이었지만 라이엇 코리아에서는 실사용 예시를 들고와서 더 와닿는 시간이었습니다.

몽고디비는 문서를 넣고 변환하는 과정이 느려서 대규모 트래픽이면서 속도가 중요한 곳에서는 잘 쓰지 않을 것으로 예상했지만 중간 과정에서 변환을 하면서 사용하면 효율이 떨어지기에 잘 사용하기 위해서는 몽고디비를 최대한 가공하지 않는 방향이 좋다는 것을 깨우치는 컨퍼런스였습니다.

0개의 댓글