Azure 上で Minecraft Server を立てる

1. 仮想マシンの作成

まずは リソースの作成 から Ubutu Server 18.04 LTS を選択します。

f:id:takunology:20210119160631j:plain

仮想マシンの設定ですが、私はこのように設定しました。この辺は自由に選択しても良いと思います。

f:id:takunology:20210119160807p:plain

で、問題は サイズ の選択ですが Minecraft Server は特にプラグインや Mod を入れなければ 1GB のメモリでも動かせるので、B1ms を選択しました。マシン自体は 2GB で余裕を持たせています。

f:id:takunology:20210119161143p:plain

あとは SSH 用の設定ですが、ここも自由に設定します。

f:id:takunology:20210119161415p:plain

出来たら 確認および作成 をクリックします。作成時に、秘密鍵が発行されるので大事に保管しておいてください。

f:id:takunology:20210119161500p:plain

あとは内容を確認して 作成 をクリックし、デプロイが完了するまで待ちます。(ちなみに上記の構成では1時間当たり3円ちょっとみたいですね。)

f:id:takunology:20210119161658p:plain

完了したらリソースへ移動し、接続 から SSH を選択して接続方法を確認します。自分の場合は PoweShell 上で ssh 接続を行いました。

f:id:takunology:20210119162236p:plain

これでリソースの作成は完了です。

※ 使用しないときは仮想マシンを停止しないとコストがかかるので、停止するか自動シャットダウンの設定をしておくことをおススメします。

2. Minecraft Server のセットアップ

既存の環境では java がインストールできないので、まずはアップデートします。

sudo apt update

次に java をインストールします。

sudo apt install openjdk-8-jdk

正しくインストールされているかは、java -version コマンドで確認できます。

java -version

openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

次に、マイクラサーバ用ファイルを管理するためのディレクトリを作成し、そこに移動しておきます。

mkdir Minecraft
cd Minecraft

公式サイトから Minecraft Server をダウンロードします。ダウンロードリンクを右クリックして URL をコピーしておきます。

curl -LO https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar

これで Minecraftディレクトリに server.jar が配置されました。次に、サーバ起動用シェルスクリプトWindows でいうバッチファイル)を作成します。

sudo vim start.sh

中身を書きます。

#!/bin/sh
java -Xmx1024M -Xms1024M -jar server.jar nogui

作成したシェルスクリプトに実行権限を付与します。

sudo chmod o+x start.sh

できたら一度、シェルスクリプトを実行してみます。

./start.sh

すると、初回起動時はエラーを吐いて停止します。

[07:45:31] [main/ERROR]: Failed to load properties from file: server.properties
[07:45:32] [main/WARN]: Failed to load eula.txt
[07:45:32] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

なので、eula.txt の中にある eura=falseeura=true に変更します。

sudo vim eula.txt
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Tue Jan 19 07:45:32 UTC 2021
eula=true

上書き保存し、再度実行するとサーバが起動します。

[07:50:41] [Server thread/INFO]: Done (68.195s)! For help, type "help"

これでサーバの設定は完了です。

3. クライアントからの接続

いつも通り、Minecraft launcher で新規作成します。このとき、Server のバージョンと合わせてください。

f:id:takunology:20210119165856p:plain

これでクライアント側の設定は完了ですので、起動しておきます。

起動している間に、Azrure ポータルにてネットワークの設定を行います。ネットワーク から 受信ポートの規制を追加する をクリックし、使用するポートへの接続を許可します。

f:id:takunology:20210119171459j:plain

f:id:takunology:20210119171804p:plain

それぞれ、

  • ソース : 接続元(Minecraft のクライアント側)
  • 宛先 : 接続先 (Minecraft のサーバ側)

です。サーバのポート番号はデフォルトでは 25565 になっています。また、JavaMinecraftプロトコルTCP ですのでご注意ください。

次に、IPアドレスを確認します。リソースの概要にて、ネットワーク の欄にある パブリックIPアドレス をメモしておきます。この IPアドレスとポート番号 25565 を設定してサーバを作成します。

f:id:takunology:20210119171141j:plain

f:id:takunology:20210119171227p:plain

これでみんなでワイワイ Minecraft を遊べますね!

f:id:takunology:20210119172246p:plain

コスト面を考えると Realms のほうが安くて安定しているように思えますが、オリジナルの環境が欲しいときはアリですね。で、本当の目的は Azure Functions と組み合わせたりできるのかを試すためにサーバを立てました。

参考

参考になったサイトです。ありがとうございます。

qiita.com