
A Thousand Rallies
A game platform on three continents
Multi-region delivery for a Unity title — on-prem Kubernetes first, AWS EKS as the fallback, three exit nodes across ID, DE and US.
- role
- Infrastructure architect
- org
- Estella Studio
- when
- 2025
What it is
A game needs to feel local everywhere. Rallies runs behind Cloudflare with three regional load-balancer/exit nodes — Sora in Jakarta, Shion in Frankfurt, Suisei in Ohio — fronting the web game, the marketing site and the back-end services.
The compute is deliberately hybrid: two on-prem Kubernetes clusters (Acheron and Mirai, the latter 48C/96T) carry normal load, and two AWS EKS clusters (Kawa and Mori) stand by to take over if the on-prem side fails. Assets live in Cloudflare R2.
The Unity side is wired in as a first-class citizen — Unity DevOps, VCS, Accelerator, Analytics and Cloud Diagnostics — so artists, designers and playtesters all land in the same pipeline as the engineers. Tetragon watches runtime; Terraform and GitHub Actions own everything else.
where the effort went
- Scale90
- Resilience95
- Security72
- Automation84
the numbers
- Regions
- 3
- K8s clusters
- 4
- Biggest node
- 48C / 96T
- Asset store
- Cloudflare R2
ID · DE · US
2 on-prem, 2 EKS
Mirai
built with
- Kubernetes
- AWS EKS
- Cloudflare
- Cloudflare R2
- Terraform
- GitHub Actions
- Tetragon
- Unity
- Docker
- Prometheus
The rack
Named machines, as they appear in the diagram. Yes, they are all named after something.
- MiraiOn-prem Kubernetes48C / 96T · 64 GiB
- AcheronOn-prem Kubernetes2C / 4T · 12 GiB
- KawaAWS EKSa1.metal
- MoriAWS EKSa1.metal
- SoraLoad balancer · exit nodeJakarta, ID
- ShionLoad balancer · exit nodeFrankfurt, DE
- SuiseiLoad balancer · exit nodeOhio, US
- YumeCloud utility2 vCPU · 1 GiB
- Asa · Hiru · YoruCloud utility2 vCPU · 1 GiB each
Architecture
Drawn as it was built. Open it full size — the labels are the interesting part.