GCPでマイクラサーバー
外にマイクラサーバー立てよう、と思ってどこでやるかなーと探してたところ、 Google Cloud Platformで立てられるチュートリアルが公式から出てる、という情報をゲットして、やってみた。
Setting up a Minecraft server on Google Compute Engine | Solutions | Google Cloud Platform
ちなみにGCP初心者です。
以下内容はほぼ↑の公式チュートリアルまんまだけど、ちょっとアレンジしたところ(スペックケチるとか、フォーマットのコマンドがなくなってたのに対応とか)がある。
1. GCPプロジェクトを作る
まずはGoogle Cloud Platformのプロジェクトを作る。
いろんなGCPのサービスを入れるための入れ物のような感じ。
xxx_minecraft
とでもして、マイクラ関連のプロジェクトだとわかるようにしとくと良い。
プロジェクト名はユニークでないとダメなので、xxxの部分でオリジナル感を出す。
2. Compute Engine instance を作る
マイクラサーバーを実行してくれるVMを作る。
チュートリアル通りに進むのであれば、 mc-server
と名付ける。
(私のようにGCPに慣れていない人ならGCP各サービスの名前がごちゃごちゃになって、何の設定してるのかわからなくなると思うので、チュートリアル通りに名付けるのが吉)
指定するスペックは以下の通り。 (ここでちょっとチュートリアル逸脱して、zoneとか勝手に近いのにしてみた)
- インスタンス名 : mc-server
- ゾーン : asia-east1-a
- マシンタイプ : g1-small (1.7 GB memory)
- ブートディスク : Debian GNU/Linux 8 (jessie) (10GB) - デフォルトまま
- タグ :
minecraft-server
とつける
変更点
- ゾーンを東アジアにしてみた(台湾らしい)
- マシンタイプをケチって1個下にしてみた
- 4,5人でプレイしてみたけど全然大丈夫
- 最初一番下の
f1-micro (0.6 GB memory)
にしてみたら、さすがに3人接続目くらいで落ちたので作り直した・・
- ブートディスク SSDにしろとか書いてあったけど、デフォルトのままにしてみた(特に問題なし)
タグについて
VMにタグが付けられる。 VM作ってると下の方に出てくる「設定」リンクをクリックすると出てくる、詳細オプション。
後でネットワーク設定に使うので忘れずに設定すること。
チュートリアルで、さらっと
Tag your instance
Later in the tutorial, you'll use this tag to create a firewall rule that will allow external Minecraft clients to access your server.
後でファイアウォールの設定に使うよ、と書いてある。 (ここをさらりと読み飛ばしていて、ファイアウォール設定に手間取った・・)
タグ設定は大事なので、ちゃんと設定しとく。
えいっとVMを立ち上げる。(しばし待つ)
後でとか言って忘れるのでネットワークの設定やっとく
Google Cloud Platform の左上ロゴから、ツールとサービスをクリック
- 「ネットワーキング」を選ぶ
- 「ネットワーク」から
default
を選ぶ - 「ファイアウォール ルールを追加」ボタンをクリック
以下の詳細でルールを追加する
- 名前: minecraft-rule
- ソースフィルタ: すべてのソースから許可 0.0.0.0/0
- 許可対象プロトコルとポート: tcp:25565
- ターゲットタグ: minecraft-server
VM のタグで指定した minecraft-server
とファイアウォールルールのタグを一致させる。
参考URL Google Compute Engineのファイヤーウォールを理解する #gcpja | Developers.IO
ディスクを追加する
VMのブートディスクとは別にディスクを追加しておく。 マイクラサーバーの本体はこちらにインストールしておくと、後々VMを入れ替えたりするような時に役立つ。
マシンタイプをケチって最小にしたら、マシンタイプは後で変更できなくて、VMインスタンス作り直しになり、 ディスク別にしておいてよかったーと思った ww
ディスクを作成のスペック
チュートリアル通り、ディスクタイプはSSDに変更する。 ゾーンだけVMと合わせてみる。(近い方がいいだろう) IO多いはずなので、従っといたほうが良いと思う。
IP
VM立ち上げると自動でIP振られるので、これは特にいらないと思う。
ディスクのマウントとフォーマット
VM名(mc-server)横に SSH
ボタンがあるのでクリック
ウェブコンソールでSSHログインする
ディスクのフォーマット&マウント
VM と diskをアタッチ
VMから外部ディスクが使えるように、アタッチする。 最初Webのコントロールパネルからできたような気がするんだけど、改めて見たら選び方がわからなくなってしまったので、ローカルマシンのコンソールからやる方法を記載してみる。
チュートリアルでは、
Click Create to create the new disk. When you create the instance, the disk will be attached automatically. とあるので、ディスク作成時に自動でアタッチされるらしい。。
以下はもし自動でアタッチされなかった場合の手順。
gcloud SDK インストール
インストーラーでよしなにインストールする
gcloud 設定
Auth
Google Accountにログインできるようにする
$ gcloud auth login
コンソールから↑コマンドを叩くと、ブラウザが起動して、Google Accountにログインするか聞かれる。 許可を与える。
確認
$ gcloud auth list
Project 設定
$ gcloud config set project PROJECT_ID
PROJECT_ID には最初に設定したGCPプロジェクト名を入力 (xxx_minecraftのとこ)
attach disk
Adding or Resizing Persistent Disks | Compute Engine Documentation | Google Cloud Platform
$ gcloud compute instances attach-disk minecraft-hr-n --disk minecraft-disk --zone asia-east1-a
アタッチ完了。
もちろん逆もできる。
detach disk
$ gcloud compute instances detach-disk mc-server --device-name minecraft-disk --zone asia-east1-a
ローカルマシンでの作業ここまで。
アタッチしたディスクをフォーマットする
ここからまたWebのコンソールからSSHログインしてコマンドを実行する。
ディスクを初期化してよい場合のみ実行。 (ディスク上にあるデータはまっさらになってしまうので、注意)
チュートリアルのディスクフォーマットコマンドは廃止されたらしいので、以下の情報を元に実行
参考URL :
user@mc-server: sudo mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/google-minecraft-disk
注意点!
SSHログインしたコンソールで
user@mc-server: /dev/disk/by-id/[TAB]
by-idの後タブキーを打つことで、自分のとこのディスクIDがわかる。
外部ディスクのディスクタイプをSSDに変更している場合、 scsi-
のような感じで始まるディスクがそれ。
マウントする
マウントするディレクトリを作成
user@mc-server: sudo mkdir -p /mnt/disks/minecraft
マウントする(by-id以下はさっきフォーマットしたときに指定したDiskID)
user@mc-server: sudo mount -o discard,defaults /dev/disk/by-id/google-minecraft-disk /mnt/disks/minecraft
ここまでできればあと一息!
JRE インストール
パッケージのアップデート
user@mc-server: sudo apt-get update
JRE インストール
user@mc-server: sudo apt-get install -y default-jre-headless
マイクラサーバーのダウンロード&インストール
マウントしたディスクに移動
user@mc-server: cd /mnt/disks/minecraft
マイクラサーバーの使いたいバージョンをダウンロードする
jar の url をコピー wgetでダウンロード
user@mc-server: wget https://s3.amazonaws.com/.....
マイクラサーバー起動
user@mc-server: java -Xms1024M -Xmx1024M -d64 -jar minecraft_server.jar nogui
ていうかこの辺からは普通のマイクラサーバー起動時の設定なので、省略!
eula.txtの設定やら、server.properties やら、screenでssh切っても大丈夫にするなど。
Happy Minecraft life :)