マインクラフト統合版サーバ(Bedrock Dedicated Server Ver.1.16.200)をOracle Cloudで構築する

2020/12/17

Mac Minecraft OracleCloud

t f B! P L
画像はイメージですw

かなり昔に子供向けにSwitchを買ったときに一緒に買ったソフトがマインクラフト(通称マイクラ)。



あまりの面白さに親である俺もハマったクチwwwwwww
自動化装置を作るのがたのすぃ。

マイクラの日記をブログでの掲載は面倒臭い&センスがないので今のところは考えてない。

それはさておき、このマインクラフトはクロスプラットフォームとなっており、
ゲームができる機種なら一通り遊べる。
SwitchやPS4などの据置ゲーム機然り、Win10/MacやPC然り、iOS/Androidといったスマホ然り。
あらゆるデバイスで遊べる素晴らしいゲーム。

もちろんインターネットを介せば、一つの世界で複数人で遊ぶことも可能。
Switchなら1台で最大4人まで遊べマス。(その分処理落ち半端ないがwwwwww)

インターネット上で遊ぶ場合、マインクラフトのサーバにアクセスしないといけなくて、
自分の作った世界を公開するには「Realms」という公式サーバを使うのが一般的。
月々数百円かかるけど、他のオンラインゲームもそれくらいかかるよね。
と言いつつも、なんとこのサーバを自分で立てることも可能。
中には自サーバで運営をしている人もいるくらい。
そんな大人数でワイワイやるものではなく、少人数程度あれば
低スペック程度で実装は可能。

マイクラ専用のレンタルサーバを契約してみた(ドヤァ)
Ubuntuでマイクラサーバ立ててみた(ドヤァ)
AWSでマイクラサーバ立ててみた(ドヤァ)
みたいなWebページが沢山合ったけど、
それのOracle Cloud版を実践してみたってお話。
前提
以下の人向け。
  • Linuxを知っている
  • Oracle Cloud(AWSやGCP/Azureでもおk)を知っている
  • OCIのアカウントも持っている
  • 極力無課金でマインクラフトを離れた友達と遊んでみたい
  • マインクラフトはJAVA版ではなく統合版

そもそも「Oracle Cloudってなんぞや?AWSじゃあかんの?」って人。
AWSやGCPだとサーバにお金かかるでしょ?
Oracle Cloudなら1CPU/1GB程度のLinuxサーバなら2台までタダで利用可能なンだわ。
Linuxを勉強したいときや、簡易サーバを利用するには正にうってつけ。

VMインスタンス作成
早速、VMを作るところから。
Oracle Cloudの管理コンソールにログインして、「VMインスタンスの作成」をクリック。

インスタンス名を指定。
ここでは「minecraft-bds」とした。
そしてOSイメージをデフォルトの"Oracle Linux"から"Ubuntu"へ変更する必要があるので「編集」をクリック。

イメージの変更」をクリック。

イメージの一覧から「Canonical Ubuntu 20.04」にチェックを入れて、
イメージの選択」をクリック。
※"Always Free対象"と記載しているOSはマジでタダ

リモート接続するためにはSSH接続となるため、SSH秘密キーをDLする必要がある。
「SSHキーの追加」という項目で、「秘密キーの保存」からキーをDLしておく。
「公開キーの保存」は任意。
他のサーバも同じ秘密キーでアクセスしたい場合は公開キーもDLしておこう。

他の設定は基本的にデフォルトのままで構わない。
変えたければお好みで。
最後の「作成」をクリックするとVMが作成される。

「プロビジョニング中」となるのでしばらく待つと・・・。

こんな感じで「実行中」と変わればサーバは起動できている。
ものの数分でサーバが出来上がるとかホント便利な世の中になったもんだ。

SSH接続
作成したVMにSSH接続しよう。
先程の画面で「パブリックIPアドレス」を確認する。

先程確認したパブリックIP宛にターミナルソフトからSSH接続する。
もちろん秘密鍵を添えてw
具体的には以下の様に実施。(Macの場合)

ssh ubuntu@"パブリックIPアドレス" -i "秘密キー"
ちなみにMacだと秘密キーのパーミッションがおかしいとエラーになる。
何も意識せずに秘密キーをDLしただけではパーミッションは"777"になるから・・・。

そんなときは以下のコマンドでパーミッションを変えよう。
chmod 400 "秘密キー"
パーミッションを400つまり自分だけ読取専用にしておけばセキュリティ的にバッチリ!

無事にSSH接続できれば下のような画面に。

これでSSH接続できた。
Windowsの場合でも同様にSSH接続できるターミナルソフト(TeraTermとかPuttyとか)でも同様のことができますん。

サーバ初期設定
接続できたら一通りの初期設定をサクッとやっていく。
この初期設定も必要最低限のとこだけ。

まずは最新版にアップデート。
apt update → apt upgradeを順に。

sudo apt update
sudo apt upgrade -y


アップデートが終わったら、rebootコマンドで再起動。
sudoわすれんなよ!w
sudo reboot

