Setup a Minecraft server on AWS EC2 with Docker

使用 Docker 在 AWS EC2 上建构 Minecraft 服务器

前言

Minecraft🔗 是一款全球知名的沙盒游戏,早些年和朋友一起游玩时的连接方式是在个人电脑局域网络(LAN)连接,使用 Hamachi🔗 模拟局域网,存在各式各样的局限性。

本文探讨如何通过不同的技术(AWS EC2、Docker)实现快速自建 MC 服务器的目的:

  1. 稳定独立专用的服务器
  2. 更广更快的设备扩展灵活性
  3. 更灵活快速的构建服务器

创建 EC2 虚拟服务器

Amazon Elastic Compute Cloud🔗 (EC2) 让我们设置特定规格的机器在云端上,可以根据需求调整,基本与官方博客范例🔗差不多:

  1. 登录 AWS Console🔗
  2. 在右上角选择部署服务器所在区域(Tokyo ap-northeast-1 亚洲服务器)
  3. 搜索 EC2 服务并进入 Dashboard,点击 Launch Instance
  4. 给新 EC2 实例命名(minecraft),选择操作系统映像(Ubuntu Server 64-bit x86)
  5. 选择 EC2 实例种类,未来硬件规格不足时再升级也不是问题🔗(t3.small)
  6. 创建新的 key pair🔗 方便未来通过 SSH 访问该服务器(默认,命名随意)
  7. Network settings 关闭 Auto-assign public IP(可选,为了让每次服务器 IP 都是稳定而非临时指派,可以晚点额外设置 Elastic IPs)
  8. Network settings 新增 Security group rule 2 (TCP, 25565, 0.0.0.0/0) 开放让 Minecraft 服务器的 port 25565 可以通行
  9. Configure store 选择适当的容量(20 GB)

最终规格范例
最终规格范例

不同机型费用清单比较表格
不同机型费用清单比较表格(根据 AWS Cost optimize your Minecraft Java EC2 Server 文章)

设置 Elastic IPs 实现实例对外固定 IP

如果先前关闭 Auto-assign public IP,可以需要通过 Elastic IPs 来实现固定对外 IP。

  1. Allocate Elastic IP address (默认 Allocate)
  2. Associate Elastic IP address (选择先前创建的实例)

完成后,实例的详细资料中 Public IPv4 address 应该会存在。

设置 Elastic IP

进入 EC2 实例

可以选择各种方式连接,这里直接在浏览器上使用 EC2 Instance Connect。如果使用 SSH 连接的话,之前设置的 key pair 会派上用场。

  1. 选择实例
  2. Connect
  3. EC2 Instance Connect

连接实例

设置 EC2 实例

  1. 更新套件 sudo apt update
  2. 安装 docker - Install using the apt repository🔗
  3. Manage Docker as a non-root user🔗

运行 Minecraft Docker Image

Terminal window
# 创建与进入 mc-docker 文件夹
mkdir mc-docker
cd mc-docker
# 创建 docker-compose.yml
nano docker-compose.yml

根据 itzg/docker-minecraft-server🔗 设置对应的 docker 映像。

docker-compose.yml
services:
minecraft:
image: itzg/minecraft-server
container_name: minecraft
ports:
- "25565:25565"
environment:
EULA: "TRUE"
VERSION: "1.21.5"
volumes:
- mc-data:/data
restart: unless-stopped
volumes:
mc-data:

执行:

Terminal window
docker compose up -d
docker compose logs -f

总结

如果不熟悉 Minecraft 服务器,可以先在本地设置好 Docker 容器运行,确认无误后再部署到 EC2 主机上也完全没有问题。

延伸阅读