티스토리 뷰

King's Legion, Dungeon Poker 서버를 내리다.


2015년, 3월, 5월에 각각 오픈한 Dungeon Mason (a.k.a Gitul) 팀의 게임을 내렸다. 대략 5000명, 500명의 가입자가 있었으며, 지난 10개월정도는 DAU 1~2 를 꾸준히(!) 유지하고 있었다. (아무도 안쓴다는 이야기). 대략 매월 서버 비용으로 10만원정도가 나가고 있었으며,아마존의  m3.medium 한 대와 Redis 서비스하나로 운영되고 있었다.


나조차 실로 작년 6월 이후로는 접속조차하지 않았으나, 어떤 레퍼런스가 필요할지 몰라 유지하고 있었던 것을 더 이상 의미 없어 내리게 됐다.

마지막으로 들어가 소스들을 확인 한 바로는 내가 이 코드를 작성했었나 싶을 정도로 잘 기억나지 않는 것도 있었다. 그래도 기억을 위해서라도 기록을 하자면,


* Node.js 로 만들어진 Game API Server 데몬 하나, 이용자간 게임을 중계하기 위한 실시간 게임 데몬 두 개, A.I 로봇 데몬 한 개.


위 조합으로 한 개의 King's Legion을 담당하고, 같은 조합 하나를 더 두어 Dungeon Poker를 담당시켰다. 이 모든 데몬들을 m3.medium에서 운영했다.

그리고, Leader board 운영을 위해 Redis 서비스를 하나 돌렸으며, DB로는 MySQL 5.6을 사용했다. t2.micro 사이즈로 운영서버를 돌렸다.

서버는 접속자가 너~무 없는 관계로 펑펑 놀고 있었으며, 적절한 메모리가 필요했기에 m3.medium은 필요로 했었다.


* 로그인과 인벤토리 관리 Daily present는 모두 일반 웹서버로 동작하는 api 서버로 구현하였으며, 최대 4인이 하나의 방에서 실시간으로 하는 게임을 위해서는 Node.js + Websocket 기반으로 만들어졌다. 실시간 게임 데이터는 단지 메모리를 사용했을 뿐이며, 게임 서버와 api 서버간 메시지 교환은 Redis의 Publish/Subscribe 기반으로 중계하였다.


* 또한 Redis 서버는 ZRANK를 이용하여 각 리그당 주별 리더보드를 계산하기 위해 사용하였다.


* 로봇 서버는 일반 사용자가 접근하는 것과 똑같은 프로토콜로 게임서버에 Websocket으로 접속하여 운영되었으며, 동시에 30기가 운영되었다. 초반 붐업을 위해 도입하였으나, 오픈빨이후 하락하여서 내릴 여유(?)가 없었다. (로봇임이 너무 드러나는지라 아마 더 안되었으려나?)


서버들이여. 비록 그대들은 세상에 물리적으로 존재하는 가상의 서버였음에도, 우리의 사업을 오픈하는데 충분하였노라.

다시 그대들을 깨운다면, 그 때는 아마 과거에 대한 회상 때문이리라.

고이 잠에 드시기를....



반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함