출처: https://dev.classmethod.jp/articles/reinvent-2021-report-gam302
AWS re:Invent 2021에서 발표된 RiotGames의 Valorant라는 인기 FPS 게임의 서버 배치 경험 세션에 대한 정리이다.
게임 디자인을 달성하려는 목표:
지연에 따른 공정성 문제
지연에 따라 '들여다보는 쪽(Peaker) 유리' 라는 게임 내 밸런스 문제가 있었다.
FPS 용어로 Peaker는 '벽이나 차폐물에서 얼굴이나 몸을 내어서 들여다보는 쪽', Holder는 '에임하면서 적을 기다리는 쪽'.
Holder는 기본적으로 움직이지 않고, 위치 정보가 변하지 않지만 Peaker는 잠깐 보다가 바로 숨으므로 지연 영향 서버측 처리에서 Holder에 보내는 Peaker의 위치는 조금 전의 정보이므로 조금 전(예를들면 100ms)의 정보는 적이 눈앞에 있다는 것을 받았지만, 현재는 적이 그 위치에 있지 않은 타이밍에 사격하려고 하는 Holder에게는 매우 불공평하다.
두 가지 해결책이 있습니다.
이동 중 플레이어의 사격 정밀도를 줄이는 것은 대응하기 쉽지만, 지연을 해소하는 것은 어려움이 있다.
지연을 억제하는 방법
Riot Games가 Valorant 게임 네트워크의 목표는 90%의 사용자 지연을 35ms 이하로 하는 것이다.
일반적으로 두 가지 방법이 있다.
서버에는 세 가지 옵션이 있다.
AWS Outposts는 거의 모든 데이터 센터, 공동 위치 공간 및 온프레미스 시설에 동일한 AWS 인프라 및 서비스, API, 도구를 제공하여 진정한 일관성 있는 하이브리드 경험을 제공하는 완전 관리형 서비스이다. AWS Outposts는 로컬 시스템에서 상호 종속성이 있는 애플리케이션 마이그레이션, 데이터 레지던시, 로컬 데이터 처리 또는 온프레미스 시스템에 낮은 대기 시간으로 액세스해야 하는 워크로드에 이상적이다.
공식 출시 전에 약 3개월의 베타 테스트를 실시했다(AWS 서버 및 Riot 자사 데이터 센터). 그래서 많은 데이터를 수집하고 분석한 결과 '90%의 사용자 지연을 35ms 이하로 한다' 라는 목표는 달성할 수 없었다.
물리적 제한이 있었기 때문에 미국 Dallas와 Atlanta에 AWS Outpost 를 추가로 배치하여 미국 중남 지역의 사용자 지연을 50ms에서 20ms 정도로 했다. 그리고 유럽에도 Madrid와 Warsaw에도 AWS Outpost 를 배치해서, Poland와 Spain의 사용자의 지연은 40ms 정도에서 20ms가 되었다.
평범한 도시에 위치한 서버와 통신하려면 먼 지역의 경우 공공 네트워크를 거쳐야 하기 때문에 매우 느리다. AWS Global Accelerator는 공공 네트워크를 거치지 않고 인터넷 통신 경로를 최적화하여 뒤측의 가까운 지역의 플레이어를 연결하므로 고정 IP라도 전 세계 여러 리전이 연결 가능하다. 자사의 데이터 센터가 AWS Global Accelerator에 제공되는 IP를 실드로 하여, DDoS 공격도 차단해 준다.
Riot Games는 'AWS Global Accelerator'와 'Riot Direct'를 동시에 운영하여 플레이어를 최적의 경로로 만들고, 둘 다 동일한 서버 풀에 연결하기로 결정했다. 그 결과, 아시아에 22%의 사용자가 35ms 지연 클럽에 추가 되었고, 유럽의 저지연 사용자가 9%가 늘어나 전체 85%의 지연이 35ms 이하가 되었다.
현재 아직 최적화 작업을 진행하고 있다.
마지막
네트워크 최적화 작업에 대해 배운 내용: