Ich erstelle auf Online-Echtzeit-Multiplayer-Handy-Spiel mit Kryonet (eine Java TCP/UDP-Netzwerk-Bibliothek), die ich auf AWS hosten möchte.Wie skaliert man dedizierte EC2-Instanzen auf AWS?
Die Architektur ist wie folgt: Clients verbinden sich mit einem zentralen Login/Account-Server, der ihnen erlaubt, sich anzumelden und ihre Statistiken usw. zu sehen. Dieses Bit ist einfach, da es im Grunde nur eine REST-API ist und skaliert werden kann auf ziemlich normale Weise (wie Sie irgendeine Webapp).
Interessanter ist jedoch, wenn Spieler tatsächlich ein Spiel spielen. Dazu plane ich einen separaten Pool von "Match" -Servern (EC2s). Der Login/Konto-Server verbindet zwei Spieler und sendet dann dem Client die Adresse eines bestimmten Match-Servers. Die Spieler treten dann diesem Match-Server bei, der ihr Match veranstaltet (vielleicht 5-10 Minuten). Der Match-Server muss "sticky" sein, da er eine Echtzeit-Instanz des Spiels ausführt und UDP-Pakete in Echtzeit senden/empfangen wird. Jeder Match-Server wird wahrscheinlich einige hundert Matches hosten können.
Meine Frage ist, wie ich über die Skalierung dieser Match-Server gehen sollte. Ich nehme an, dass ich sie beim Start automatisch beim zentralen Server registrieren lassen und eine Art Keeping am Leben lassen werde. Ich könnte das alles selbst bauen; Ich frage mich jedoch, ob AWS Tools/Dienste hat, die das alles für mich tun können.
Sie könnten sich [Amazon GameLift] (https://aws.amazon.com/gamelift/) ansehen. –
Leider scheint GameLift Java-basierte Server nicht zu unterstützen. Ich plane nicht, Unity oder Unreal zu verwenden, sondern eine Kombination aus Libgdx und Kryonet. – Jambo