0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS EC2に低コストでMinecraft(Paper)サーバーを構築する

0
Posted at

概要

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の学習を兼ねて独自プラグインを作成する
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?