Self-hosting a Minecraft server is the canonical test of a small cloud deployment. The right sizing depends on the number of players, the mods, and the version. Vanilla Minecraft with 4-6 players: 2 GB RAM, 2 vCPUs, 20 GB storage. Modded Minecraft with 10+ players: 4-8 GB RAM, 4 vCPUs, 50 GB storage.
Table of contents
The minimum sizing
The minimum sizing:
- Vanilla Minecraft, 1-4 players: 2 GB RAM, 2 vCPUs, 20 GB storage.
- Vanilla Minecraft, 5-10 players: 4 GB RAM, 2 vCPUs, 30 GB storage.
- Modded Minecraft, 1-4 players: 4 GB RAM, 2 vCPUs, 30 GB storage.
- Modded Minecraft, 5-10 players: 8 GB RAM, 4 vCPUs, 50 GB storage.
- Modded Minecraft, 10+ players: 8-16 GB RAM, 4-8 vCPUs, 50-100 GB storage.
The team that has a smaller instance is going to OOM-kill the server; the team that has a larger instance is overpaying.
The bandwidth
The bandwidth:
- 1-4 players: 5-10 Mbps. The default network on most cloud instances is enough.
- 5-10 players: 10-20 Mbps. The default network is still enough.
- 10+ players: 20-50 Mbps. The team that has a heavy-traffic server should consider a dedicated network.
The bandwidth is not usually the bottleneck; the CPU and the memory are.
The mods
The mods affect the memory and the CPU:
- Vanilla Minecraft: baseline. The memory and the CPU are dominated by the world size and the player count.
- Light mods (e.g., Optifine, JEI): 1-2 GB additional memory.
- Heavy mods (e.g., Create, Mekanism, Avaritia): 2-4 GB additional memory.
- Modpacks (e.g., All the Mods, FTB): 4-8 GB additional memory.
The team that is running a modpack should size the instance based on the modpack’s recommended memory, not the vanilla baseline.
The deployment
The deployment options:
- A single VM (EC2, Compute Engine, Droplet). The right answer for most teams. The team runs the Minecraft server in a Docker container on a VM.
- A Kubernetes cluster. The right answer for the team that is already running Kubernetes and wants the Minecraft server to be a service.
- A managed game server (Apex, Shockbyte, HostHorde). The right answer for the team that does not want to operate the server.
The backup
The backup:
- The world is the most important data. Back it up at least once a day.
- The backup can be a snapshot of the VM, a snapshot of the world directory, or a copy of the world directory to S3.
- The restore should be tested at least once a quarter.
The monitoring
The monitoring:
- The CPU, the memory, and the disk. The team should alert at 80% utilization on any of them.
- The player count. The team should track the player count over time to understand the workload.
- The TPS (ticks per second). The TPS is the Minecraft equivalent of the response time. The team should alert at TPS < 18.
FAQ
What is the minimum sizing for a Minecraft server?
Vanilla, 1-4 players: 2 GB RAM, 2 vCPUs. Vanilla, 5-10 players: 4 GB RAM, 2 vCPUs. Modded, 5-10 players: 8 GB RAM, 4 vCPUs.
How much bandwidth does a Minecraft server need?
1-4 players: 5-10 Mbps. 5-10 players: 10-20 Mbps. 10+ players: 20-50 Mbps. The bandwidth is rarely the bottleneck.
What mods affect the memory the most?
Heavy mods (Create, Mekanism, Avaritia) and modpacks (All the Mods, FTB) add 4-8 GB of memory overhead. The team that is running a modpack should size the instance based on the modpack’s recommended memory.
How do I deploy a Minecraft server on the cloud?
Run the Minecraft server in a Docker container on a VM. The VM is the right answer for most teams. Kubernetes is the right answer for the team that is already running Kubernetes.
How do I back up a Minecraft server?
Back up the world directory at least once a day. The backup can be a snapshot of the VM, a snapshot of the world directory, or a copy of the world directory to S3. Test the restore at least once a quarter.
If you are sizing a game server for a new project, the RunxBuild hosting calculator is the place to model the line items. The instances, the memory, the storage, the bandwidth - each one is a separate number, and the team’s mental model for the platform is the sum of those numbers. The RunxBuild dashboard is where the team sees the actual game server in one place.