1.はじめに
この記事はARK: Survival Ascended(以下ASA)のサーバー費用を少しでも抑えたい人向けの記事になります。
設定手順は出来る限り簡単に記載しているつもりですが、
専用サーバーを使いたいだけであれば「NITRADO」を利用したほうが簡単です。
2024/08/15追記
本日時点でも当設定内容で正常稼働することを確認しました。
ARK: SA Dedicated ServerはSteamからダウンロードすることになるので、事前に 利用規約 に目を通してください。 商業目的で使用することができない点に注意してください。
また、本来ARK SA Dedicated ServerはWindows Serverでの稼働を期待していますが、ここではValveの開発したProtonを使ってLinux上で稼働させます。 Protonは一言で言えばLinux上でWindows用のゲームを実行するためのソフトウェアです。
2.なぜConoHaを利用するのか
「安いから!!!」
「NITRADO」では、少人数で利用するだけでも最低20slot~の選択肢しかなく、長期間利用しても割引の恩恵が少ないです。
ConoHa ってなに?
ConoHa は GMO インターネットグループが運営する VPS(専用サーバー)サービスです。
使い勝手がよく様々なゲームサーバーとしてよく利用されています。
ConoHa for GAMEでは長期割引パスがあるため、長期間利用するとサーバー費用がかなり安くなります。
長期割引パスを利用した際の利用料金を簡単に比較しました。
また長期割引パスを利用しない場合でも、時間課金のプランも利用可能なため、土日だけ動かす(時間当たり7.3円~)こともできます。
上記の理由から、なんとかConoHaを使ってサーバーを構築できないか模索したところ、無事に構築(今のところ)できたので、そちらの手順になります。
3.ConoHaに登録
ConoHa for GAME(conoha.jp) に登録してください。
こちらの招待リンクから登録すると1,000円分のクーポンが貰えます。
今回利用するのはConoHa for GAMEサービスです。
ID とパスワードを設定してください。
ConoHaのクーポンは入手すると月の支払い時に自動的に適用され、利用料金が割り引かれます。
4.サーバーの作成
ユーザー登録が完了すると、サーバー作成画面になります。
イメージタイプは「Valheim」を選択し、料金タイプはまずは時間課金の4GBを選択します。
まずは「時間課金」の契約で動作確認を推奨します。
動作確認を完了後、プレイスタイルに合わせて、マシンスペック、時間課金 or 長期割引パスなどを決めていくと良いかと思います。
root パスワードは複雑である必要がありますが、後に必要なのでしっかり覚えておきましょう。
またネームタグは ConoHa でのサーバ名です。「ASA」など分かりやすい名前をつけましょう。
オプションを設定します
セキュリティグループを「IPv4v6-SSH」で作成します。
SSH Key を「キーを新規作成」かつ「自動生成」として、「追加」ボタンを押してください。
追加ボタンを押すとプライベートキーのダウンロードを促されるので、ダウンロードします。
このプライベートキーは第5章のTeraTerm,WinSCPでサーバーとの接続時の秘密鍵として利用します。
入力が完了したら、「次へ」で進みます。
このあと個人情報登録と支払い(クレジットカード)の登録があります。
無事に作成されると以下のようにサーバーリストにサーバーが立ち上がります。
5.TeraTerm,WinSCPの導入と設定
次にサーバー運用が簡単になるようにツールを導入します。
それぞれ、参考ページ等を参照しダウンロード&インストールしてください。(設定はデフォルトで問題ありません)
ConoHaのコンソール画面でもサーバーを操作できますが、
・セッションが定期的に切れる
・ファイルの授受が出来ない
・7章以降の設定でコピペが出来なくなる
上記理由のため導入を推奨します。
TeraTermの導入
TeraTermは接続したサーバーをコマンドで操作できるツールです。
※参考ページ
※詳細な接続方法は↓をクリック
TeraTermのConoHaサーバーとの接続方法
ホストにあなたが立てたサーバーのIPアドレスを入力し、サービスをSSHでOKを押します。
・ユーザー名にroot、パスフレーズにサーバー作成時のパスワードを入力します。
・認証方式を「RSA/DSA/ECDSA/ED25519鍵を使う」にし、秘密鍵にダウンロードしたプライベートキーを指定します。
最後にOKを押すとサーバーに接続できます。
WinSCPの導入
WinSCPは接続したサーバーのファイルを操作できるツールです。
※参考ページ
※詳細な接続方法は↓をクリック
WinSCPのConoHaサーバーとの接続方法
・ホスト名にあなたが立てたサーバーのIPアドレスを入力します。
・ユーザー名にroot、パスワードにサーバー作成時のパスワードを入力します。
・設定を押すと以下の画面が立ち上がります。
・SSHの認証の秘密鍵に、ダウンロードしたプライベートキーを指定します。
※ファイル指定の下カテゴリを「すべての秘密鍵ファイル」にしないとでてきません。
「開く」を押すとファイルの形式変換のダイアログがでるのでOKを押します。
6.ConoHaサーバーの設定変更
ここからが本題のASA導入時のサーバー設定になります。
①仮想メモリの追加
ゲームを快適に動作させるために仮想メモリを追加します。
(ASAだけじゃなく他のゲームでも設定しておくと快適になります。パルワールドとか)
※メモリが32GB以上のプランでは設定の必要はありません
TeraTermで作成したサーバーに接続し、以下のコマンドをroot権限で実行していきます。
※TeraTermではコピーした文を右クリックで簡単に貼り付けできます。
sudo fallocate -l 30G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
設定できているかは以下コマンドで確認できます。
free -h
②再起動設定(サーバーを常時起動する人のみ)
常時起動しているサーバーだと時間経過でメモリが逼迫していくことがあるので、メモリ追加と合わせて再起動処理を仕込んでおきます。(面倒であれば、後から設定も可能なので飛ばしてもOK)
※時間課金で運用して、手動でサーバーを停止・起動させる場合は設定不要
以下のコマンドでcrontabを開き、好きなタイミングで自動再起動の設定を入れておきます。
crontab -e
(例)朝4時に再起動させる場合の記述
※文末にコピペして、Ctrl+X → Y で保存できます。
0 4 * * * command /usr/sbin/shutdown -r now
設定確認用のコマンド
crontab -l
③ポートの開放
ASAが利用する通信をConoHaで許可する必要があります。
ASAが利用する通信は以下です。
TCP/UDP:7777
TCP/UDP:7778
TCP/UDP:27015
ポートの開放はConoHaの管理画面から設定します。
ダッシュボードの「セキュリティ」→「セキュリティグループ」→「+」アイコンで作成します。
セキュリティグループ名は分かりやすいように「ASA」として保存します。
ASAセキュリティグループができたら、それを開き「+」アイコンを押下します。
セキュリティルールを登録します。
通信方向「IN」、イーサタイプ「IPv4」、プロトコル「UDP」、ポート範囲「7777」、IP/CIDR は未入力として、決定します。
同様にASAが利用するのに必要なポートを設定していき、以下のように設定できればOKです。
サーバーリストに戻り、ネームタグからサーバ詳細を開きます。
「ネットワーク情報」から「セキュリティグループ」を編集し、先ほど作成したASAセキュリティグループを追加して保存します。
7.ARK: SA Dedicated Serverをインストールする
以下の設定をすることで、ConoHaからのコンソール画面がGUIになります。
「シリアル」に切り替えることでCLIを利用できますが、コピペなどが出来なくなるためTeraTermの利用を推奨します。
以下のコマンドをroot権限で実行していきます。
ダウンロード等で時間がかかるコマンドもあるので、しっかりコマンドが終わったことを確認してから次のコマンドを入力してください。
apt update
apt install git vim
mkdir git && cd $_
git clone https://github.com/k-sukehiro/ARKSurvivalAscended-Linux.git
cd ARKSurvivalAscended-Linux/
chmod 744 server-install-ubuntu20.sh
sudo ./server-install-ubuntu20.sh
これで、初期状態のサーバーが立ち上がります。
サーバーの起動に5分くらいかかるので、少し待ってからサーバーの起動ログを確認します。
tail -F /home/steam/island-ShooterGame.log
以下のようなログがでて、
「Server: "XXXXXX" has successfully started!」
と出ていれば無事起動成功です。
"XXXXXX"がASAサーバの名前になります。
(※サーバー名は9章の内容で変更可能です。)
ログはCtrl+Xで終了できます。
8.ASAからサーバーの動作確認
サーバーの起動が出来たら、一度ASAを起動してサーバーが検索できるか、キャラクター作成ができるか、ワールドで少し動いてみるなどの動作確認をしてください。
「ゲームに参加」から
・非公式タブ
・「パスワードありのサーバーを表示」のチェックを外す
・「プレイヤーサーバーを表示」にチェック
・上部検索から、サーバー名を入力
更新を押すと、立ち上げたサーバーが表示されるはずです。
サーバーが表示されない
・すべて起動するまでに時間がかかるので、5分ほど待ってください。
・エラーなどがでていないか起動ログを確認してください。
・チェックの付け忘れ、サーバー名が間違えていないかなど検索方法を確認してください。
サーバーに接続できない
・ポート開放の設定ができているか確認してください。
無事に動作確認が出来れば一旦サーバー構築は完了です。
お疲れ様でした。
※初期状態では、公式サーバーと同じ設定で遊ぶことができます。
サーバー設定を変更したい場合は、9章,10章を参考に設定変更してください。
9.ASAサーバー設定の変更
サーバー名の変更、サーバーパスワードの設定、ドロップ率やテイム率の変更など、ASAサーバーの設定に関しては以下の手順で変更可能です。
ASAサーバー設定の変更は自己責任でお願いします。
変更前に各種関連ファイルは必ずバックアップしてください。
誤って修正、削除した場合、元に戻せない可能性があります。
①ASAサーバーを停止します
sudo systemctl stop ark-island
②隠しフォルダにあるiniファイルを修正
WinSCPでサーバーに接続し、ファイルをバックアップして、好きな値に修正します。
※隠しファイルの表示方法:https://in-ranch.com/blog/blog-181/
初期状態ではだれでも接続できてしまうため、少なくともサーバーパスワード(ServerPassword=)は設定したほうがよいです。
[対象フォルダ]
/home/steam/.steam/SteamApps/common/ARK Survival Ascended Dedicated Server/ShooterGame/Saved/Config/WindowsServer/
[対象ファイル]
Game.ini
GameUserSettings.ini
※筆者環境ではGame.iniが初期構築時になかったためローカルからコピーしました。(なくても動くようです)
※設定値参考ページ
③ASAサーバーを起動します
sudo systemctl start ark-island
10.modの導入方法
modの追加は自己責任でお願いします。
変更前に各種関連ファイルは必ずバックアップしてください。
誤って修正、削除した場合、元に戻せない可能性があります。
①ASAサーバーを停止します
sudo systemctl stop ark-island
②serviceファイルを変更
WinSCPでASAサーバーに接続し、以下対象ファイルを修正します。
[対象フォルダ]
/etc/systemd/system/
[対象ファイル]
ark-island.service
[修正箇所]
ExecStart=/home/steam/.steam/compatibilitytools.d/GE-Proton8-21/proton run ArkAscendedServer.exe TheIsland_WP?listen
↑の末尾に以下を追加
?SessionName=XXX(サーバー名)?ServerPassword=XXX(パスワード)?ServerAdminPassword=XXX(管理者パスワード) -NoBattlEye -mods=XXXXXX(modのID),XXXXXX,XXXXXX
※ハイフンの前に半角スペースが入ります
③サービスファイルを更新します
sudo systemctl daemon-reload
④ASAサーバーを起動します
sudo systemctl start ark-island
11.セーブデータの移行
セーブデータの移行は自己責任でお願いします。
変更前に各種関連ファイルは必ずバックアップしてください。
誤って修正、削除した場合、元に戻せない可能性があります。
今まで遊んでいた環境のセーブデータを利用したい場合は、以下の手順で可能です。
①旧環境からセーブデータをローカルにコピーします
②ASAサーバーを停止します
sudo systemctl stop ark-island
③セーブデータの移行
WinSCPでASAサーバーに接続し、以下のフォルダ配下のデータを削除したあとに旧環境のセーブデータをコピーします。
[対象フォルダ]
/home/steam/.steam/SteamApps/common/ARK Survival Ascended Dedicated Server/ShooterGame/Saved/SavedArks/TheIsland_WP
④サーバーを起動します
sudo systemctl start ark-island
12.コマンド一覧
以下によく使うコマンドを記載しておきます。
■ASAサーバーをアップデートする
sudo -u steam /usr/games/steamcmd +login anonymous +app_update 2430930 validate +quit
■ASAサーバーを起動する
sudo systemctl start ark-island
■ASAサーバーを再起動する
sudo systemctl restart ark-island
■ASAサーバーを停止する
sudo systemctl stop ark-island
■ASAサーバーの起動ログを確認する
tail -F /home/steam/island-ShooterGame.log
13.ConoHaのサーバー停止、スペック変更、長期割引パスについて
ConoHaを時間課金で利用している場合は、使わない時はコンソールからシャットダウンしておくことで、利用料金がかかりません。
サーバーのスペックを変更したい場合は、シャットダウン状態で、「プラン変更」すれば可能です。
長期割引パスを使いたい場合は、サーバーリストの画面から「長期割引パス」を選択することで、構築済みのサーバーに適応することができます。
14.免責事項
本記事からのリンクなどで移動したサイトで提供される情報、サービス等について一切の責任を負いません。
また本記事のコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。情報が古くなっていることもございます。
本記事に掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。
15.参考リンク
以下サーバー構築にあたって参考にさせて頂いたページ
https://blog.flinters.co.jp/entry/2023/12/16/120000
https://qiita.com/naoya-i/items/f12f1a29da2908d8a81f