2
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?

【GCP】マイクラのソロワールドをGCPでマルチサーバーにした話【minecraft】

Posted at

はじめに

MinecraftのJava版ソロワールドのデータを、GCPのCompute Engineを使用してマルチサーバーを立ち上げ、そちらに移す作業を行いました。

今回は鯖立てに至った経緯から、サーバーを立てて実際にワールドに参加するところまでの流れについてまとめていきたいと思います。

目的

もともとシングルプレイのワールドで遊んでおり、友人とマルチプレイをしようとなった際、そのワールドを使い都度LANに公開からポート番号の設定を行い公開し、別途ポート開放を行っていたのですが、その作業を毎回するのが面倒だと感じ最初からサーバーとして立てておけば毎回作業する必要もなくなると考えました。

その際、自宅鯖では常時PCを起動しておかなければいけないなどの問題から、クラウドの勉強を兼ねてGCPでサーバーを立てることにしました。

1.アカウント登録

以下のサイトからGCPのアカウント登録を行います。

ニーズの説明を選択し利用規約に同意して続行を選択し、電話番号・クレジットカード情報などを入力して完了を押すとGCPが利用可能になります。

2.仮想マシンの作成

ダッシュボード画面左上に表示されるハンバーガーメニューよりCompute EngineVMインスタンスを選択します。
image.png

VMインスタンスの画面が表示されるので、インスタンスを作成を選択します。
image.png

インスタンスの作成画面になるので、設定を行います。
基本的な構成はお財布などと相談し、それぞれのお好みで設定してください。
今回私はできるだけ安くなるよう、リージョンには一番料金のかからないus-west4(ラスベガス)を選択し、マシンの構成も安価のE2とし、マシンタイプもサーバーに大人数が入るわけではないので、基本のe2-mediumとしました。
また、可溶性ポリシーのVMプロビジョニングモデルを、標準からスポットに変更しておくことでさらに価格を抑えることができるためおすすめです。

image.png
image.png

ブートディスクなどの設定もお好みでいいと思います。
ファイアウォールはHTTP/HTTPSどちらのトラフィックも許可しておきましょう。

image.png

デフォルトの設定ではVMを起動するたびにIPアドレスが変更されてしまうので、IPアドレスの設定もしておきましょう。
最下部の詳細オプションを展開し、さらにその中のネットワーキングを展開します。そしたら、その中のネットワークインターフェースを開き、プライマリ内部IPv4アドレスの中にある静的内部IPV4アドレスを予約を選択します。
そこで任意の名前をつけて予約を選択することで、静的アドレスを設定できます。

image.png
image.png
image.png

ここまで出来たら下の作成をクリックしインスタンスを作成します。

3.作成したインスタンスの設定

3-1.サーバーの作成

インスタンスの作成後SSHを選択し、接続を行います。

image.png

接続が完了したらパッケージのアップデートとアップグレードを行います。

sudo apt update && sudo apt upgrade

次にサーバーを立てるためのserver.jarを動かすためのJREをインストールします。

sudo apt install -y default-jre-headless

それができたらminecraftのサーバーをインストールするために、ディレクトリを作成し移動します。

mkdir minecraft
cd minecraft

ディレクトリを移動したら以下のURLから。最新バージョンのserver.jarをダウンロードするURLをコピーして下記のコマンドを実行しダウンロードします。
今回であればバージョン1.20.4をダウンロードしています。

curl -OL https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar

ダウンロードができたらサーバーを一度起動します。

java -Xmx1024M -Xms1024M -jar server.jar nogui

これにより作成されるeula.txtをnanoやvimなどのエディタで開き、その中のeula=falseeula=trueに書き換えます。

vi eula.txt

再度サーバーを起動するとワールドなどのデータが作成されます。
これでサーバーの作成は一旦完了です。
新規ワールドでプレイしたい場合、インスタンスの設定はここまでで大丈夫です。

3-2.シングルプレイのワールドを移動

ここからは、既存ワールドをローカルからインスタンスへの移動を行います。
事前にローカル上のシングルプレイで利用しているワールドのデータを、zipファイルに圧縮しておきます。
SSH接続をしている画面上部にあるファイルをアップロードをクリックし、ファイルを選択で先ほど作成したzipファイルを選択し、ファイルをアップロードをクリックします。

image.png
image.png

アップロードが完了すると/home/user(ユーザー名)にzipファイルが追加されていると思います。そしたら、ディレクトリminecraft内にあるworldフォルダを削除し、zipファイルをminecraftディレクトリに移動させます。

cd minecraft
sudo rm -rf world
cd ..
sudo mv world.zip minecraft

移動が完了したらzipファイル解凍のためにunzipをインストールします。

sudo apt install -y unzip

インストールが完了したらmincraft内に移動し解凍し、解凍したフォルダ名をworldに変更してください。
これによりワールドデータの移動が完了です。

cd minecraft
sudo unzip world.zip
sudo mv ファイル名 world

4.ファイアウォールの設定

作成したインスタンスに外部から接続できるように、minecraftサーバーで使用するポートを開放します。
VPCインスタンスファイアウォールを選択します。

image.png

新しくルールを追加するためにファイアウォールルールを作成をクリックします。

image.png

名前は各々任意のわかりやすいものにします。
下へスクロールし、ターゲットタグに分かりやすいような任意のタグ名を付け、送信元IPv4範囲に「0.0.0.0/0」を設定して、プロトコルとポートにminecraftのデフォルト値のtcp:25565を設定します。
以上の設定を行ったら作成をクリックすることでルールが作成されます。

image.png
image.png

次に、このファイアウォールルールを仮想マシンに適用します。
VMインスタンスに戻り適用する仮想マシンを指定し、編集をクリックします。

image.png
image.png

ネットワークタグの設定部分にターゲットタグで設定したものと同じタグを設定して保存します。

image.png

これでアクセスができるようになったはずです。

5.minecraftに接続

5-1.screenコマンドを使用しサーバーの起動

SSH接続でサーバーを起動した後、接続が切れた後でもサーバーが持続できるように、screenコマンドを使用してサーバーを起動します。

screen -S minecraft java -Xmx1024M -Xms1024M -jar server.jar nogui

起動後:ctrl + a -> d

現状のセッションを確認する場合は

screen -ls

起動している内部に入る場合

screen -r minecraft

などのコマンドを使ってください。

これでサーバーが立ち上がったはずです。

5-2.サーバーに接続

マルチプレイからサーバーを追加をクリックし、サーバーアドレスに今回構築した仮想マシンのIPアドレスを入力し、完了をクリックします。

image.png

追加したサーバーへ接続可能になっていれば成功です。

image.png
image.png
image.png

まとめ

今回GCPを使用してminecraftに接続するまでを行い、クラウドコンピューティングの基礎的な何となくの知識は得ることができたのではないかと感じました。
スペック等がどれくらい負荷をかけても大丈夫なのかなどのことは、追々行っていこうと思います。

参考にさせていただいた記事

2
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
2
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?