【GCP】Google Cloud Platform でMinecraftマルチサーバーを立てる方法

#0. はじめに

今回は、google Cloud Platform内のGoogle Compute Engineを使用して
Minecraftマルチサーバーを立ち上げたいと思います。

#1. Google Cloud Platformにアカウント作成

以下リンクへ飛び、「GCP 無料トライアル」を選択する。
リンク:https://cloud.google.com/?hl=ja

![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/13ef1eac-5991-34b5-0277-64eb276f6d17.jpeg)

利用規約等を入力してどんどこ進んでください。

最後に「無料トライアルを開始」を選択して作成完了となります。

※画像の右にある通り、無料トライアル期間が過ぎても自動で請求することはないので
安心して使えるかなと思います。

![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/2a376c90-bb6b-2159-81ce-720c620b0208.jpeg)

#2. Google Cloud Platformのダッシュボードへ移動

作成が完了しましたら、「コンソールに移動」を選択する。

![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/4e368caf-f897-5afd-dd36-820a97c08903.jpeg)

#3. インスタンス作成

コンソール画面の左上にある「≡」を選択し、「Compute Engine」→
「VMインスタンス」を選択する。

![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/fbe4991b-cabf-ad41-8a4c-5b5e9f3755c1.jpeg)

VMインスタンスから「作成」を選択する。

![5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/c0adb61e-46ab-3d6d-a7cb-daab5f634c4f.jpeg)

名前:任意(まあ、minecraftとかわかりやすいのでいいんじゃないかな)
リージョン:us-west1(オレゴン)
ゾーン:us-west1-b
マシン構成:f1-micro(1 vCPU、 614MBメモリ)
ブートディスク:Debian GNU/Linux 9 (stretch) 30GB
ファイアウォール:HTTPおよびHTTPS トラフィックを許可する

を選択後し、ネットワークを選択する

![6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/e7dd0d5c-4b6d-723b-b3f8-0a21f06e06e6.jpeg)

ネットワーク インターフェース内の外部IPをクリックし、「IPアドレスを作成」を選択する

![7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/67811359-fe6e-14fc-138e-64a459707aff.jpeg)

名前:任意

を入力後、「予約」を選択する。

![8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/bcdcffb5-ac33-8492-876f-12c1422c318d.jpeg)

以上を選択後、「作成」を選択する。

#4. SSH設定

・ポート変更

「メニュー」→「VPCネットワーク」→「ファイアウォールルール」を選択

![9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/3e4bcd84-68ad-5cff-fc72-f2fb5b5da8fb.jpeg)

「ファイアウォール ルールを作成」を選択

![10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/4878b05a-e34f-004b-78c3-a7a859170a0d.jpeg)

一例
・サーバー用

名前:allow40022-server
ターゲット タグ:allow40022-server
ソースIPの範囲:0.0.0.0/0
TCP:40022

・Minecraft用

名前:maincraft
ターゲット タグ:maincraft
ソースIPの範囲:0.0.0.0/0
TCP:25565

を設定後、「作成」を選択する。

![11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/acf7ec09-04ee-0945-7702-b9d009f3b6e3.jpeg)

・サーバーへ適応

先ほど作成した設定をインスタンスに紐づけします。

「メニュー」→「Compute Engine」→「VMインスタンス」を選択し、
先ほど作成したインスタンスを選択し、「編集」を選択する。

![12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/4783680e-5eb5-fa94-f87f-fa6d93502c64.jpeg)

先ほど作成した設定名を「ネットワーク タグ」へ追加設定し、保存を選択する。

![13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/a32272d0-b727-495d-a677-f677d50cc7e5.jpeg)

・sshd_configのポート番号設定変更

「メニュー」→「Compute Engine」→「VMインスタンス」を選択し、「SSH」を選択する。

![14.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/6a441a7b-0254-57af-1d4e-dcb38feea2cd.jpeg)

黒い画面が新しく表示されると思うので、そこで以下コマンドを実行する。

```# vi /etc/ssh/sshd_config```

#Port 22というところの下に以下を追加
Port 40022

※入力ができない！！という人がいたら、「Esc」を押しそのあと入力を行いたい場所で「a」を押す。
※終了できない！！という人がいたら、「Esc」を押しそのあと「:wq」を押す。
※「:wa」を押したときに、「E45： 'readonly' option is set (add 1 to override)」が
出た場合は、ユーザに権限が足りないので一度「Esc」→「:q!」を押し、以下コマンドを実行

```# sudo su```

実行後、再度 viコマンドから始める。

その後、以下コマンド実行

```# systemctl restart sshd```

設定したポートでsshができるかを確認する。

「SSH」→「ブラウザ ウィンドウでカスタムポートを開く」

ポート:40022

を設定後、開くを押しコンソールへログインできることを確認する。

![15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/af5a42b8-fce1-dc08-7c85-39f0037fb35b.jpeg)

![16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/9bb32b98-05d7-66c3-2e1b-dc3a909990b7.jpeg)

・ポート22番を閉じる

「VPCネットワーク」→「ファイアウォール ルール」を選択する。

![17.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/39c34abc-55f2-26db-402b-3854b5bd81d7.jpeg)

「ファイアウォール ルールの作成」を選択し、今度は22ポートを閉じるものを作成する。

名前:disallow22-server
一致した時のアクション:拒否
ターゲット タグ:disallow22-server
ソースIPの範囲:0.0.0.0/0
指定したプロトコルとポート:tcp:22

を設定し、「作成」を押す。
作成したものを、インスタンスへ追加します。
追加後、ポート22でssh接続ができないことを確認。

#5. minecraftマルチサーバー導入

・javaインストール

```# apt-get install default-jdk```

```# java -version```

java versionで1.8が表示されることを確認

・screenインストール

```# apt-get install screen```

・Minecraftインストールディレクトリ作成
Minecraftマルチサーバーをインストールするディレクトリを作成する。
お好みで場所変更してください。

```# mkdir ~/minecraft```

```# cd ~/minecraft```

・Minecraftマルチサーバーインストール

```# wget https://s3.amazonaws.com/Minecraft.Download/versions/1.12.2/minecraft_server.1.12.2.jar```

・Minecraftマルチサーバー(バニラ)を起動

```# java -Xms600M -Xmx600M -jar minecraft_server.1.12.2.jar nogui```

起動後、規約を承認するため以下を変更する。

```# vi eula.txt```

変更前:eula=false
変更後:eula=true

再度起動する。

```# java -Xms600M -Xmx600M -jar minecraft_server.1.12.2.jar nogui```

ここまでで、Minecraftマルチサーバーバニラ版は作成完了です。

ここからはmod関連になります。

#6. forge導入

・installerをDL

```# wget https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.23.5.2768/forge-1.12.2-14.23.5.2768-installer.jar```

・universalをDl

```# wget https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.23.5.2768/forge-1.12.2-14.23.5.2768-universal.jar```

・forgeサーバをインストール

```# java -jar ./forge-1.12.2-14.23.5.2768-installer.jar nogui --installServer```

・forgeサーバを起動

```# java -Xms600M -Xmx600M -jar forge-1.12.2-14.23.5.2768-universal.jar nogui```

※forge導入後にサーバを起動するとメモリーの関係上、起動が遅いかもしれません。

#■参考リンク
・https://qiita.com/ryuta69/items/dbb0db5cf7099b7a7cc4
・https://qiita.com/riku-shiru/items/a870edd9dc0b132e092c