AWS で Java 版のマイクラサーバ(Forge+鬼滅の刃mod付)を起動したときの手順を記録しておきます。
t3.small
インスタンスで、1時間あたり 0.0272 USD(4円以下)でお気軽に試せます。
ただし、1ヶ月間ずっと起動したままだと、2〜3千円くらいかかってしまうので、
常時起動させておきたい用途なら、構成や設定を別途調整しても良いかもしれない。
(1) セキュリティグループを作成
https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#CreateSecurityGroup:
- セキュリティグループ名: 適宜。例:
minecraft-sg
- 説明: 適宜。例:
Minecraft Server
インバウンドルール1:
- タイプ:
カスタムUDP
- ポート範囲:
25565
- ソース:
マイ IP
インバウンドルール2:(統合版も使う場合)
- タイプ:
カスタムUDP
- ポート範囲:
25565
- ソース:
マイ IP
インバウンドルール3:
- タイプ:
SSH
- ソース:
マイ IP
自分以外もアクセスしてもらうためには、各自の IP アドレスの登録が必要です。
(2) EC2 インスタンスを起動
https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#LaunchInstances:
- 名前:
mc
- OSイメージ:
Amazon Linux 2 AMI (HVM)
- インスタンスタイプ:
t3.small
(メモリ2GB) - キーペア名: 適宜
- ファイアウォール(セキュリティグループ): 既存のセキュリティグループを選択する
- 共通のセキュリティグループ:
minecraft-sg
- ホスト名のタイプ:
リソース名
起動したら、インスタンス>詳細>パブリック IPv4 アドレス の値をコピペする。
使わないときは、EC2 インスタンスを停止しておけば、あまりコストがかからない。
(3) SSH ログインする
ssh -i private.key ec2-user@xxx.xxx.xxx.xxx
(4) Docker をインストール
sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker ec2-user
sudo curl -SL https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
(5) docker-compose.yml を編集
適当なディレクトリ(例:~/kimetsu
)に docker-compose.yml
を作成します。
また、その隣に world
ディレクトリと mods
ディレクトリも作っておきます。
version: '2'
services:
mc:
container_name: Kimetsu
image: itzg/minecraft-server:java11
ports:
- "25565:25565"
tty: true
stdin_open: true
restart: always # EC2インスタンス起動時にマイクラサーバも自動起動してくれる
volumes:
- ./world:/data/world:rw
- ./mods:/data/mods:rw
environment:
EULA: "TRUE"
VERSION: "1.16.5"
TYPE: "FORGE"
FORGEVERSION: "36.2.34"
(6) 鬼滅の刃 mod をインストール
https://www.curseforge.com/minecraft/mc-mods/demonslayer/files から
KimetsunoYaiba_1.16.5_ver38.2.jar をダウンロードして、EC2 の mods フォルダに格納します。
scp -i private.key ~/Downloads/KimetsunoYaiba_xxxx.jar ec2-user@xxx.xxx.xxx.xxx:path/to/mods/
(7) 起動
docker-compose up -d
(8) ログ確認
docker-compose logs -f
初回は数分かかるかも。
「DedicatedServer Done」を表示されれば起動完了。
[minecraft/LoggingChunkStatusListener]: Preparing spawn area: 96%
[minecraft/LoggingChunkStatusListener]: Preparing spawn area: 99%
[minecraft/LoggingChunkStatusListener]: Time elapsed: 15502 ms
[minecraft/DedicatedServer]: Done (15.909s)! For help, type "help"
[minecraft/DedicatedServer]: Starting remote control listener
[minecraft/RConThread]: Thread RCON Listener started
[minecraft/MainThread]: RCON running on 0.0.0.0:25575
手元のマイクラJava版を起動して、マルチプレイ>サーバーを追加>サーバーアドレスに、
手順2で確認した IP アドレスを登録すれば、接続できる。
利用する Mod のバージョンは、サーバとクライアント側で、揃えておく必要があります。
ToroHealth のようなクライアント側だけの mod は、クライアント側だけに入れれば OK です。
(9) 設定ファイルの編集
# 初回のみ
docker-compose exec mc apt-get install vim
# 編集
docker-compose exec mc vi server.properties
# 再起動
docker-compose restart mc