멀티 플레이어 게임 설정에서 사용자 정의 라우팅 가속기를 사용하여 매치 메이킹 결과와 같은 애플리케이션 로직을 기반으로 트래픽을 특정 게임 서버 인스턴스로 직접 라우팅하여 플레이어 연결을 최적화 할 수 있습니다. 이 접근 방식은 대기 시간을 향상시키고 지터를 줄이며 AWS Global Accelerator의 개인 네트워크 및 정적 IP 주소를 활용하여 플레이어 경험을 향상시킵니다.
멀티 플레이어 게임에서 사용자 정의 라우팅 가속기 사용 예
1. 게임 서버 및 서브넷 설정
하나 이상의 VPC 서브넷 내에서 Amazon EC2 인스턴스에서 실행되는 게임 서버가 있다고 가정합니다. 각 인스턴스는 여러 게임 세션을 호스팅하며 각각의 다른 포트에서 듣습니다. 예를 들어, 두 개의 EC2 인스턴스가 개인 IPS 10.1.1.1 및 10.1.1.2의 동일한 서브넷에서 실행 중일 수 있으며, 각각 TCP 포트 80, 81 및 82의 게임 세션을 제공합니다.
2. 사용자 정의 라우팅 가속기를 만듭니다
AWS Global Accelerator에서 사용자 정의 라우팅 가속기를 생성하고 관련 VPC 서브넷을 엔드 포인트로 추가합니다. 가속기의 리스너 포트 범위 (예 : 1001 ~ 1050)를 정의하고이를 EC2 인스턴스의 대상 포트 범위 (예 : 80 ~ 82)에 매핑합니다. 이 매핑을 사용하면 포트 1001-1050의 들어오는 트래픽을 특정 IP : 백엔드 서버의 포트 조합으로 라우팅 할 수 있습니다.
3. 포트 매핑 및 교통 관제
가속기는 각 가속기 포트를 특정 EC2 인스턴스 IP 주소 및 포트에 정적으로 맵핑하는 포트 매핑 테이블을 생성합니다. 예를 들어, 가속기의 포트 1001은 10.1.1.1:80, 포트 1002 ~ 10.1.1.1:81 등을 맵핑합니다. 특정 인스턴스 또는 포트에 대한 트래픽을 허용하거나 거부 할 수 있으므로 활성 게임 서버 만 트래픽을받을 수 있습니다.
4. 매치 메이킹 및 라우팅 로직
플레이어가 연결하면 매치 메이킹 서비스에서는 위치, 기술 수준 또는 세션 가용성과 같은 기준에 따라 플레이어가 참여 해야하는 게임 세션 (및 어떤 EC2 인스턴스 및 포트)를 결정합니다. 매치 메이킹 로직은 글로벌 가속기 API를 쿼리하여 선택한 게임 서버 세션에 해당하는 가속기 포트를 검색합니다.
5. 가속기를 통한 플레이어 연결
플레이어는 가속기의 정적 IP 주소와 매핑 된 포트 (예 : 포트 1003)가 제공됩니다. 플레이어가 연결되면 Global Accelerator는 AWS 글로벌 네트워크를 통한 트래픽을 정확한 EC2 인스턴스로 이동하고 게임 세션을 호스팅하는 포트 (예 : 10.1.1.1:82). 이는 공개 인터넷을 피하고 AWS의 최적화 된 네트워크 경로를 사용하여 대기 시간을 줄입니다.
6. 혜택
-대기 시간이 낮고 지터 감소 : 트래픽은 AWS의 고속 정체가없는 네트워크를 통해 라우팅됩니다.
- 확장 성 : 단일 가속기로 여러 지역에서 수천 개의 게임 세션을 관리 할 수 있습니다.
- 결함 공차 : 게임 서버 또는 서브넷 엔드 포인트가 건강에 해롭게되면 플레이어 중단없이 트래픽을 다시 향할 수 있습니다.
- 프로토콜 유연성 : 다른 게임 네트워킹 요구 사항을 수용하여 TCP, UDP 또는 둘 다를 지원합니다.
요약
AWS Global Accelerator Custom Routing을 사용하여 멀티 플레이어 게임은 Accelerator 포트를 개인 IP 주소 및 VPC 서브넷의 EC2 인스턴스 포트에 매핑하여 플레이어를 특정 게임 서버 인스턴스로 안내 할 수 있습니다. 매치 메이킹 서비스는 적절한 가속기 포트를 할당하여 어떤 플레이어를 연결하는지를 제어하여 클라이언트 변경을 필요로하지 않고 결정 론적, 저도 라우팅을 가능하게합니다. 이 설정은 플레이어 투 서버 과제 및 성능 최적화에 대한 세밀한 제어가 필요한 대규모 글로벌 멀티 플레이어 게임에 이상적입니다 [2] [6] [7] [9].
인용 :
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-how-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-with-amazon-gamelift-fleetiq-nintegrate-with-custom-routing-aws-clobal-accelerator/
[3] https://www.youtube.com/watch?v=yxqjyly80pc
[4] https://pages.awscloud.com/rs/112-tzm-766/images/2023_ott-od-0502-ngi_slide-deck.pdf
[5] https://coda.io/@kirtanc25/aws-r53-cf-ga/aws-global-accelerator-14
[6] https://pages.awscloud.com/rs/112-tzm-766/images/ptnr-aws-amd-gamelift-gameservers.pdf
[7] https://www.alibabacloud.com/help/en/ga/user-guide/how-custom-routing-listeners-work
[8] https://www.youtube.com/watch?v=qlaauf_zq4i
[9] https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-lobal-accelerator-custom-routing-accelerators/
[10] https://mas-bandwidth.com/the-case-for-network-acceleration-for-multiplayer-games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services with--aw-global-accelerator/