Ein kleiner VPS als Spieleserver-Flotte
- Marcel Dütscher
- 5. Juli
- 1 Min. Lesezeit
Aktualisiert: vor 6 Tagen
Alle unsere Online-Welten — das Portal, die offiziellen Welten, die von Spielern erstellten Welten — laufen auf einem einzigen gemieteten Linux-Server (VPS). Kein Rechenzentrum, keine Cloud-Rechnung mit fünf Stellen. In diesem Artikel zeige ich, wie der Server aufgesetzt ist und was wir dabei gelernt haben.
Härtung zuerst. Bevor das Spiel auf den Server durfte, kam die Grundsicherung: eine Firewall (ufw), die nur die nötigen Ports öffnet, fail2ban gegen automatisierte Login-Versuche, und SSH nur mit Schlüssel. Als Reverse-Proxy läuft Caddy in der Docker-Variante — der besorgt sich TLS-Zertifikate automatisch und leitet Anfragen an die richtigen Container weiter.
Jede Welt ein Container. Das Spiel selbst läuft als Docker-Image, jede Welt bekommt ihren eigenen Container mit festen Grenzen: 768 MB RAM und 2 CPU-Kerne pro Welt, maximal zehn aktive Welten gleichzeitig. So kann eine einzelne Welt niemals den ganzen Server lahmlegen.
Monitoring, das uns anruft. Netdata überwacht den Server mit über 140 Alarmen — von „Platte läuft voll" bis „Portal antwortet nicht". Schlägt etwas an, kommt eine Push-Nachricht aufs Handy (via ntfy). So erfahren wir von Problemen, bevor es die Spieler tun.
Die überraschendste Erkenntnis: Als wir im Leerlauf gemessen haben, ging rund die Hälfte des belegten Arbeitsspeichers gar nicht ans Spiel — sondern an Docker und das Monitoring selbst. Die Infrastruktur, die das Spiel trägt, ist im Ruhezustand schwerer als das Spiel. Eine gute Erinnerung daran, dass man messen muss, statt zu raten.
Das Fazit nach einigen Monaten Betrieb: Ein kleiner, sauber gehärteter Server trägt ein Indie-Multiplayer-Spiel problemlos — wenn man Grenzen setzt und hinschaut.
Kommentare