AWS EC2をValheimゲームサーバとして利用します。
■構成
Valheim Server : Ubuntu22.04
Valheim Client : Windows11
■公式wiki
1.EC2の作成
EC2を作成します。
Valheim Offical Wikiの推奨要件に従い、vCPU 4core以上となるt3.xlarge
を使用します。
(その他割愛)
2.セキュリティグループの設定
Ubuntu接続用のSSHのほか、Valheim要件のUDP 2456-2458
も通信許可します。
3.ubuntu設定
以降、ubuntuにSSHで接続して操作を実行します。
3-1.初回アップデート
以下コマンドを実行し、いったん再起動します。
$ sudo su -
# apt -y update
# apt -y upgrade
# reboot
3-2.steamcmdインストール
valheimをインストールするためのコマンドに使用するsteamcmdをインストールします。
$ sudo su -
# add-apt-repository multiverse; dpkg --add-architecture i386; apt -y update
# apt install -y steamcmd
3-3.valheimサーバインストール
valheimのサーバアプリケーションをインストールします。
指定ディレクトリ /valheim
にダウンロード等するかたちとしています。
# mkdir /valheim
# steamcmd +login anonymous +force_install_dir /valheim +app_update 896660 validate +exit
+force_install_dir
オプションの値としてダウンロードディレクトリの/valheim
を指定します。
+app_update
オプションの値として、valheimのアプリIDである896660
を指定します。
# apt install -y libpulse0 libpulse-dev libatomic1 libc6
3-4.サーバ名/ワールド名/パスワード設定
以下ファイルを編集して必要なパラメータを設定します。
例として以下のように編集しています。
サーバ名:ServerName123
ワールド名:World123
パスワード:password123
# vi /valheim/start_server.sh
-------------------------------------
./valheim_server.x86_64 -name "My server" -port 2456 -world "Dedicated" -password "secret" -crossplay
↓
./valheim_server.x86_64 -name "ServerName123" -port 2456 -world "world123" -password "password123" -crossplay
-------------------------------------
3-5.ファイアーウォール設定
ファイアーウォール設定を実施します。
今回はAWSセキュリティグループにて制御をしてるため、ufwを停止しておきます。
# ufw disable
# ufw status
3-6.valheimサーバ起動
valheimサーバを起動します。
# cd /valheim
# ./start_server.sh
start_server.sh
は同ディレクトリでのスクリプト起動が予期されているので、
start_server.sh
のディレクトリにcdしての起動を推奨します。
なお、停止の場合はコンソール上でctrl + c
を行います。
4.valheimクライアントからの接続
スタートからゲーム参加タブに遷移し、サーバを追加からIPアドレスを入力します。
5.valheimサーバのサービス化
上記3-6.valheimサーバ起動
ではコンソールから起動をしていますが、EC2起動後にvalheimサーバが自動で起動するようにサービス化を行います。
サービス定義用のファイルを作成します。
# vi /etc/systemd/system/valheim.service
----------------------------------------
[Unit]
Description=Valheim
After=network-online.target
[Service]
WorkingDirectory=/valheim
ExecStart=/valheim/start_server.sh
ExecStop=/bin/kill -INT ${MAINPID}
Type=simple
[Install]
WantedBy=multi-user.target
----------------------------------------
サービス自動起動の設定およびサービス起動を行います。
# systemctl enable valheim.service
# systemctl start valheim.service
# systemctl status valheim.service
これで、ubuntu/EC2の再起動を実施してもvalheimサーバが自動で起動するようになります。