본문으로 건너뛰기

요금 최적화 가이드

DB 읽기/쓰기 요금은 어떤 기준으로 발생하나요?

DB 이용이 발생하는 경우 해당 기능의 DB 이용량(읽기, 쓰기 처리량) + 유저 인증 처리량 (0.5~2 읽기/쓰기 처리량)이 발생합니다. 관련한 보다 자세한 정보는 다음과 같습니다.

  1. 읽기/쓰기 작업을 수행할 때, 아래 표를 기준으로 처리량이 발생되어 산정되며, 뒤끝 DB에 저장되는 모든 데이터는 인덱스와 인증 정보 등의 추가되어 row 당 약 200 바이트가 증가합니다.
    데이터 크기처리량
    읽기 (일반 조회)4KB 미만
    4KB
    0.5
    1
    쓰기 (일반 쓰기)1KB 이하1
    읽기 (트랜잭션)4KB 이하2
    쓰기 (트랜잭션)1KB 이하2
  1. 기능의 종류에 관계없이 모든 호출 시 유저 인증을 실시하고, 이때 0.5 ~ 2의 읽기/쓰기 처리량이 각각 발생합니다.

하나의 테이블에 모든 데이터를 저장해도 괜찮을까요?

운영하시는 게임에 맞게 테이블 설계를 최적화하면 요금 절감이 가능합니다.

  1. 하나의 테이블에 모든 데이터를 저장하는 구조
    캐주얼 게임에서 주로 사용하는 구조로, 하나의 테이블에 모든 정보를 저장하여 관리합니다.
    개발이 단순해지는 장점이 있지만, 읽기/쓰기 사용량이 필요 이상으로 많아지기 때문에 유저의 정보가 많아지는 유형의 게임에는 추천하지 않습니다.
  2. 테이블별로 적절히 데이터를 나누어 저장하는 구조
    유저의 데이터를 종류에 따라 적절히 나누어 관리하며, 필요한 데이터만을 읽고 쓸 수 있어서 효율적인 관리가 가능합니다.
    단, 테이블을 지나치게 많이 나누어 관리하는 경우에는 호출 요금이 크게 증가할 수 있기에 이 또한 적절한 관리가 필요합니다.

 

게임정보/유저데이터 일반 함수 대신, 트랜잭션 조회/쓰기 함수만 사용해도 될까요?

사용 방법에는 제한이 없습니다.
단, 트랜잭션 조회/쓰기의 경우 게임정보/유저데이터 일반 함수 대비 DB 처리량이 2배로 발생하기에, 데이터의 구조 및 중요도, 사용 빈도에 따라 두 함수를 적절히 사용하는 것을 권장드립니다.