구글 클라우드 게임 서버 서비스로 멀티플레이어 게임 스케일링 간소화


전 세계적으로 점점 더 많은 플레이어가 멀티플레이어(multiplayer) 게임을 선호하게 되면서 개발자는 증가하는 수요에 대응하고 탁월한 플레이 경험을 선사하면서 복잡한 글로벌 인프라를 관리하도록 게임을 스케일링해야 하는 과제에 직면했다.





이러한 문제점을 해결하기 위해 많은 게임사가 고액의 비용으로 자체 솔루션을 구축해 관리하거나 개발자의 선택과 통제 권한을 제한하는 사전 패키지 솔루션을 사용하고 있다.





2020년 초 구글 클라우드는 오픈소스 게임 서버 스케일링 프로젝트인 아고네스(Agones)를 기반으로 구축된 관리형 서비스인 게임 서버 서비스(Game Servers)의 베타 버전 출시를 발표했다. 게임 서버 서비스는 쿠버네티스(Kubernetes)를 컨테이너(container) 오케스트레이션(orchestration)에 사용하고 아고네스를 게임 서버 플릿(fleet)에 대한 오케스트레이션과 라이프사이클 관리에 활용한다. 이를 통해 개발자에게 더욱 현대화되고 단순한 게임 관리 및 스케일링 패러다임을 제공한다.





이제 게임 프로덕션 워크로드에서 게임 서버 서비스를 보편적으로 이용할 수 있게 되었다. 게임 서버 서비스는 인프라 관리를 단순화해 개발자가 플레이어를 위한 더 나은 게임을 만드는 데 자원을 집중할 수 있도록 지원한다.





클러스터와 렐름





게임 서버 클러스터(cluster)는 게임 서버 서비스의 가장 기본적인 개념으로 단순하게는 아고네스를 실행하는 쿠버네티스 클러스터를 뜻한다. 사용자가 클러스터를 정의하면 그 클러스터는 렐름(realm)에 추가되어야 한다.





렐름은 게임 클라이언트의 관점에서 결합력 있는 유닛으로 취급할 수 있는 게임 서버 클러스터의 사용자 정의 그룹이다. 개발자는 원하는 방식으로 렐름을 정의할 수 있지만 일반적으로 각 게임의 레이턴시(latency) 요건에 따라 렐름의 지역별 분포가 결정된다. 이러한 이유로 대부분의 게임은 대륙별로 렐름을 정의한다. 예를 들어 미국, 영국, 일본 등 주요 플레이 지역에서는 각각 북미, 유럽, 아시아 지역의 플레이어에게 서비스를 제공한다.





게임이 어떤 식으로 어느 지역에서 성공을 거두는 것과 관련 없이 게임의 고가용성과 원활한 스케일링 경험을 보장하기 위해서는 단일 렐름에서 여러 클러스터를 실행해야 한다.





배포와 구성





렐름과 클러스터를 정의한 후 배포(deployments)와 구성(configs) 개념을 사용해 게임 소프트웨어를 롤아웃(roll out)할 수 있다. 게임 서버 배포는 전 세계 게임 서버 클러스터 어느 곳이든 배포할 수 있는 게임 서버 소프트웨어의 글로벌 기록이다. 게임 서버 구성은 클러스터 전체에 출시될 게임 서버 버전의 세부 정보를 지정한다.





이러한 개념을 정의하면 아고네스와 게임 서버 서비스 사이의 뚜렷한 주요 차이점이 발생한다.





첫째, 사용자 지정 오토스케일링(auto-scaling) 정책을 정의할 수 있는 권한이 부여된다. 렐름과 클러스터로 세분화된 게임은 사용자가 직접 정의한 스케일링 정책과 함께 개발자에게 정확성, 제어, 단순화 등 이상적인 조합을 제공한다. 예를 들어 지역별 일간 게임 패턴에 맞게 더 많은 서버를 자동으로 프로비저닝(provisioning) 하는 정책을 렐름 수준에서 지정하거나 인게임(in-game) 글로벌 이벤트에 대비해 전 세계적으로 동시에 모든 클러스터를 스케일업할 수 있다.





