OCIのAmpareインスタンス(4OCPU/メモリ24GB)でMinecraft統合版サーバを動かす

2022/09/19

Linux Minecraft OracleCloud

t f B! P L

Oracle Cloudのx86インスタンス(1OCPU/メモリ1GB)の無料利用枠を使い、

その上でマインクラフトの統合版サーバ(Bedrock Dedicated Server)を動かしてる。



Dockerで立てると、コンテナを再起動するたびに最新版にバージョンアップされるので更新が楽ちん。

遊び始めた頃は特に不満がなかったのだけど、

拠点に村人を増やしたり、自動化装置を作っていったりすると明らかにスペック不足で

非常に動きがモッサリ。

一人で遊んでいてもとてもストレスだった。


Oracle Cloudでは無料利用枠で4OCPU/メモリ24GBまでのAmpareインスタンス(Armベース)が使えるので、

統合版サーバがArm64対応してくれたら完璧だったのだけど、

メーカーとしては非対応。(そもそも統合版サーバ自体アルファテストの段階・・)


↓の記事ではQEMUというツールを使えばArmでもサーバが動くという記事も書いたけど、

QEMU自体が微妙という結末で、実際には使っていなかったのね。



同じようなことを考える人はたくさんいるようで、

「box64」というツールを使えばx86_64でしか動かないプログラムをArm64でも動かせるようにできるそうな。

既に実施されている方がいました。



他にも、JAVA版のサーバであればArmでも動くので、プラグイン入れれば統合版クライアントも遊べる。

JAVA版と言うよりも、純粋に統合版として遊びたかったので、

box64を使う方法にしようかなーと思っていたら、

既にDockerでコンテナ化に成功している人がいた。

 https://jamesachambers.com/legendary-minecraft-bedrock-container/

GitHubはこちら。

 https://github.com/TheRemote/Legendary-Bedrock-Container


公式版のサーバがベースに加えて、マルチアーキテクチャ、マルチインスタンス対応。

コンテナ再起動時に自動的にバックアップ。

Armアーキテクチャの場合はbox64を自動で利用する、などまさに至れり尽くせり。


メモリ1GBのサーバはあまりにも貧弱すぎたので、

AWSに引っ越ししようかと考えていた矢先に、このことを知ったので、

メモリ24GBのサーバに引っ越しをしてみた。



docker-compose

新しいサーバにもdockerを入れて、docker-composeを書くだけ。

基本はGitHub上にあるサンプルで良いのだけど、以下にしてみた。


version: "3.5"
services:
  minecraftbe:
    container_name: minecraftbe
    image: 05jchambers/legendary-bedrock-container:latest
    restart: "unless-stopped"
    ports:
      - 19133:19133
      - 19133:19133/udp
      - 19132:19132
      - 19132:19132/udp
    volumes:
      - /docker/minecraftbe:/minecraft
    stdin_open: true # docker run -i
    tty: true # docker run -t
    entrypoint: [ "/bin/bash", "/scripts/start.sh" ]
    environment:
      PortIPV4: "19132"
      PortIPV6: "19133"
      TZ: "Asia/Tokyo"

利用するポート番号は19132,19133とデフォルトのまま。

あとはいつも通り、OCIのVCNとサーバのiptablesで必要なポート解放。


クライアントでサーバの接続先を指定すれば無事に接続できた。


ただ、これだと新しいワールドを作っただけなので、

以下の方法でデータ移行を行う。


データ移行

データ移行も超簡単。

サーバの設定もワールドも含めて全部移行したい場合は、

新旧のコンテナをそれぞれ一旦停止させて、

永続ボリューム配下のファイルを丸ごとコピーだけ。


もう少し具体例。

どちらも"/docker/minecraftbe"にコンテナの永続ボリュームをマウントしているとすると、

以下のコマンドで移行データを作成。

tar zcvf /docker/minecraftbe ~/minecraftdata.tgz


生成されたtgzファイルを新しいサーバにSCPなどでコピーして解凍。

cd /docker/minecraftbe
tar zxvf minecraftdata.tgz

あとはコンテナを起動すればOK。


メモリ使用率等の比較

OCI上のメトリック情報に使用率が顕著に表れていた。

まずはメモリ1GBのサーバ。

常時90%ぐらい使用していたけど、コンテナを停止した途端メモリ使用率がガクンと落ちた。


一方でメモリ24GBのサーバ。

コンテナを起動して少し増えたけど、まだまだ余裕w


新しいサーバでは、

一番処理が重いであろう場所でしばらく待機していたけど、

特にカクつくこともなく普通に動いていた。

動作上も特に問題ないっぽいので、これで当分は快適になるかな?

しばらく様子見たいと思います。

検索

Blog Archive

Popular Posts

About Me

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

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

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

どうぞよろしく!

ブログランキング

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

QooQ