1
0

More than 1 year has passed since last update.

スポットインスタンスでゲーム用サーバの構築

Last updated at Posted at 2023-02-05

統合版マイクラのサーバをスポットインスタンスを使って建てたときのメモです。
「マイクラ スポットインスタンス」で検索すると、色んなサイトに記載はあるのですが、一元的に書いているのがなかったので、記事にまとめました。
AWSを利用する前提です。

仕様検討

スポットインスタンスを利用する上で一番大事なのは、インスタンスがterminateされた際に、データをどこに退避しておくかです。軽くググったところ、以下の3案がありそうです。

  1. EBSをアタッチする
    • 懸念点:複数AZにまたいだ使用ができない
  2. EFSを利用する
    • 懸念点:EBSより速度が遅い(特に使用容量少ない場合)、料金がお高め
  3. EBSのデータをS3にバックアップし、EC2起動時にS3から復元
    • 懸念点:バックアップが間に合わない可能性

今回は、速度面を妥協し、EFSを利用する方針としました。

実施作業

  • UbuntuサーバをEC2で起動
  • SSH用のポートと、19132/udpを開放
  • EFSをマウント
sudo apt-get update
sudo apt install stunnel4
git clone https://github.com/aws/efs-utils
cd efs-utils
./build-deb.sh
sudo apt install ./build/amazon-efs-utils*deb -y

sudo mkdir /efs
sudo mount -t efs fs-xxxxxxxxxx /efs/

  • Minecraftのインストール
cd # home directory
sudo apt install unzip

mkdir minecraft 
cd minecraft

wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.19.51.01.zip
unzip bedrock-server-1.19.51.01.zip

  • 起動確認
    LD_LIBRARY_PATH=. ./bedrock_server

  • fstabに以下を書き込む
    <DNS名>:/ /efs efs defaults,_netdev 0
    参考:UbuntuでEFSをマウントする

  • worldデータをEFSに移動し、シンボリックリンクを貼る

mkdir /efs/minecraft
mv -r worlds /efs/minecraft/worlds
ln -s /efs/minecraft/worlds ./worlds

注意点

  • 統合版のマイクラのバイナリはx64で動作するので、arm64のインスタンスタイプを選択しない

感想

しっかりとは確認していませんが、ちゃんとデータも残っているようです。ここまで構築した後に、やっぱりJava版のマイクラにしたいという欲求にかられたので、改善点はありますがこの記事はここで締めます。

改善点

  • サーバをLINEから起動できるように設定
  • サーバシャットダウン時に、内部サービスをちゃんと落とすようにする

参考にしたサイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0