概要
AWS EC2を使って、なるべく費用を抑えながらMinecraft(Paper)サーバーを構築した際の手順をまとめます。常時稼働ではなく、遊ぶ時だけインスタンスを起動する運用を想定しています。
構成方針
-
インスタンスタイプ:
t4g.small(ARM/Graviton、オンデマンドでも比較的安価) - リージョン: 東京(ap-northeast-1)
- AMI: Amazon Linux 2023(arm64)
- ストレージ: gp3 10GB
- 課金対策: 使わない時間はインスタンスを「停止」し、EC2の稼働課金を止める(EBS分のみ課金)
前提
- Minecraft Java版のアカウント・クライアントを準備済み(Java & Bedrock Edition for PC / Standard Editionで問題ありません)
- AWSアカウント作成済み、IAMユーザーで作業(rootは使わない)
- コスト超過防止のため、AWS Budgetsで請求アラートを設定しておくと安心です
手順
1. EC2インスタンスの起動
以下の設定でインスタンスを起動します。
| 項目 | 設定値 |
|---|---|
| AMI | Amazon Linux 2023(arm64) |
| インスタンスタイプ | t4g.small |
| キーペア | 新規作成しダウンロード(.pem) |
| ストレージ | gp3 10GB |
セキュリティグループ
| タイプ | ポート | プロトコル | ソース |
|---|---|---|---|
| SSH | 22 | TCP | 自分のIP(マイIP) |
| カスタムTCP | 25565 | TCP | 自分のIP(友人にも公開する場合はAnywhereや個別IP) |
ポイント: SSH(22番)は世界中からの総当たり攻撃対象になりやすいため、必ず「自分のIP」に絞ります。Minecraft用の25565番は、テスト段階では自分のIPのみに絞り、友人を呼ぶ段階でAnywhere(
0.0.0.0/0)や友人個別のIPに変更するのが安全です。
2. SSH接続
Windowsの場合、PowerShellから接続できます。
cd $env:USERPROFILE\Downloads
icacls.exe your-key.pem /reset
icacls.exe your-key.pem /grant:r "$($env:USERNAME):(R)"
icacls.exe your-key.pem /inheritance:r
ssh -i your-key.pem ec2-user@<パブリックIPアドレス>
3. Javaのインストール
Paperの最新バージョンはJava 25以上を要求するため、Corretto 25をインストールします(古いバージョンのPaperを使う場合はJava 21で問題ない場合もあります)。
sudo dnf update -y
sudo dnf install java-25-amazon-corretto -y
java -version
もし別バージョンのJavaが優先されている場合は切り替えます。
sudo alternatives --config java
4. Paperサーバーのダウンロード
PaperMC公式サイトから最新のバージョン・ビルド番号を確認し、ダウンロードします。ダウンロード方式は変更される可能性があるため、公式サイトで最新のダウンロードリンクを都度確認するのが確実です。
mkdir minecraft && cd minecraft
curl -o paper.jar <公式サイトで確認したダウンロードURL>
5. EULAへの同意
echo "eula=true" > eula.txt
6. tmuxのインストールとサーバー起動
SSH接続を切ってもサーバーを動かし続けるため、tmuxを使用します。
sudo dnf install tmux -y
tmux new -s mc
tmuxセッション内でサーバーを起動します。
java -Xmx1536M -Xms1024M -jar paper.jar nogui
Done (X.XXXs)! For help, type "help" が出れば起動成功です。Ctrl+B → D でデタッチすると、SSHを切断してもサーバーは動き続けます。
7. クライアントから接続
Minecraft Launcherを起動し、「マルチプレイ」→「サーバーを追加」でEC2のパブリックIPv4アドレスを入力すれば接続できます。
つまずいたポイント
Javaのバージョン不足
Minecraft 26.1 and newer requires running the server with Java 25 or above.
Paperの新しいバージョンはJava 25以上が必須です。java-25-amazon-corretto をインストールし、alternatives --config java で切り替えます。
「無効なセッションです」エラー
ログインに失敗しました:無効なセッションです(ゲームとランチャーを再起動してください)
これはサーバー側ではなくクライアント側の認証トークンの問題でした。Minecraft LauncherとゲームクライアントをTaskごと完全に再起動したところ解消しました。購入・インストール直後によく起きる現象のようです。
運用ルーチン(コスト削減の要)
-
遊ぶ時: EC2インスタンスを起動 → SSH接続 →
tmux attach -t mc(セッションが残っていればサーバーは起動中) -
終わる時: サーバーコンソールで
stopと入力し、ワールドデータを安全に保存 → その後EC2インスタンスを「停止」(Terminateではないことに注意)
注意:
stopコマンドを実行せずにEC2インスタンスをいきなり停止すると、直前の変更が保存されない可能性があります。必ずサーバー内でstopしてからEC2を停止する順序を守ります。
また、Elastic IPを使わない場合は、インスタンスを停止・起動するたびにパブリックIPアドレスが変わる点にも注意が必要です。
今後の展望
- 自動停止の仕組み化(接続がない時間が続いたらLambdaやBatchで自動停止)
- Paperのプラグイン開発環境(IntelliJ + Maven + Paper API)を整え、Javaの学習を兼ねて独自プラグインを作成する