6월 27일 강남에서 ‘2023 게이밍 온 구글 클라우드’ 컨퍼런스가 열렸다. 게임업계가 활용할 수 있는 클라우드 AI 솔루션을 소개하고 설명하는 이날 자리에서 김성현 구글클라우드 엔지니어는 ‘게임 회사에 다녔을 때 알았으면 좋았을 구글 클라우드의 기능들’이라는 제목으로 강연에 나섰다.
김성현 엔지니어는 넥슨에서 게임 이력을 시작해 라이엇, 블리자드에서 시스템 엔지니어, 데브옵스 엔지니어, 사이트 릴라이어빌리티 엔지니어, 라이브 오퍼레이션스 엔지니어 등 직무를 거쳐 구글클라우드에 입사했다.
구글클라우드 입사 후 게임사 시절을 돌아보니, 당시 라이브 서비스 운영에서 활용했다면 더 나은 고객 경험에 도움이 되었을 만한 서비스들이 많이 눈에 띄었다고 그는 말한다. 서버, DB, 데이터 분석 등 세 개 분야에서 활용될 수 있는 구글클라우드 서비스는 무엇인지 알아보자.
처음 소개할 서비스는 아고네스(Agones)다. 매치 시작에서 종료까지의 게임 루프(game loop)가 존재하는 일반적인 게임 서비스들은 대부분 매치메이킹을 통해서 사용자들을 배정받고, 설정된 게임 서버로 사용자를 배치해서 게임을 시작한 뒤, 매치가 종료되면 서비스가 터미네이션 되는 방식을 취한다.
여기서 VM을 이용해 쉬운 배포를 할 수 있고, 요즘 게임사들은 흔히 테라폼이나 IaaS 코드를 이용해 서버를 배포하는데, 그 뒤에는 여전히 설정하거나 처리할 일이 많다. 죽었어야 할 인프라가 살아있거나 그 반대가 될 수도 있고, 로드가 잘못 배분되기도 한다.
아고네스 서비스는 게임 서버 컨테이너를 올려 데디케이티드 서버를 배포, 확장하고 오케스트레이션할 수 있는 도구다. 현재 꽤 많은 게임사가 이미 아고네스 서비스를 사용 중이이다. 김 엔지니어는 “과거에 아고네스를 미리 알았다면 진작 쿠버네티스 위에서 아고네스로 서버를 배포하지 않았을까 생각한다”고 전했다.
김성현 엔지니어가 소개하는 두 번째 솔루션은 오픈소스 게임 서버 프록시 퀼킨(Quilkin)이다. 대형 라이브서비스 게임들을 운영하던 라이엇, 블리자드에서 근무 당시 그는 DDoS, 드롭(Drop) 핵 등을 통한 다양한 공격을 받았다. 퀼킨은 논트랜스페어런트(Non-transparent) UDP 프록시를 통해 서버를 이같은 공격으로부터 보호하는 솔루션이다.
랭크 게임 시스템을 갖춘 거의 모든 게임에는 드롭 핵이 존재한다. 드롭 핵이란 랭크전에서 패배가 예견될 경우, 자신이 접속한 서버에 트래픽을 발생시켜 서버가 응답하지 못하게 해 서버를 폭파함으로써 랭크 게임 점수가 유지되도록 하는 핵이다.
이때 퀼킨을 사용하면, 실제 서버의 IP와 포트를 알 수 없다. 따라서 드롭 핵을 사용하더라도 프록시 서버가 트래픽을 받아 실제 서버는 안전하다. 더 나아가 일종의 허니팟 역할도 할 수 있다. 프록시에 공격 데이터가 누적되면 이를 이용해 방어 코드를 짤 수 있는 것. 물론 혹자는 프록시 서버를 공격하는 방법도 있다고 생각할 수 있다. 하지만 퀼킨 프록시 서버는 토큰이 없는 트래픽을 배제하는 방식으로 이를 필터링할 수 있다고 김 엔지니어는 설명했다.
마지막으로 아고네스와 퀼킨은 모두 대시보드를 제공하기 때문에 별도 개발 없이 데이터를 수집하기 용이하다. 그리고 후술할 ‘빅쿼리’에서 이를 이용해 데이터를 분석할 수도 있다.
모든 게임 서비스는 데이터베이스 지연현상에 영향을 받는다. 사용자가 게임에 몰릴때 데이터베이스에서 이를 처리하지 못한다면 딜레이가 발생하고, 다시 그 레이턴시 때문에 사용자가 들어올 수 없는 현상이 발생한다.
이를 해결하기 위해 쓰로틀링을 적용하거나 로깅 큐를 거는 등 해법들을 시도하지만, 그럼에도 불구하고 결국 데이터베이스 성능이 부족하다면 게임플레이에 제약이 걸리게 된다.
특히 요즘 늘어나고 있는 멀티플랫폼 게임 서비스에서 더욱 발생하기 쉬운 현상이다. 크로스플랫폼 서비스를 구현하려면 다양한 OS에 접근해야 하고, 여러 지역에 배포가 이뤄져야 하기 때문이다.
클라우드 스패너(Cloud Spanner)는 구글이 초기부터 사용하다가 대중에게 공개한 서비스다. 유튜브, 구글 서치 등에서 사용 중이다. 멀티 리전 서비스로서, 여러 곳에서 커밋해서 받을 수 있다는 점이 핵심이다.
또한 100% 구글에서 운영하기 때문에 메인터넌스 윈도우가 없다. 패치나 점검의 필요성이 없고 확장도 자유롭다. 멀티 리전으로 사용할 경우 접속할 수 있는 레플리카의 수도 늘어나기 때문에 더 확장성있고 접근성 높게 여러 지역에서 접속해서 커밋할 수 있다.
실제 소니 산하 게임사 등에서 클라우드 스패너를 이용해 개발에 임하고 있고, 이때 실제로 글로벌하게 DB를 사용하게 된다고 김성현 엔지니어는 설명했다.
마지막은 데이터 분석 솔루션이다. 데이터 분석은 유저 리텐션 향상, 이탈 방지 등에 필수적이다. 김성현 엔지니어가 넥슨에 재직할 당시에는 여러 DBA(Database Administration)들이 데이터를 분석했다면, 최근에는 BI 조직 인텔리전스랩이 만들어져 전담하고 있다.
구글클라우드의 데이터 분석 솔루션 빅쿼리의 특징은 ‘심리스’다. 김성현 엔지니어는 “현업에 있을 때는 나 역시 ‘심리스’라는 말을 별로 안 좋아했다. 어느 서비스에나 붙는 설명 같았기 때문이다. 하지만 구글클라우드 입사 후 비로소 ‘심리스’의 의미를 알게 된 것 같다”고 전했다. 빅쿼리는 구글클라우드 여러 제품의 수많은 데이터를 모아 머신러닝을 통해 분석하고, 다시 이 데이터를 다른 곳에서도 재사용할 수 있다.
최근 프리뷰로 공개된 빅쿼리의 신규 기능도 있다. 생성형 AI를 활용한 ‘텍스트 바이슨’이다. 이를 이용하면, 게임서비스로부터 수집된 정보에 대해 자연어로 질문을 입력, 분석 결과를 받아볼 수 있다는 설명이다.
이처럼 빅쿼리를 이용하면 게임에서 발생한 수많은 이벤트 데이터, 사용자 데이터, 상점 데이터 등을 정제, 혹은 직접 저장한 뒤, 머싱러닝을 진행하거나 대시보드화함으로써 데이터 분석에 많은 도움을 얻을 수 있다고 김성현 엔지니어는 전했다.