둘째, 배포와 함께 특정 렐름을 대상으로 새로운 게임 서버 바이너리(binaries)를 전 세계 다른 지역으로 롤아웃 할 수 있는 유연성을 제공한다. 이를 통해 어떤 렐름에서든 새롭게 롤아웃한 소프트웨어의 A/B 테스트 또는 카나리(canary) 테스트를 진행할 수 있다.





마지막으로 구글 클라우드는 게임 서버 서비스를 최대한 사용자 맞춤형으로 구축하고 있지만 기술만으로 게임의 성공을 보장할 수 없다는 점을 인지하고 있다. 구글 클라우드의 게임 전문가는 성공적인 게임 출시를 준비하기 위해 고객 팀과 협력한다. 구글 클라우드는 게임 서버 서비스를 지원해 게임이 장기적으로 끊임없이 성장할 수 있도록 지원한다.





게임용 오픈 아키텍처 구축





구글 클라우드는 게임 개발자에게 제어 능력이 가장 중요하다는 점을 알고 있다. 개발자는 언제든지 게임 서버 서비스에서 벗어나 아고네스 클러스터를 직접 관리할 수 있다. 또한 언제나 쿠버네티스 클러스터에 직접 접속할 수 있기 때문에 아고네스 설치에 게임별 추가사항을 원하는 대로 넣을 수 있습니다.이처럼 개발자는 항상 제어 권한을 가진다.





선택권을 갖는 것도 중요하다. 현재 게임 서버 서비스는 구글 쿠버네티스 엔진(Google Kubernetes Engine)에서 실행되는 클러스터를 지원하며, 구글 클라우드나 다른 클라우드 혹은 온프레미스(on premise) 등 어떤 환경에서도 클러스터를 실행할 수 있는 기능을 개발 중이다.





개발자는 하이브리드 및 멀티 클라우드로 플레이어에게 적합한 곳 어디서든 자유롭게 게임 서버 워크로드를 실행할 수 있다. 또한 적합한 하이브리드 및 멀티 클라우드 환경 전반에서 글로벌 플릿(fleet)의 비용을 최적화하기 위해 게임 서버 서비스의 맞춤형 스케일링 정책을 이용할 수 있다.





일본 게임개발사 스퀘어에닉스(Square Enix)의 엘리엇 고잔스키(Elliot Gozansky) 아키텍처 부문 책임자는 “스퀘어에닉스는 오랫동안 구글 클라우드를 사용한 고객으로서 구글 클라우드 게임 서버 서비스의 발전을 가까이서 지켜보고 있다”며 “컨테이너와 멀티 클라우드 기능은 미래의 대규모 멀티플레이어 게임 개발 시 매우 매력적인 기능이다. 구글 클라우드는 전 세계로 스케일링 가능하고 유연하고 개방적인 솔루션을 선보이며 게임 개발자에 대한 지속적인 노력과 헌신을 기울이고 있다”라고 밝혔다.





게임 서버 서비스는 2020년 말까지 무료로 제공되며 고객은 쿠버네티스 클러스터 사용에 대해서만 비용을 지불하게 된다.





게임 서버 서비스에 대한 더 자세한 내용은 구글 클라우드 게임 서버 서비스 제품 페이지나 빠른 시작 가이드, 유튜브 영상에서 확인할 수 있다. 구글 클라우드 넥스트 ’20: 온에어에서는 클라우드에서 대규모 글로벌 게임 출시를 지원하는 솔루션 세션을 제공한다. (구글 클라우드 넥스트 ‘20: 온에어 무료 등록 링크) [테크수다 Techsuda]

Newsletter
디지털 시대, 새로운 정보를 받아보세요!
세미나