Documentation index for AI agents

비용 최적화

GS2 이용 요금을 최적화하기 위한 설계 가이드

GS2는 종량제 요금제를 채택하고 있기 때문에 게임 설계에 따라 이용 요금이 크게 달라질 수 있습니다. 이 섹션에서는 성능을 유지하면서 비용을 억제하기 위한 설계 포인트를 설명합니다.

1. API 호출 횟수 절감

GS2 요금에서 큰 비중을 차지하는 것이 API 요청 수입니다.

SDK의 캐시 메커니즘 활용

GS2 SDK에는 캐시 메커니즘이 내장되어 있습니다. 동일한 데이터를 짧은 시간에 여러 번 가져올 경우, 서버에 요청을 보내지 않고 캐시에서 반환하도록 설계되어 있습니다. SDK 각 메서드의 FutureAsync 버전을 사용할 때는 가능한 한 고수준 API(Domain 객체를 통한 접근)를 사용해 주세요.

한꺼번에 가져오기·갱신하기

예를 들어 여러 아이템의 소지 수량을 가져올 경우, 개별적으로 API를 호출하는 것이 아니라 인벤토리 전체를 한 번에 가져오는 편이 요청 수를 줄일 수 있습니다.

2. GS2-Deploy를 통한 적절한 리소스 관리

불필요한 네임스페이스나 리소스가 남아 있으면, 미미하더라도 스토리지 요금이나 관리 비용이 계속 발생하는 경우가 있습니다. 개발 환경이나 검증 환경은 필요 없어지면 GS2-Deploy의 스택을 삭제함으로써 관련 리소스를 일괄로 정리할 수 있습니다.

3. GS2-Script의 실행 효율

GS2-Script의 실행 요금은 실행 시간에 따라 변동됩니다.

  • 효율적인 코드: 반복문 내에서 불필요한 API 호출을 피하는 등, Lua 스크립트 자체의 효율을 높여 실행 시간을 단축해 주세요.
  • 외부 통신 최소화: http.get 등의 외부 통신은 실행 시간을 늘리는 요인이 됩니다.

또한 메모리 사용량은 요금에 직접 영향을 미치지는 않지만, 사용 가능한 메모리 용량에는 제한이 있다는 점에 유의해 주세요.

4. 로그와 분석 활용

각 마이크로서비스의 네임스페이스 설정에서 GS2-Log를 연동하면, 각 마이크로서비스의 액세스 로그(요청·응답 내용)를 수집할 수 있습니다. 이를 통해 특정 기능이 예상보다 많은 요청을 발생시키고 있지 않은지, 어떤 API가 비용 요인이 되고 있는지를 상세히 분석하여 최적화에 활용할 수 있습니다.