ARKのサーバーをAWSで立てる(3)サーバー設定

ark

No. 内容
1 料金・メリット・デメリットなど
2 EC2インスタンス作成
3 これ→ サーバー設定
4 ゲーム内パラメータ・Mod設定

この記事では作成したECインスタンスに接続するところから、サーバーの設定・インストールを行い、起動するまでを見ていきます

サーバに接続する

インスタンス一覧から右クリックして「接続」を押すとsshでのつなぎ方をざっくり教えてくれます

ec2 setting 3 1

ec2 setting 3 2

下記のように入力すればsshで繋げるはずです

ssh -i "<.pemファイルまでのパス>" ec2-user@ec2.***.***.***.***.ap-northeast-1.compute.amazonaws.com

sshで入れたら

Ark-Server-Toolsを導入していきます。不明点があればそちらを参考にしてください

  • 必要なモジュールをいれていきます
sudo yum update
sudo yum install perl-Compress-Zlib curl lsof glibc.i686 libstdc++.i686 bzip2
  • iptablesの設定は省略します(セキュリティグループでポートの設定をしたので)

steamCMDのインストール

steamCMDというsteam製のツールを利用するのでそれを入れてあげます

こちらに沿って導入すればいいのですが、僕はうまくいかなくて、 Manually のやり方でやったのでそれを記載します

sudo useradd -m steam # steamユーザー作成
sudo passwd steam #steamユーザーのパスワード設定
# ここで設定したいパスワードを聞かれるので、2回入力します
# 8文字以上で、分かりやすい単語が入っていない文字列にします

su - steam # ユーザー変更
# パスワード入力

mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

Ark Server Tools & サーバー設定

exitでec2-userに戻り下記でインスコします

curl -sL http://git.io/vtf5N | sudo bash -s steam

su - steam でユーザー変更。以下、*.cfgを編集するときはsteamユーザーから操作するようにしてください

/etc/arkmanager/instances/main.cfg がサーバーインスタンス毎の設定になります。こちらを変更していきましょう。

serverMap="Genesis" # 導入したいマップの文字列を入力
ark_ServerPassword="" # サーバーに入るためのパスワード
ark_SessionName="ARK Server Tools" # 表示されるサーバー名
ark_ServerAdminPassword="keyboardcat" # Adminコマンドを使うときに入力するパスワード

serverMapについて

こちらから抜粋させていただきます。

マップ名
TheIsland
TheCenter
ScorchedEarth_P
Ragnarok
Aberration_P
Extinction
Valguero_P
Genesis

これを間違えるとうまく起動しないので注意してください。

そしたら

arkmanager install

でサーバーデータをダウンロードします。数Gあるので気長に待ちましょう。10分くらいかかると思います

ここで下記のようなエラーが出た場合ですが ec2 setting 3 3

  • steamcmdのパス指定が間違っている
  • ユーザーが違うためsteamcmdにアクセスできない

のいずれかが原因だと思います。

その場合、/etc/arkmanager/arkmanager.cfg のファイルで、パス指定の箇所を確認・修正します

# config SteamCMD
steamcmdroot="/home/steam/steamcmd"

うまくいくと下記のようにデータをダウンロードします

Installing ARK server ... -

起動確認

起動確認のため arkmanager run でサーバーを起動します。(5分前後かかる)

下記のようなログになります。

[steam@ip-172-**-**-** ~]$ arkmanager run
Running command 'run' for instance 'main'
2020-02-29 14:34:08: start
2020-02-29 14:34:08: Running /home/steam/ARK/ShooterGame/Binaries/Linux/ShooterGameServer TheIsland\?RCONEnabled=True\?RCONPort=32330\?SessionName=ARK\ Server\ Tools\?Port=7777\?QueryPort=27015\?ServerPassword\?ServerAdminPassword=keyboardcat\?MaxPlayers=70\?ServerPassword\?listen
2020-02-29 14:34:08: Server PID: 10217
Using binned.
4.5.1-0+UE4 7038 3077 404 10
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Setting breakpad minidump AppID = 346110
2020-02-29 14:35:12: server is up

ここでfailedみたいなのが出てますが仕様なので気にしなくて良いです。

5分くらいまって server is up みたいなログがでてきたら成功です!

ログに表示されている通り、重要なサーバー設定は全て起動コマンドのオプションになっているので、うまくいかなかったときは上のログを見てポート番号など間違いがないか確認してください。

ちなみに、run はフォアグラウンド実行で接続が切れると終了してしまうのですが、起動コマンドやエラーが表示され、デバッグしやすいのでここで実行しています。

実際に運用する際は基本的にバックグラウンドで実行される arkmanager start コマンドになります。

やっとサーバーがたった

server is up もうちょっと待つとゲームのサーバー検索から見えます。

また、arkserver status より steam:// から始まるリンクをクリックしてもサーバーへ入室が可能です。(steam側にサイレントでポップアップがでてパスワードを要求します)

ここまででやっと基本的なサーバーが立ちました。

ただ完全にデフォルトの状態なので、更に快適に遊べるように、次回Modやパラメータ変更の設定をしていきましょう

補足:arkmanagerの基本操作

arkmanager のあとにコマンドを指定します

  • run : サーバー起動
  • start : サーバーをバックグラウンドで起動
  • status : サーバーの状態確認
  • stop : サーバー停止

あとはgithubのページで確認してください〜

補足:サーバーログの確認

下記で確認できます。 tail -f コマンドなどで見てみてください。

  • /var/log/arktools/arkserver.log
  • /var/log/arktools/arkmanager.log

立ち上がったっぽいけどゲームのサーバー検索にでてこないとき

いくつか考えられる状況を記載します。

  • arkmanager status でサーバーが立ち上がっていても検索に引っかかるまで数分かかります

    • steam://~ のリンクから接続すると確実です
  • サーバーのゲームバージョンが古い

    • クライアントとサーバのバージョンが異なると検索ででてきません。 arkmanager update で手動アップデートしてください
  • MAPデータがちゃんと入っていない

    • main.cfgserverMapの記載が正しいことを確認し、 arkmanager installしてみてください

ゲームデータを移行したい

ARK/ShooterGame/Saved/SavedArks/ にデータが入っているのでそいつをインポート / エクスポートしてあげればOKです


Written by@macaron
ゲームが好きなWebエンジニアのBlogです。