EC2サーバ(Ubuntu Server 20.04)を立てる
Amazon マシンイメージ (AMI)
インスタンスタイプの選択
3-4人で遊ぶ想定ならm6a.large か m6a.xlarge
(公式推奨はメモリ16GB以上で3人ぐらいで少しラグがあるので、xlargeにしたほうが良い)
インスタンスの詳細の設定
特に変更なし
ストレージの追加
余裕をもって15-20GBくらいにしておくと安心してインストールできます。
タグの追加
特に変更なし
セキュリティグループの設定
デフォルトなら8211を開けてれば良い。
上記で設定出来たら「インスタンスの起動」でインスタンスを構築
palworldサーバのインストール
lib32gcc1のインストール(LinuxGSM実行のための前準備)
$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install curl wget file tar bzip2 gzip unzip bsdmainutils python3 util-linux ca-certificates binutils bc jq tmux netcat lib32gcc-s1 lib32gcc1 lib32stdc++6 libsdl2-2.0-0:i386 steamcmd
Do you want to continue? [Y/n]
が表示されたら Y を押下
pwserverのユーザを追加。passwordの入力を求められるので入力する。
$ sudo adduser pwserver
一応、pwserverにsudo権限を与えてからユーザを変更する
$ echo "pwserver ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/pwserver
$ su - pwserver
linuxgsmをダウンロードしてから、palworldのサーバをダウンロードできる状態に設定する。
$ wget -O linuxgsm.sh https://linuxgsm.sh
$ chmod +x linuxgsm.sh
$ bash linuxgsm.sh pwserver
palworldのサーバをインストールする。
Y/nの入力を求められるので、Yを押下する。
$ ./pwserver install
$ ./pwserver start
サーバの状態を確認する。
$ ./pwserver details
status:STARTED となっていればサーバは問題なく起動している
実際にゲームから接続してみて、接続できることを確認する。
パッチが当たった場合は以下のコマンドを実行してサーババージョンを更新する
$ ./pwserver update
サービス登録
EC2起動時にpalWorldが起動するようにサービス登録をする
参考:https://docs.linuxgsm.com/configuration/running-on-boot
サービスファイルを作成する
$ sudo vim /etc/systemd/system/palworld.service
内容は以下(userやdirectoryを変更している場合は読み替えてください)
[Unit]
Description=pal world server
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=pwserver
WorkingDirectory=/home/pwserver/
#Assume that the service is running after main process exits with code 0
RemainAfterExit=yes
ExecStart=/home/pwserver/pwserver start
ExecStop=/home/pwserver/pwserver stop
Restart=no
ExecReload=/bin/kill -HUP $MAINPID
Type=simple
[Install]
WantedBy=multi-user.target
コマンドを実行して、サービス登録+実行します。
sudo systemctl daemon-reload
sudo systemctl enable palworld.service
sudo systemctl start palworld.service
実行状態の確認
ps -eaf | grep pw
以下の内容が表示されていれば、起動に成功しています。
pwserver ~~~省略~~~ tmux -L pwserver-cd269eb5 new-session -d -x 80 -y 23 -s pwserver ./PalServer-Linux-Test EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='LinuxGSM'
pwserver ~~~省略~~~ ./PalServer-Linux-Test EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername=LinuxGSM
その他 発生したエラーと対応
###以下のようなエラーが発生する
[ FAIL ] Starting pwserver: executable was not found
/home/pwserver/serverfiles/Pal/Binaries/Linux/PalServer-Linux-Test
対応
vi ~/lgsm/config-lgsm/pwserver/pwserver.cfg
executable="./PalServer-Linux-Shipping"の記載を追加すると解決する