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, port 1002 do 10.1.1.1 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/