はじめに
- 概要: AWS EC2インスタンス上で、Java版、**統合版(Bedrock/Switch/スマホ)**の全てのデバイスからアクセス可能なマルチプレイサーバーの構築手順を解説します。
- 目的: AWS EC2を利用してどんなデバイスやバージョンを持つ人とも一緒に遊べるサーバー環境を構築します。
- 前提: AWSアカウントが開設済みであること。
第1章: AWS基盤とクロスプレイ設計
1.1 EC2インスタンス
- AMI (OS): Amazon Linux 2 (デフォルト)
-
インスタンスタイプ:
-
t3.medium (強く推奨): 4 GiBメモリを確保。
クロスプレイプラグインとサーバーの安定稼働には、このぐらいのリソースが必要になった。 - t3.small では実際に確かめたが、サーバが立ち上がらなかった。
-
t3.medium (強く推奨): 4 GiBメモリを確保。
1.2 ネットワークとセキュリティグループの設定
- セキュリティグループの作成: 外部からのアクセスを許可するためのファイアウォールルールです。
-
必須ポートの開放(全プラットフォーム対応):
- SSH: Port 22/TCP (サーバー管理用)。
- Java版: Port 25565/TCP。
- 統合版/Bedrock (Switch/スマホ): Port 19132/UDP。
-
アクセス元: まずは
0.0.0.0/0に設定します。
セキュリティ上好ましい対応ではないので、動作確認後にアクセス元IPを限定できれば、制限をかけましょう。
1.3 EC2インスタンスの起動
- 設定を確認し、インスタンスを起動。キーペアはSSH接続で使うので安全に保管しておきましょう。
第2章: SSH接続とサーバー環境のセットアップ
2.1 SSH接続の準備 (Tera Term編)
AWS EC2へ接続し、サーバーのセットアップを行うために、SSHクライアントソフト Tera Term を使用します。
1. 秘密鍵(.pemファイル)の権限設定
AWSからダウンロードした秘密鍵ファイル (.pem) は、そのままではセキュリティ設定が厳しいため、権限を変更する必要があります。
-
コマンド:
chmod 400 your-key-pair.pem - 解説: このコマンドを PowerShell または Git Bash で実行し、鍵ファイルに読み取り専用 (400) の権限を与えます。これを怠ると、Tera Termを含む多くのSSHクライアントで接続エラーが発生します。
2. Tera Termでの接続手順
- 接続ダイアログの表示: Tera Termを起動し、「ホスト(H)」の欄に、EC2インスタンスの パブリックIPアドレス を入力し、「OK」をクリックします。
-
ユーザー名と認証: 新しいウィンドウで以下の設定を行います。
-
ユーザー名(U):
ec2-user(Amazon Linuxのデフォルトユーザー名) - 認証方法: 「RSA/DSA/ECDSA/ED25519 の鍵を使う」を選択。
-
鍵ファイル: 「秘密鍵(K)」の横にあるボタンを押し、権限設定を終えた
your-key-pair.pemファイルを選択します。
-
ユーザー名(U):
- 接続完了: 「OK」をクリックすると、ターミナル画面が表示され、EC2インスタンスへの接続が完了します。
2.2 OSの準備とJavaのインストール
- Javaのインストール: SSH接続後、Minecraftで推奨される Java 21 (Amazon Corretto) をインストール。
-
PaperMCの配置:
~/minecraftディレクトリに、高速でプラグイン互換性の高いPaperMCのpaper.jarをダウンロード。
2.3 全機種対応プラグインの導入
-
導入手順:
~/minecraft/pluginsディレクトリを作成し、以下の3つのJARファイルを配置します。- Geyser-Spigot: 統合版クライアントからの接続をJava版プロトコルに変換するメインの橋渡し役。
- Floodgate: 統合版ユーザーの認証(Javaアカウントなしでのログイン)を可能にするプラグイン。
- ViaVersion: クライアントとサーバーのバージョン差異を吸収し、幅広いバージョンからの接続を可能にします。
第3章: サーバーの起動と接続確認
3.1 サーバーの永続稼働設定 (Systemdによるサービス化)
Linuxの標準機能であるSystemdを使ってサーバーをサービスとして登録することで、SSH接続を切断した後もサーバーを安定して稼働させます。
-
起動スクリプトの作成: サーバー起動コマンドを
start_server.shに記述し、実行権限を与えます。# /home/ec2-user/minecraft/start_server.sh を作成し、以下を記述 #!/bin/bash cd /home/ec2-user/minecraft /usr/lib/jvm/java-21-amazon-corretto.x86_64/bin/java -Xms2048M -Xmx3072M -jar paper.jar nogui chmod +x /home/ec2-user/minecraft/start_server.sh -
Systemdサービスファイルの作成:
/etc/systemd/system/minecraft.serviceを作成し、上記「2. Systemd サービスファイルの作成」の [Unit]から[Install]までの内容を記述します。 -
サービスの有効化と起動:
これでサーバーがバックグラウンドで起動し、接続を切っても動作し続けます。
sudo systemctl daemon-reload sudo systemctl enable minecraft.service sudo systemctl start minecraft.service
3.2 接続確認(全プラットフォーム)
| プラットフォーム | 接続情報 |
|---|---|
| Java版 (PC) | IPアドレスとポート 25565 を使用。 |
| 統合版 (スマホ/タブレット) | IPアドレスとポート 19132 を使用。 |
| Nintendo Switch | IPアドレスとポート 19132 を使用。 |
まとめ
- t3.medium インスタンスと、25565/TCP + 19132/UDP のポート開放が、全てのプラットフォーム対応のサーバー基盤となります。
- PaperMCと Geyser/Floodgate/ViaVersion の組み合わせが、全機種からのマルチプレイを実現します。
- 実際はこの基盤に、LINE Botによる自動起動を導入し、使いやすくしています。