급성장을 이루고 있는 소셜 게임 기업 중 하나 GREE 주식 회사의 세션.

「대규모 소셜 게임 만드는 방법 ~ 60분으로 밝혀지는 서버 사이드 기술~」에서는 GREE 주식회사 후지모토 마키씨, GREE 주식회사 마스야마 카즈유키씨가 등단 하여 온라인 게임과 다른 소셜 게임의 서버 구성 등을 말하였다.

GREE20106월 시에 있어서 회원 수는 2059만명, 페이지 뷰는 월간 357, 데일리에 11, 서버의 구성은 수 천대, 그 대부분이 x86계 서버를 이용하고 있다라는 것. 대체로 최대 동시 접속수는 1, 서버로부터의 응답 시간이 0.2초가 된다. 서버 트래픽의 물결은 온라인 게임의 물결이 밤부터 심야인 것에 비해 휴대폰이 메인이 되는 GREE에서는 밤부터 심야에 더하여 아침 8시 전후, 12시 전후에 증가하는 경향이 있다고 말해지고 있었다.

플레이어층은 코어 게이머가 아니고, 캐쥬얼 게이머나 게임을 플레이 했던 적이 없는 사람이 즐기고 있다고 한다.

온라인 게임과 소셜 게임의 서버 구성의 차이로서는 전용 클라이언트를 필요로 하는 온라인에 대해 소셜에서는 Web 브라우저가 있으면 좋다고 하는 차이를 시작하여 Proxy에 대해 LVS(Linux Virtual Server)Proxy, Frontend 서버가 Web서버, BackendDataBase 서버라고 하는 구성이 된다. 결론으로서는 그만큼의 차이는 없다고 한다.

마스야마씨에 의하면 예를 들어 「낚시스튜디오」온라인 게임의 구성으로 설명 했을 경우 게임중의 낚시터가 이른바 월드 서버로서 동작하기 때문에 서버의 자원에 의해서 낚시터의 인원수의 한계가 있다고 하는 문제나 그 때문에 Backend 서버를 확장이 필요하다라고 말해지고 있다.

그럼 GREE에서 구성되어 있는 것은 어떻게 되어 있는가? 라는 부분에서는 전술의 브라우저를 클라이언트로 하고, LVS+Proxy로 제일 부하가 낮은 Web 서버에 처리를 할당하여 리퀘스트 때마다 유저 데이터를 데이터베이스 서버에 저장이라고 하는 흐름이 된다고 한다.

단지 기록 매체인 디스크상에 기록하는 Write 부분을 분산하거나 가능한 한 디스크에 쓰지 않게 하는 궁리가 필요하다고 한다.
구체적으로는 디스크로의 부담을 줄이기 위해 MySQL 이라면 replication 기능을 사용하고, 데이터 베이스 서버의 Slave를 늘려, 읽기 액세스의 부하를 분산한다고 하는 방법으로부터 메모리 상에 작성하는 파일 시스템(tmpfs)으로 데이터를 운용. memcached 호환의 분산Key Value Store(KVS) 를 작성/이용하여 데이터 보존에 대한 디스크 액세스 회수를 줄였다고 한다.

, 커뮤니티의 소식 기능 등 멤버에게 메일을 일제 전달하는 기능에서는 일제 송신을 실시하지 않고, Queue() 서버를 설치하여 비동기 처리를 실시하면서 차례차례 메일 송신을 해 나가는 방법을 취하고 있다고 한다. 그 외에도 과금 아이템의 처리에서는 사이버 머니인 포인트의 인출 전에 아이템을 건네주거나, 고부하에 의해서 데이터가 로스트 했을 경우 등을 근거로 하여 로스트 했을 경우는 로그를 참조하여 후일 보완하는 것으로 최대한 유저에게 불이익이 가지 않게 하고 있다고 한다.

그 외에도 데이터 베이스 서버에서 어떠한 장해가 발생했을 경우나, 서버 OS 등의 버전 업을 실시할 때는 Master 측을 정지하고 Slave를 마스터로 올린다고 하는 수법을 취하는 것으로 서비스를 정지하는 일 없이 이행 한다고 한다.

 

 

출처 : http://www.gamebusiness.jp/article.php?id=2095

 

 

 

by 흥배 2011.02.07 13:41