W konfiguracji gier wieloosobowych niestandardowe akceleratory routingu mogą być używane do optymalizacji połączeń odtwarzaczy poprzez kierowanie ruchu bezpośrednio do określonych instancji serwera gier w oparciu o logikę aplikacji, takich jak wyniki dopasowywania. Takie podejście poprawia opóźnienie, zmniejsza drgawkę i poprawia wrażenia gracza, wykorzystując prywatną sieć AWS Global Accelerator i statyczne adresy IP.
Przykład używania niestandardowych akceleratorów routingu w grach wieloosobowych
1. Konfiguracja serwerów i podsieci
Załóżmy, że masz flotę serwerów gier działających na instancjach Amazon EC2 w ramach jednego lub większej liczby podsieci VPC. Każda instancja organizuje wiele sesji gier, każda słuchała na różnych portach. Na przykład dwa instancje EC2 mogą działać w tej samej podsieci z prywatnymi IPS 10.1.1.1 i 10.1.1.2, każda obsługująca sesje gry na portach TCP 80, 81 i 82.
2. Utwórz niestandardowy akcelerator routingu
Tworzysz niestandardowy akcelerator routingu w AWS Global Accelerator i dodajesz odpowiednie podsieci VPC jako punkty końcowe. Zdefiniujesz zakres portów słuchaczy (np. 1001 do 1050) na akceleratorze i mapuje je do zakresu portów docelowych (np. 80 do 82) w swoich instancjach EC2. To mapowanie pozwala na kierowanie przychodzącego ruchu na portach 1001-1050 do określonych kombinacji IP: Port na serwerach zaplecza.
3. Mapowanie portów i kontrola ruchu
Akcelerator generuje tabelę mapowania portów, która statycznie mapuje każdy port akceleratora na określony adres IP instancji EC2. Na przykład port 1001 na mapach przyspiesznika do 10.1.1.1:80, port 1002 do 10.1.1.1:81 i tak dalej. Możesz zezwolić lub odmówić ruchu na określone instancje lub porty, zapewniając, że tylko aktywne serwery gry otrzymują ruch.
4. Logika zapałek i routingu
Gdy gracz łączy się, Twoja usługa zapałek określa, która sesja gry (a tym samym instancji EC2 i port) gracz powinien dołączyć na podstawie kryteriów takich jak lokalizacja, poziom umiejętności lub dostępność sesji. Logika pasującego zapytania o światowy interfejs API akceleratora w celu odzyskania portu akceleratora, który odpowiada wybranej sesji serwera gier.
5. Połączenie odtwarzacza za pośrednictwem akceleratora
Odtwarzacz otrzymuje statyczny adres IP akceleratora i zmapowany port (np. Port 1003). Gdy gracz łączy się, globalny akcelerator prowadzi ruch nad globalną siecią AWS do dokładnej instancji EC2 i portu hostingowego sesji gry (np. 10.1.1.1:82). Zmniejsza to opóźnienie, unikając publicznego Internetu i korzystając z zoptymalizowanych ścieżek sieciowych AWS.
6. Korzyści
-Niskie opóźnienie i zmniejszone jitter: Ruch jest kierowany przez szybką sieć AWS bez zatorów.
- Skalowalność: Możesz zarządzać tysiącami sesji gier w wielu regionach za pomocą jednego akceleratora.
- Tolerancja błędów: jeśli serwer gier lub punkt końcowy podsieci staje się niezdrowy, ruch można przekazać bez zakłóceń gracza.
- Elastyczność protokołu: obsługuje TCP, UDP lub oba, uwzględniając różne wymagania dotyczące sieci gier.
Streszczenie
Korzystając z niestandardowego routingu AWS Global Accelerator, gra wieloosobowa może skierować graczy do określonych instancji serwera gier, mapując porty akceleratora na prywatne adresy IP i porty instancji EC2 w podniesie VPC. Kontroluje serwis, które gracz łączy się, gdy przypisując odpowiedni port akceleratora, umożliwiając deterministyczne routing o niskiej opóźnieniu bez wymagania zmian klienta. Ta konfiguracja jest idealna dla globalnych gier wieloosobowych, wymagających drobnoziarnistej kontroli nad zadaniami i optymalizacją wydajności [2] [6] [7] [9].
Cytaty:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-with-amazon-gamelift-fleetiq-and-integrate-with-custom-routing-aws-global-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-liisteners-work
[8] https://www.youtube.com/watch?v=qlauf_zq4i
[9] https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-global-accelerator-custom-uting-accelerators/
[10] https://mas-bandwidth.com/the-case-for-network-accEneration-for-Multiplayer-Games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services-with-aws-global-accelerator/