2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2 on Ubuntu にマインクラフトサーバをインストールする

Posted at

概要

AWS 上に Minecraft サーバを構築する手順について記述する。

解説しない事

  • AWS アカウントの用意
  • AWS アカウントの day 1 対応
  • AWS 上への具体的なインスタンスの立て方

環境

  • Ubuntu: 24.04
  • Minecraft: 1.21.1

手順全体像

  • セキュリティグループの設定
  • 依存関係のインストール
  • Minecraft プロセスを動かす為のユーザ作成
  • サーバインストール
  • 自動起動設定

解説

セキュリティグループの設定

いわゆる「ポート開放」にあたる作業。
セキュリティグループのインバウンドルールで 0.0.0.0/0 -> 25565 を許可する。

依存関係のインストール

Minecraft サーバの本体は、以下 URL から DL 出来る server.jar ファイル。

これを実行する為に必要な様々なプログラムを予め用意する必要がある。


#!/bin/bash

apt update

## install

apt install openjdk-21-jdk-headless screen collectd -y

Minecraft プロセスを動かす為のユーザ作成

Minecraft サーバは、server.jar を実行している間だけ機能する。
セキュリティの観点から、この server.jar を実行する為の専用ユーザを作成しておく。
→ もし server.jar を管理者で実行していた場合、サーバを攻撃されて権限を盗まれたら、何でも出来てしまう為。


## pre-setup

useradd -m -s /bin/bash mcuser
echo "mcuser:P@ssw0rd" | chpasswd
cd /home/mcuser
mkdir minecraft
cd minecraft

サーバインストール

Minecraft 本体のインストール。
本体の実行には、以下コマンドを入力する。

java -Xmx1024M -Xms1024M -jar server.jar --nogui


## install server

wget https://piston-data.mojang.com/v1/objects/59353fb40c36d304f2035d51e7d6e6baa98dc05c/server.jar
java -Xmx1024M -Xms1024M -jar server.jar --nogui
echo "eula=true" > eula.txt

自動起動設定

前述の通り、Minecraft サーバは、server.jar を実行している間だけ機能する。
当然、サーバを停止するとプロセスも停止する為、そのままだと、次に遊ぶ時に手動でプロセスを起動しなければならない。
Linux サーバには用意したプログラムを起動・停止時に自動実行する機能がある為、それを設定する。

  1. 複数行のコマンド実行に対応する為や、メンテナンスを簡単にする為、起動・停止をシェルスクリプト化する
  2. daemon 化する (serviceファイルを作成する)
  3. 自動起動設定を行う

## create start.sh

cat <<EOF > start.sh
#!/bin/bash
screen -S minecraft -U -d -m java -Xmx1024M -Xms${MaxMemorySize}M -jar server.jar --nogui
EOF
chmod 755 start.sh

## create stop.sh

cat <<EOF > stop.sh
#!/bin/bash
screen -p 0 -S minecraft -X eval 'stuff "stop\015"'
EOF

chmod 755 stop.sh
chown -R mcuser:mcuser ../minecraft/

## create daemon
sudo cat <<EOF > /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Server
After=network.target

[Service]
ExecStart=/home/mcuser/minecraft/start.sh
ExecStop=/home/mcuser/minecraft/stop.sh
Restart=always
Type=forking
WorkingDirectory=/home/mcuser/minecraft/
User=mcuser
Group=mcuser

[Install]
WantedBy=multi-user.target
EOF

### enable process

sudo systemctl daemon-reload
sudo systemctl enable minecraft.service

## start process
sudo systemctl start minecraft.service

Minecraft から本サーバの IP を指定して、ワールドに入れたら構築完了。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?