こんにちは。
Minecraft 1.17 を友人とプレイするために、独自サーバを Amazon Lightsail で立てることにしたのですが、若干詰まりどころがあったため備忘録がてら書こうと思います。
Minecraft Live 2020 で発表された Minecraft Java Edition 1.17 は、2021 年 6 月 8 日にリリースされた大型アップデートです。
このアップグレード内容ですが、これまでは Java 8 だったマイクラの開発環境が Java 16 にアップグレードされました。
これに伴い、AWS が公式に出しているチュートリアル記事通りだとクライアントアプリ側で「クライアントとサーバでバージョンが違う」と怒られてしまい、サーバにログインできなくなってしまいました。
このような現象に対応した環境構築方法を書きます。
Minecraft 独自サーバについて
2021 年 6 月 22 日現在、Minecraft には大きく分けて「Java版」と「統合版」の2種類が存在します。
このうち、Java 版は Minecraft Java Edition というタイトルで、Windows・Linux・MacOS でプレイすることができ、OS 間でのクロスプレイにも対応しています。
Java 版の大きな特徴は、統合版よりもアップデートが早いことで、マイクラのアップデートは基本的に Java 版のアップデート内容が後日、統合版にも実装される流れになっています。
また、ユーザーの自作スキンと自作 MOD に対応しているのも Java 版のポイントです。
こんなマイクラを複数人でマルチプレイするには、「独自サーバを構築する」ことが最も有力です。
今回は、AWS のクラウドを利用し、マイクラの独自サーバを構築する手順を解説します。
独自サーバ構築手順
基本的には、AWS が公式に出しているドキュメントと、Minecraftが公式に出しているドキュメント通りに構築するだけですが、英語の記事ですので、できるだけわかりやすく解説します。
AWS の公式ドキュメントと相違のある点については記載していますので、その部分は特に注意して実行してください。
Amazon Lightsail インスタンスの作成
Amazon Lightsail のコンソールにサインインし、「インスタンスの作成」を選択します。
インスタンスイメージとして、プラットフォームは「Linux/Unix」、設計図は「OS のみ」から「Ubuntu 20.04 LTS」を選択します。
【ドキュメントと相違あり】インスタンスプランは「月額 10 ドル」のプランを選択することを推奨します。
AWS の公式ドキュメントでは、月額 5 ドルのインスタンスプランが記載されていますが、スペックが不十分で、ワールドがうまく展開できないことが多発しました。
インスタンスの名前を入力し、必要に応じて「キーオンリータグ」と「キー値タグ」を追加して「インスタンスの作成」を選択します。
サーバの構成
作成したインスタンスを選択し、「ネットワーキング」タブに移動します。
IPv4ファイアウォールから、下記の内容でルールを追加します。
アプリケーション プロトコル ポートまたは範囲 カスタム TCP 25565 【ドキュメントと相違あり】IPv4 ネットワーキングのパブリック IP から静的 IP を任意の名前でアタッチします。
スタティック IP アドレスをアタッチしないと、Lightsail インスタンスを再起動させた場合にパブリック IP アドレスが変更されてしまいます。 スタティック IP アドレスはデタッチされた状態だと課金されてしまうので注意しましょう。(そもそも、Lightsail インスタンスは停止状態でも月額課金されますのでこちらも気をつける必要がありますが…)
作成したインスタンスの「接続」タブに移動します。
「インスタンスへの接続 > ブラウザを使用する」の「SSH を使用して接続」を選択します。
EC2 のコンソールにログインできたら、下記のコマンドを実行します。
sudo apt -y update && sudo apt -y install default-jre screen
【ドキュメントと相違あり】Java 16 の OpenJDK をインストールします。
sudo apt update; sudo apt install openjdk-16-jdk-headless
Minecraft Server をインストール・実行
作業ディレクトリを作成します。
mkdir ~/my-minecraft cd ~/my-minecraft