プログラムファイルを解凍するのにunzipが必要なので、個別にインストールする。
sudo apt install unzip

タイムゾーンの設定。
デフォルトがUTC(世界標準時)になっているので時差が9時間マイナスとなっているので、
日本時間に合わせる。
sudo timedatectl
sudo timedatectl set-timezone Asia/Tokyo

サーバプログラムダウンロード、起動
マイクラのサーバプログラムをDLするお。
任意のフォルダを作ってwgetでDL。
mkdir bedrock
cd bedrock
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.16.200.02.zip

ちなみに2020/12/15時点の最新版は"1.16.200"。
実際にバージョンやURLについては以下から確認されたし。
右クリックでコピーすりゃOK。

ダウンロードできたらunzipで解凍。
unzip bedrock-server-1.16.200.02.zip

起動してみる。
公式サイトだと"LD_LIBRARY_PATH=. ./bedrock_server"だけで起動で切るよって書いてるんだけど、
それだとそのセッションを切れたらマイクラも終わってしまうので、
screenコマンドで別セッションで起動させる。
LD_LIBRARY_PATH=. screen -dmS bds ./bedrock_server
あとはscreenコマンドで確認(-ls)、アタッチ(-r)。
screen -ls
screen -r bds

下のようなイメージで「Server started.」と表示されていれば無事に起動できている。

ちなみに抜けるときはCtrlキー+A→Dの順番でキーを押す(デタッチ)。
マイクラサーバ自体を終了させるときは「stop」と入力する。

通信ポート開放(OCI側)
そこら辺のUbuntuサーバに入れた場合は上でつながる。
ただしOracle Cloudの場合はまだ設定が必要。
そう、ポート開放。
OCIのコンソールに戻って、インスタンスの詳細画面から「プライマリVNIC」の
パブリック・サブネット」をクリックする。

仮想クラウドネットワーク画面に遷移するので、
そこにある「セキュリティリスト」をクリックする。
デフォルトだと1個だけあるはず。

セキュリティリストにルールを追加しよう。
イングレス・ルールの追加」をクリックする。

ルールを追加する。
俺の場合は19132/udpと19133/udpを追加したけど、
OCIの場合はIPv6で通信することは殆どないから19132/udpだけでいいかもしれない。

通信ポート開放(Ubuntu側)
AWSやGCPなら上記のクラウド側FWにインバウンドルールを追加すれば繋がるんだけど、
OCIはもうひと手間ある。
それは、
 Oracle Cloudが提供するUbuntuインスタンスはFWがデフォルトで有効になっている
ということだ。
これに気づくのにスゲー時間かかって、丸一日悩んだwwwwwwww
多分RHEL系であるOracle LinuxやCentOSはそんなことないんだけど、何故かUbuntuはデフォルトにFWが有効になっているので、
単にルールを追加するだけじゃアカンということ。

詳細については以下に載っている。

というわけで、UbuntuのFW(iptables)にポート開放設定しよう。

まずはufwが無効になっていることと、iptablesの状況確認。
本来ならufwコマンドが主流なんだけど、Oracle Cloudだとiptablesを使っている模様。
sudo ufw status
sudo iptables -L

ぱっと見た感じ、インバウンド(INPUT)はICMPとNTPとSSHしか許可されていない。
なので、ルールを追加する。
sudo vi /etc/iptables/rules.v4

赤枠で囲った部分を追記。
これも19132/udpだけでいいかも。

編集が終わったらiptablesをリロード。
sudo /etc/init.d/netfilter-persistent reload

ルールが追加されていることを確認。
sudo iptables -L

最後に編集後の設定をsaveしておく。
sudo /etc/init.d/netfilter-persistent save

クライアント接続
ここまで来たらもう繋がったも同然。
今回はiPhone版から接続してみた。
サーバの接続画面のところで、「サーバーアドレス」にOCIのパブリックIPを入力すればOK。
サーバー名は何でも。

キタ━━━━(゚∀゚)━━━━!!

他の機種でも同じようにすれば繋がるかと。
ちなみにSwitch版で試してみたがRealmsサーバ以外はつながらないみたい。
ゴニョゴニョしたら野良サーバにも繋がるようなのでそれはまた別記事で。

その他運用周りとか
これで一通りマイクラサーバを立ち上げることができた。
あとは安定稼働にむけてサーバのカスタマイズ(マイクラを自動起動)とか、
マイクラのゲーム設定とか、今までで遊んでいたワールドのアップロードとかを
やってみたいんだけど、それはまた別の記事で気が向いたら・・・・・。

参考にしたサイト
以下が大いに参考になった。(順不同)
https://www.tsuruo5388.jp/minecraft-server-setup/

検索

Blog Archive

Popular Posts

About Me

自分の写真
性別:男
年齢:ついに40over
趣味:Snowboard、パソコン、iPhone、子育て

仕事:ユー子の社内SEとしてサーバ、NW等のインフラ全般をやってます

日々生活していく中で思ったことなどをつらつらと書いていきます。

どうぞよろしく!

ブログランキング

ブログランキング・にほんブログ村へ

QooQ