Google Compute Engine で Minecraft サーバを構築する
はじめに
こんにちは! です。
最近、友達とマルチプレイヤーで Minecraft がやりたいという話になり、インフラに関する知識はほとんどないですが、マインクラフトのサーバを構築することになりました。
この記事では、Google Compute Engine を使って、Minecraft サーバを構築する方法や学んだことを書きます。
この記事が他の人の参考になったら幸いです。
また、この記事の内容に誤った記載がありましたら、指摘してもらえるとありがたいです。
環境
名前 | バージョン |
---|---|
macOS Monterey | 12.3.1 |
Google Cloud SDK | 383.0.1 |
Compute Engine の仮想マシンのリソースを決める
Minecraft サーバに必要なリソースはどのくらいか?
まず、Minecraft サーバにどのくらいのリソースが必要か調べました。
さくらの VPS のおすすめでは以下のようになっていました。
人数 | CPU | メモリ(GB) | SSD(GB) |
---|---|---|---|
1 ~ 4 | 2 | 1 | 50 ~ 100 |
5 ~ 10 | 4 | 4 | 200 ~ 400 GB |
10 ~ | 6 | 8 | 400 ~ 800 |
ConoHa VPS の推奨プランでは以下のようになっていました。
人数 | CPU | メモリ(GB) | SSD(GB) |
---|---|---|---|
1 ~ 4 | 3 | 2 | 100 |
5 ~ 10 | 4 | 4 | 100 |
10 ~ | 6 | 8 | 100 |
この情報を参考にしながら、Compute Engine の料金と見比べて、構築するサーバのリソースを決定します。
Compute Engine のリソースと料金
この記事では Compute Engine 上に Minecraft サーバを構築します。
Compute Engine は仮想マシンを作成して実行できるコンピューティング、およびホスティングサービスです。
今回、Compute Engine 上に Minecraft サーバを構築するのは Compute Engine が従量課金制で利用できるからです。ゲームをするときだけ起動してそれ以外のときは停止します。
今回の用途からマシンファミリーは汎用
、マシンシリーズは E2
、N1
を考えました。
E2
、N1
の用意されているマシンタイプのリソースと料金は以下のようになります。
注意点として以下の表の料金は GCP Console で月間予想として表示される料金であり、リージョンなどによって変わる異なる可能性があるので参考程度に見てください。
マシンタイプ | vCPU | メモリ(GB) | 料金 | 永続ディスクの最大数 | 永続ディスクの最大合計サイズ(TB) | 最大下り帯域幅(Gbps) |
---|---|---|---|---|---|---|
e2-micro | 0.25 | 1 | $9.14 ($0.01) | 16 | 3 | 1 |
e2-small | 0.5 | 2 | $16.99 ($0.02) | 16 | 3 | 1 |
e2-medium | 1 | 4 | $31.38 ($0.04) | 16 | 3 | 2 |
e2-standard-2 | 2 | 8 | $64.05 ($0.09) | 128 | 257 | 4 |
e2-standard-4 | 4 | 16 | $126.81 ($0.17) | 128 | 257 | 8 |
e2-highcpu-2 | 2 | 2 | $47.68 ($0.07) | 128 | 257 | 4 |
e2-highcpu-4 | 4 | 4 | $94.06 ($0.13) | 128 | 257 | 8 |
e2-highcpu-8 | 8 | 8 | $186.81 ($0.26) | 128 | 257 | 4 |
n1-standard-1 | 1 | 3.75 | 32.44 ($0.04) | 128 | 257 | 2 |
n1-standard-2 | 2 | 7.50 | 63.58 ($0.09) | 128 | 257 | 10 |
n1-standard-4 | 4 | 15 | 125.86 ($0.17) | 128 | 257 | 10 |
私は Minecraft サーバに必要なリソースと、Compute Engine のリソースと料金の兼ね合いから e2-highcpu-2
を使用することにしました。
参考
Minecraft サーバを構成する
ここからは GCP の CLI ツール gcloud
を使って、サーバを実際に構築します。
GCP のプロジェクトは作成済みで必要な API も有効済みであり、gcloud
のセットアップも終わっているものとして進めます。
Compute Engine の仮想マシンを作成する
まず、以下のコマンドで外部静的 IP アドレス(グローバル IP アドレス)を作成します。
Minecraft サーバに外部からアクセスするために必要です。
gcloud compute addresses create minecraft-ip
以下のコマンドで、作成したアドレスの IP アドレスを確認しておいて下さい。
gcloud compute addresses describe minecraft-ip
そして、以下のコマンドで Compute Engine の仮想マシンを作成します。
--adress
には上記で確認した IP アドレスを使用します。
--tag
はファイアウォールを設定するのに使用します。
gcloud compute instances create minecraft-server \
--image=ubuntu-2204-jammy-v20220420 \
--image-project=ubuntu-os-cloud \
--machine-type=e2-highcpu-2 \
--address=<IP アドレス> \
--tags=minecraft-net
作成した仮想マシンに対して、ファイアウォールルールを作成します。
このファイアウォールルールは任意の IPv4 アドレス(0.0.0.0/0
)からの 25565
ポートへの TCP
もしくは UDP
プロトコルの通信のみを許可します。
Minecraft サーバとクライアントはデフォルトの場合に 25565
ポートで通信を行うので、その通信のみを許可するようにしています。
gcloud compute firewall-rules create minecraft-firewall \
--priority=1000 \
--direction=ingress \
--action=allow \
--rules=tcp:25565,udp:25565 \
--source-ranges=0.0.0.0/0 \
--target-tags=minecraft-net
参考
仮想マシンに接続し、Minecraft サーバを構築する
以下のコマンドで作成した仮想マシンに対して SSH 接続できます。
事前に SSH キーを作成していなくても対話的に自動で生成できます。
gcloud compute ssh "minecraft-server"
仮想マシンに接続できたら、Minecraft のサーバを構築していきます。
server.jar
は公式よりダウンロードします。
サーバのファイル名はバージョンが分かるように名前を server.1.18.2.jar
に変更しています。
eula.txt
は EULA (https://account.mojang.com/documents/minecraft_eula) に同意したことを示すためのファイルでサーバを起動するのに必要です。
screen -d -m
コマンドによってデタッチされたウィンドウでサーバが起動されます。
もし、そのウィンドウにアタッチしたい場合は screen -r minecraft
でアタッチできます。
現在のウィンドウをデタッチしたい場合はキーマップ ctrl-a d
で出来ます。
また、screen -ls
で起動しているウィンドウを見れます。
$ sudo apt update && sudo apt upgrade
# Java のインストール
$ sudo apt install openjdk-18-jre-headless
# Minecraft: Java Edition のサーバをダウンロード
$ mkdir ~/minecraft && cd ~/minecraft
$ curl -Ol https://launcher.mojang.com/v1/objects/c8f83c5655308435b3dcf03c06d9fe8740a77469/server.jar
$ mv server.jar server.1.18.2.jar
$ echo "eula=true" >> eula.txt
# Minecraft サーバを起動する
$ screen -S minecraft -d -m java -Xmx1024M -Xms1024M -jar server.1.18.2.jar nogui
起動したサーバを停止したい場合はサーバを起動しているウィンドウにアタッチして stop
とコマンドを打ちます。
参考
Minecraft サーバに接続する
サーバが起動できたので、Minecraft からサーバに接続します。
Minecraft Java Edition を開き、Multiplayer > Add Server
からサーバを追加します。
Server Name
に任意の名前を入れて、Server Address
に Compute Engine の作成時に --adress
に指定した値を入れます。
Server Resource Packs
は Prompt
のままで Done
をクリックすると接続できます。
最後に
ここまでの Minecraft サーバの構築はどうだったでしょうか?
自分が初めてサーバ構築をやってみた感想としては、知らないことばかりで難しすぎるというものです笑。
今回 Minecraft サーバを構築したのはいい経験になりました。
もっとインフラ関係に強くなりたいです。
Author And Source
この問題について(Google Compute Engine で Minecraft サーバを構築する), 我々は、より多くの情報をここで見つけました https://zenn.dev/minguu42/articles/20220502-build-minecraft-server-on-gce著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol