Terraform script for automating the deployment of a Minecraft server in AWS. The server is running a Forge version of 1.10.2.
- Install Java 8
- Install Minecraft
- Install Minecraft Forge - This installs a custom version of minecraft with some additional libraries that make it easier to load mods.
- 1.10.2 - 12.18.3.2281 - This is the version that the server is running
The server is scheduled to be up from 6:45PM to 10:30PM CDT
- Start Minecraft
- Select the Forge version of minecraft from the launcher dropdown
- It will be something like 1.10.2-forge1.10.2...
- Multiplayer
- Add Server
- Server Address should be the DNS of the load balancer
- Whats that? Install the AWS Cli and run get_ip.sh or get_ip.bat
- The IP will change every time the server restarts. The load balancer DNS should be more stable. If the script returns a DNS record but no IP then the server is probably not running. If it does not return a DNS or an IP it is DEFINITELY not running.
You can use any Forge mod you like, just be careful about what version you use. Please be sure they are compatible with 1.10.2. If there is a mod you like that needs to be installed on the server as well let me know and I can add it.
Installing:
- Navigate to your minecraft install directory
- Mac -
~/Library/Application Support/minecraft
- Windows -
C:\Users\<USERNAME>\AppData\Roaming\.minecraft
- Mac -
- Create a
mods
directory. This is where you save the jars for any mods you download.
Mods I use:
- FTB Utilities - Adds some handy multiplayer capabilities (chunk claiming and teleport options mostly)
- FTBLib - A required dependency of FTB Utilities
- Inventory Tweaks - Inventory sorting and filtering.
- JourneyMap - A map
- JustEnoughItems - In game menu for showing item uses and recipes
- Optifine - Lots of visual and performance tweaks
Read the code and sort it out. Err... I mean... TODO
AWS CLI and Terraform
- Get a server bundle ready (i.e. an install dir with everything you want in it as far as version, mods, libraries, etc etc)
- Upload that tar ball to s3
- Update the two ASG schedules to start and stop your server as desired
terraform apply
- Create your multiplayer server record to point at the ELB dns