Host a Minecraft Server on Amazon EC2
Launch a persistent Minecraft Java server on Amazon EC2 with secure access.
Introduction
30 Second Summary
A Minecraft world tied to one computer is only available while that machine stays on. Hosting it elsewhere also raises a second question: who can reach it over the internet?
In this project, you will host a personal Minecraft: Java Edition 26.2 world on an Amazon EC2 virtual machine. You will automate server startup before testing how a security group controls access.
What You'll Build
When you reconnect after an EC2 reboot, Minecraft loads the same world with your recognizable block still waiting near spawn.
By the end of this project, you'll have:
- Join your AWS-hosted Minecraft world from Multiplayer on your Windows PC.
- Compare a blocked connection with a successful retry after opening port 25565.
- Reconnect after an EC2 reboot to find your recognizable block still near spawn.
- Secret Mission: replace public Minecraft access with a /32 security group rule limited to your current public IPv4 address.
Are there any prerequisites?
You need a Windows PC with Minecraft: Java Edition installed plus a web browser. Your AWS account needs permission to manage EC2 instances and security groups in a Region with a default VPC.
Before We Start
Reviewing the Minecraft EULA confirms the terms for your private learning server. Planning to stop or remove your AWS resources keeps the project cost-conscious.
Launch a Cost-Conscious EC2 Host
Your Minecraft: Java Edition 26.2 world needs an internet-reachable computer that can remain online independently of your Windows PC. This step creates that cloud host with the starter resources from the AWS reference architecture.
Amazon EC2 can charge for compute usage. Its attached Amazon EBS storage can also incur charges. Cost control comes from selecting the specified starter resources and reviewing the estimate before launch.
In this step, get ready to:
- Create a security group that permits browser-based management access.
- Launch an Arm-based EC2 instance with automated EC2 user data.
- Connect through EC2 Instance Connect and verify the Java runtime.
Create the management security group
A security group acts as a virtual firewall for an EC2 instance. This group allows the AWS browser terminal to reach your server through the default Amazon VPC.
- Use your browser to sign in to the AWS Management Console.
- Select a nearby AWS Region from the Region selector.
The console header now shows the Region where every resource in this project will live.
- Enter Amazon EC2 in the console search bar.
- Select Amazon EC2 from the search results.
The EC2 dashboard opens in your selected Region.
- Choose Security groups from the navigation pane.
- Choose Create security group.
The security group form opens with sections for its identity and network rules.
- Enter Minecraft-EC2-Connect in the Security group name field.
- Enter EC2 Instance Connect access for Minecraft-Server in the Description field.
The basic details now identify the group as the management path for your Minecraft host.
- Select your Region's default VPC in the VPC field.
- Choose Add rule under Inbound rules.
A new inbound-rule row appears for the management connection.
- Select SSH for Type.
- Select the Region-specific com.amazonaws.{{region}}.ec2-instance-connect prefix list for Source.
The inbound-rule preview should contain one SSH rule sourced from the EC2 Instance Connect prefix list. TCP 25565 should be absent.
- Choose Create security group.
Good progress. The Minecraft-EC2-Connect security group now provides the narrow management path needed for the browser terminal.
Can't select the prefix list?
- Confirm that the selected prefix list begins with your current Region's identifier.
- Confirm that the security group belongs to the default VPC in the same Region.
Ask for help with the Region-specific source if it is still missing: Help me find the correct EC2 Instance Connect prefix list for my AWS Region.
Configure and launch the instance
The instance supplies the processor and memory for the server. Its launch configuration also attaches persistent storage and gives the automation script everything it needs to prepare Minecraft.
- Return to the EC2 Instances page.
- Choose Launch instance.
The launch page opens with sections for the operating system, hardware, networking, storage, and startup automation.
- Enter Minecraft-Server as the instance name.
- Select the Amazon Linux 2023 AMI.
The instance summary now identifies Minecraft-Server as an Amazon Linux host.
- Select 64-bit (Arm) for the architecture.
- Select t4g.small as the instance type.
The hardware summary now shows the Arm architecture and the selected starter instance size.
Why use this EC2 configuration?
An EC2 virtual machine exposes the Linux host, network rules, and storage that keep the server running. This makes each part of the hosting path visible while you build it.
The Arm-based t4g.small configuration follows the AWS starter pattern for a personal Minecraft server. Your account's estimate determines its actual cost.
- Select Proceed without a key pair (Not recommended) under Key pair.
- Set Auto-assign public IP to Enable under Network settings.
The network summary now shows that the instance receives a public IPv4 address without using a permanent Elastic IP.
- Select the existing Minecraft-EC2-Connect security group.
- Set the root volume size to 8 GiB.
The instance now uses the management security group and the starter root-volume size.
- Set the root volume type to gp3.
- Keep Delete on termination enabled for the root volume.
The storage summary should show one 8 GiB gp3 root volume with deletion enabled.
- Expand Advanced details.
- Populate the User data field by pasting this script:
#!/bin/bash
MINECRAFTSERVERURL=https://piston-data.mojang.com/v1/objects/823e2250d24b3ddac457a60c92a6a941943fcd6a/server.jar
sudo yum install -y java-25-amazon-corretto-devel
adduser minecraft
mkdir /opt/minecraft/
mkdir /opt/minecraft/server/
cd /opt/minecraft/server
wget $MINECRAFTSERVERURL
chown -R minecraft:minecraft /opt/minecraft/
java -Xmx1300M -Xms1300M -jar server.jar nogui
sleep 40
sed -i 's/false/true/p' eula.txt
touch start
printf '#!/bin/bash\njava -Xmx1300M -Xms1300M -jar server.jar nogui\n' >> start
chmod +x start
cd /etc/systemd/system/
touch minecraft.service
printf '[Unit]\nDescription=Minecraft Server on start up\nWants=network-online.target\n[Service]\nUser=minecraft\nWorkingDirectory=/opt/minecraft/server\nExecStart=/opt/minecraft/server/start\nStandardInput=null\n[Install]\nWantedBy=multi-user.target' >> minecraft.service
sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service
What does this user data do?
- The MINECRAFTSERVERURL variable points to the pinned Minecraft 26.2 server file.
- The installation command adds Amazon Corretto 25 to the Amazon Linux host.
- The minecraft user keeps the game process separate from the administrative account.
- The script downloads server.jar into /opt/minecraft/server/.
- The first server invocation generates the files needed to record your EULA acceptance.
- The executable start script stores the command that runs Minecraft without its graphical interface.
- The systemd unit named minecraft.service enables Minecraft to start when the instance boots.
✔️ Awesome, I've got everything!
Your complete startup script is in the User data field. The instance is ready for its final launch review.
ⓧ I'd like to double check the full code
- Compare the contents of the User data field with this complete user-data.sh reference:
#!/bin/bash
MINECRAFTSERVERURL=https://piston-data.mojang.com/v1/objects/823e2250d24b3ddac457a60c92a6a941943fcd6a/server.jar
sudo yum install -y java-25-amazon-corretto-devel
adduser minecraft
mkdir /opt/minecraft/
mkdir /opt/minecraft/server/
cd /opt/minecraft/server
wget $MINECRAFTSERVERURL
chown -R minecraft:minecraft /opt/minecraft/
java -Xmx1300M -Xms1300M -jar server.jar nogui
sleep 40
sed -i 's/false/true/p' eula.txt
touch start
printf '#!/bin/bash\njava -Xmx1300M -Xms1300M -jar server.jar nogui\n' >> start
chmod +x start
cd /etc/systemd/system/
touch minecraft.service
printf '[Unit]\nDescription=Minecraft Server on start up\nWants=network-online.target\n[Service]\nUser=minecraft\nWorkingDirectory=/opt/minecraft/server\nExecStart=/opt/minecraft/server/start\nStandardInput=null\n[Install]\nWantedBy=multi-user.target' >> minecraft.service
sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service
Review the cost before launch
This launch creates resources that can generate charges. You stay in control by reviewing the estimate before launch.
An in-use public IPv4 address costs $0.005 per hour outside applicable credits or offers. EC2 compute may also incur charges.
EBS storage may incur charges. Internet data transfer may incur charges.
Eligibility for t4g.small depends on the AWS account's creation date. It also depends on remaining credits.
- Review the Summary panel for the selected instance configuration.
- Review the displayed pricing estimate for your AWS account.
The summary should show Minecraft-Server, t4g.small, the Minecraft-EC2-Connect security group, and one 8 GiB gp3 root volume.
- Choose Launch instance.
The first launch can take up to ten minutes while the instance installs Java and prepares Minecraft. A quiet setup period is expected.
- Wait for the instance state to show Running.
- Wait for both EC2 status checks to pass.
The EC2 instance list now shows a running Minecraft-Server with both checks passed.
Instance still preparing?
- Allow the initial setup up to ten minutes before checking again.
- Confirm that the selected AMI is Amazon Linux 2023 with the 64-bit (Arm) architecture.
- Confirm that the root volume is 8 GiB and uses gp3.
Get help checking the launch configuration: Help me troubleshoot why my Minecraft-Server EC2 instance is not passing both status checks.
Connect and verify Java
A running status proves that the virtual machine is available. The browser terminal provides direct evidence that the startup script installed the required Java runtime.
- Select the running Minecraft-Server instance.
- Choose Connect.
The connection page opens with the available access methods for the selected instance.
- Choose the EC2 Instance Connect tab.
- Choose Connect using a Public IP.
The connection form now targets the instance's auto-assigned public IPv4 address.
- Choose Connect.
A browser terminal opens for the Amazon Linux instance.
Before you run the check, which Java major version do you expect the terminal to report? Hold that prediction.
- Verify the installed Java runtime by running:
java -version
The output identifies Amazon Corretto with major version 25. This confirms that the user-data installation reached the required Java runtime.
That is the host ready. Your Arm EC2 instance is live and accepting browser-terminal connections through its restricted management rule.
Can't connect or verify Java?
- Return to the instance details and confirm that a public IPv4 address is listed.
- Return to Minecraft-EC2-Connect and confirm that its SSH source uses the prefix list for the current Region.
- Allow the user-data setup the full ten minutes if the Java runtime is still unavailable.
- Reconnect through EC2 Instance Connect after the setup period.
Ask for help with the connection or runtime check: Help me diagnose my EC2 Instance Connect or Amazon Corretto 25 verification problem.
Your cost-conscious cloud host is running with its automated setup applied. Next, you will inspect the Minecraft files and confirm that the service generated the world.
Confirm the Automated Server Started
Your Amazon EC2 instance is running. EC2 user data has already done the repetitive setup work.
Automation can hide partial failures. This step turns the setup into evidence you can inspect.
In this step, get ready to:
- Verify Amazon Corretto version 25 through the server terminal.
- Ensure minecraft.service is running under systemd.
- Confirm the automated launch generated the server's runtime files.
Verify Amazon Corretto 25
Minecraft: Java Edition 26.2 requires Java major version 25. The runtime output proves that your instance uses Amazon Corretto 25.
- Check the Java runtime in the EC2 Instance Connect terminal from earlier by running:
java -version
What Does This Command Confirm?
- The command asks the active Java installation to report its major version.
- The runtime provider reveals which Java distribution is active.
- Version 25 matches the runtime required by Minecraft: Java Edition 26.2.
You'll see version 25 in the Java output. You'll also see a runtime name containing Corretto.
Don't See Corretto 25?
- Allow up to 10 minutes for the user-data setup to finish.
- Run the version check above again.
Help me understand why my EC2 instance is not reporting Amazon Corretto 25.
Ensure the Minecraft service is running
The minecraft.service unit delegates startup to /opt/minecraft/server/start. It runs as the minecraft user.
- Ask systemd to start the Minecraft service by running:
sudo systemctl start minecraft.service
What Does This Command Do?
- The systemctl command sends a start request to the service manager.
- The minecraft.service unit launches /opt/minecraft/server/start as the minecraft user.
- The enabled service can start automatically when the instance boots.
The first Minecraft launch can take 5 to 10 minutes while it generates the world. The longer wait here is expected.
- Allow up to 10 minutes for initialization to complete.
Did the Service Start Request Fail?
- Confirm that the browser terminal is still connected to Minecraft-Server.
- Run the start command above again after the initialization window ends.
Help me troubleshoot why minecraft.service did not start on my Amazon Linux 2023 EC2 instance.
Prove the world was generated
The server directory provides visible evidence of the first launch. Its generated files show that the automated process reached world creation.
Before you run this check, which files do you expect a completed first launch to leave behind?
- Enter the server directory and list its contents by running these commands:
cd /opt/minecraft/server/
ls
What Do These Commands Prove?
- The cd command places your shell in the service's working directory.
- The ls command turns the server's startup work into a visible file list.
- The world directory proves that the server generated persistent game data.
You'll see server.jar, logs, world, and start in the output. You'll also see eula.txt with the rest of the generated server data.
That's the automated setup confirmed. Your world now exists on the instance's Amazon EBS storage.
Missing the World Files?
- Wait until the full 10-minute initialization window has passed.
- Run the service start command above again.
- Repeat the directory check after the service has had time to initialize.
Help me diagnose why the Minecraft server directory is missing its generated world files.
Your server process is ready. Next, you'll test whether Minecraft can reach it while TCP port 25565 remains blocked.
Hit the Network Wall
Your generated world is running on Amazon EC2. The systemd service is healthy.
A security group controls which traffic can cross the instance's public network boundary. This test separates application health from network access.
In this step, get ready to:
- Capture the instance's public IPv4 address.
- Prepare a Minecraft: Java Edition 26.2 Direct Connection.
- Test whether the client can reach the healthy server.
Capture the instance address
The public IPv4 address gives your Windows PC a destination on the internet. Capturing it now lets you use the same destination throughout the network test.
- Switch back to the AWS Management Console tab from earlier.
- Select Minecraft-Server from your EC2 instance list.
- Locate Public IPv4 address on the instance details page.
- Copy the value into your instance public IPv4 address.
- Select Minecraft-EC2-Connect from the instance's security group details.
- Confirm the inbound rules contain only the restricted EC2 Instance Connect SSH rule.
- Confirm no rule authorizes TCP port 25565.
The test now has a fixed server address. Its current network boundary is also recorded.
Prepare a Direct Connection
Minecraft's Direct Connection uses one server address for this test. Keeping that address constant isolates the security group as the network variable.
- Press the Windows key to open Windows search.
- Type Minecraft into the search field.
- Press Enter to start the matching Minecraft app.
- Select Minecraft: Java Edition from the game list.
- Select Latest Release in the release selector.
- Start the selected release from the launcher.
- Choose Multiplayer from the main menu.
- Choose Direct Connection.
You should see the Server Address field ready for the instance address.
Test the blocked route
The next connection attempt tests the complete public path from your Windows PC to the running Minecraft process. The server configuration stays unchanged during this check.
- Enter your instance public IPv4 address in the Server Address field.
- Predict whether a healthy Minecraft process is enough for traffic from your Windows PC to reach it.
- Attempt to join the server from the Direct Connection screen.
- Wait for the connection attempt to finish.
Minecraft cannot reach the server. That failure is useful because you have isolated the missing network permission while the server stays healthy.
Why did the connection fail?
The Minecraft process can be healthy while the security group drops gameplay traffic before it reaches the instance.
The group has no inbound TCP rule for port 25565. The blocked client gives you observable evidence of that boundary.
- Leave Minecraft open after the failed connection attempt.
- Return to the AWS Management Console tab from earlier.
- Confirm Minecraft-Server still shows Running.
- Keep the instance running for the next step.
The client is blocked while the instance stays running. You have proved that application health and public reachability are separate.
Next up, you will authorize Minecraft traffic through a dedicated gameplay rule and retry the same connection.
Open the Minecraft Port and Join
The failed connection from the previous step proved that your Minecraft: Java Edition 26.2 server can be healthy on Amazon EC2 while public traffic remains blocked. Its security group controls which inbound connections reach the instance.
This step authorizes the game's TCP traffic on port 25565. The new rule opens the network path without exposing every port on the instance.
In this step, get ready to:
- Authorize Minecraft traffic on TCP port 25565.
- Verify that SSH remains restricted to EC2 Instance Connect.
- Join the hosted world from your Windows PC.
Open the inbound rule editor
An inbound rule defines the protocol that can reach the instance. It also defines the destination port plus the allowed source.
- Switch back to the AWS Management Console browser tab from earlier.
- Select the running Minecraft-Server instance in Amazon EC2.
- Open the attached Minecraft-EC2-Connect security group from the instance details page.
- Choose Edit inbound rules.
- Choose Add rule.
You should see a new empty row in the inbound rule editor. That row controls the network path you tested from Minecraft.
Authorize Minecraft traffic
The gameplay rule needs one protocol plus one port. Its source determines which public addresses can attempt a connection.
- Set Type to Custom TCP.
- Enter 25565 in Port range.
- Set Source to Anywhere-IPv4 (0.0.0.0/0).
- Choose Save rules.
The inbound rules table now shows a Custom TCP rule for port 25565 with source 0.0.0.0/0. That is the network change done: Minecraft traffic now has an authorized path to your instance.
This Rule Is Publicly Reachable
Anywhere-IPv4 allows every public IPv4 address to attempt a connection on port 25565. This broad source gives you a clear connectivity test.
A narrower source reduces unwanted connection attempts. You will have the option to apply that tighter boundary in the Secret Mission.
The new gameplay rule should coexist with the restricted management rule. Checking both catches an accidental change to your SSH boundary.
- Locate the saved Custom TCP rule for port 25565.
- Confirm its source shows 0.0.0.0/0.
- Confirm the existing SSH rule still uses the Region's EC2 Instance Connect prefix list.
You should see two separate paths in the table. Minecraft uses TCP port 25565. Browser-based server management stays limited to EC2 Instance Connect.
Rule Not Appearing?
Check that the saved row uses Custom TCP with port 25565. Confirm that the source is Anywhere-IPv4.
If you cannot save the change, confirm that your AWS account has permission to edit the attached security group.
Help me troubleshoot why my Minecraft security group rule is not appearing correctly.
Join the world
The previous attempt held the server process constant while the network path stayed closed. Retrying the same address now tests only the security group change.
- Return to Minecraft: Java Edition 26.2 from earlier.
- Choose Multiplayer.
- Choose Direct Connection.
- Enter the same public IPv4 address from earlier in Server Address.
Before you retry, do you think the same server address can reach the healthy Minecraft process now?
- Retry the connection to the same server address.
You'll see the generated world load. You cleared the network wall, so the running server is now playable from your Windows PC.
- Move your player around near the spawn point.
- Place a recognizable block near spawn.
You should be able to move normally. Your recognizable block should remain visible near spawn.
World Still Not Loading?
- Confirm the saved TCP 25565 rule shows source 0.0.0.0/0.
- Confirm Minecraft uses the same public IPv4 address shown for the running Minecraft-Server instance.
Help me diagnose why Minecraft still cannot connect after opening TCP port 25565.
Your Minecraft world is now reachable through its authorized gameplay port. Next up, you will reboot the EC2 instance to prove that the service returns automatically and your block survives.
Reboot and Prove Persistence
Your Minecraft: Java Edition 26.2 world is now playable on Amazon EC2. The recognizable block near spawn gives you a clear marker for this durability test.
A useful server must survive host maintenance or a reboot without losing its world. It must also return without a manual Minecraft startup command.
This test checks whether systemd starts minecraft.service through /opt/minecraft/server/start. It also checks whether Amazon EBS preserves the world on the 8 GiB gp3 root volume.
In this step, get ready to:
- Reboot Minecraft-Server from the EC2 console.
- Confirm both EC2 status checks pass after startup.
- Reconnect to the original world from Minecraft: Java Edition 26.2.
Reboot the EC2 instance
An EC2 reboot restarts the operating system in place. The brief interruption is expected.
The attached root volume remains in place. The public IPv4 address also stays the same.
- Exit the current Minecraft world cleanly.
- Switch back to the AWS Management Console from earlier.
- Select Minecraft-Server from the instance list.
- Choose Instance state.
- Choose Reboot instance.
- Confirm with Reboot.
The instance begins rebooting. Its Minecraft process temporarily becomes unavailable.
Wait for both status checks
An enabled systemd service starts during boot. The minecraft.service unit launches /opt/minecraft/server/start without a manual command.
- Watch the instance's status checks in the AWS Management Console.
- Wait until both EC2 status checks have passed.
- Confirm the instance details still show its Public IPv4 address.
- Allow the Minecraft service to finish loading automatically.
Both passed checks confirm the EC2 host is healthy again. The automatic service startup is ready for a client-side test.
Status checks taking longer?
- Refresh the instance list to retrieve the latest status.
- Confirm the instance has returned to a running state.
Help me diagnose why the EC2 status checks are not passing after a reboot.
Reconnect to the saved world
The world files remain in /opt/minecraft/server on the attached root volume. A reboot leaves those files attached.
Reconnecting tests the saved world. It also tests the automatic service startup.
Before you reconnect, predict whether you will enter a fresh world or find your recognizable block.
- Return to Minecraft: Java Edition on your Windows PC.
- Select Multiplayer.
- Select Direct Connection.
- Enter the same Public IPv4 address in Server Address.
- Retry the server connection from the Direct Connection screen.
- Move your player toward the spawn point.
- Inspect the spot where you placed the recognizable block.
You'll enter the same world. Your recognizable block remains near spawn.
You have now proved that your server recovers from a reboot without losing the world.
Can't reconnect after the reboot?
- Wait until both EC2 status checks have passed.
- Confirm the instance details still show the same Public IPv4 address.
- Confirm that Minecraft-EC2-Connect still has its security group rule for port 25565 from 0.0.0.0/0.
Help me troubleshoot the Minecraft connection after the EC2 reboot.
Secret mission
Restrict Server Access to Your IP
Your server currently accepts Minecraft connection attempts from every public IPv4 address. Replace the broad rule with your current Windows network's public IPv4 address. Then prove the world still loads.
Clean Up Your Resources
Clean Up Your Resources
Choose between keeping the server running, pausing it for later, or deleting it permanently. This project can keep generating AWS charges while the instance runs.
Cost warning
A running Amazon EC2 instance can keep generating compute charges.
The Amazon EBS root volume can continue generating storage charges while the instance is stopped.
The assigned public IPv4 address costs $0.005 per hour.
Free Tier coverage for t4g.small is conditional. Use the AWS estimate you reviewed as your cost guide.
Resources you used:
- One running t4g.small instance named Minecraft-Server using Amazon Linux 2023.
- One 8 GiB gp3 root volume containing your persistent Minecraft: Java Edition 26.2 world.
- One Amazon VPC security group named Minecraft-EC2-Connect with restricted gameplay access.
- One SSH rule restricted to the EC2 Instance Connect prefix list.
- One in-use public IPv4 address assigned to the running instance.
Keep everything running
No action is needed. Choose this if you want the Minecraft server to remain immediately playable from your current Windows network.
- Your persistent world remains available at the same public IPv4 address.
- The enabled systemd service keeps hosting Minecraft automatically after reboots.
- The 25565 rule remains limited to your current public IPv4 address in /32 notation.
- Compute charges can continue while Minecraft-Server runs.
- Storage charges can continue for the attached root volume.
Pause - I'll come back to this later
Pausing shuts down the running instance to stop compute usage. Your world remains on the root volume.
- Return to the EC2 instance list from earlier.
- Select Minecraft-Server.
- Choose Instance state.
- Choose Stop instance.
- Confirm Stop.
You'll see the instance finish stopping. Compute usage billing stops at this point.
The 8 GiB gp3 volume persists. Storage charges can continue.
A future start normally assigns a new public IPv4 address. Minecraft needs that new address for the next connection.
Delete - I don't want to use this again
Deletion removes the project resources permanently. This option ends ongoing charges tied to the instance after AWS finishes the termination process.
Deletion is permanent
Termination is the irreversible option. Your world disappears with the root volume when Delete on termination is Yes.
If the world matters to you, keep or pause the server until you have saved a copy elsewhere.
- Save a copy of any world files you want to retain from /opt/minecraft/server.
- Return to the EC2 instance list from earlier.
- Select Minecraft-Server.
- Confirm that the root volume shows Delete on termination as Yes.
- Choose Instance state.
- Choose Terminate (delete) instance.
- Confirm Terminate (delete).
After termination completes, the instance and its in-use public IPv4 address are gone. AWS also deletes the root volume containing the world.
- Return to the Amazon VPC console from earlier.
- Choose Security groups in the navigation.
- Select Minecraft-EC2-Connect.
- Use the security group page's delete option to delete Minecraft-EC2-Connect after its instance attachment has cleared.
- Confirm that Minecraft-EC2-Connect no longer appears in the security group list.
That's a careful cleanup. The AWS resources created for this project are now removed.
Nice Work!
Nice Work!
You made it! Your Minecraft: Java Edition 26.2 world now runs on Amazon EC2. The same world returns automatically after a reboot.
You've learned how to:
- Launch an Arm-based cloud host with Amazon Linux 2023. Keep the playable world on an 8 GiB Amazon EBS gp3 root volume.
- Automate installation with EC2 user data. Run the server as a systemd service that restores the same world after a reboot.
- Diagnose a blocked TCP port 25565 from the player's perspective. Restore access with a targeted security group rule.
- Secret Mission: Replace the broad 0.0.0.0/0 rule with a single-address /32 rule for your current public IPv4 address.
Ready to quiz yourself?