GCPでArkサーバー建てるンゴ\(^o^)/


どーもこんにちは。GCPのGoogle Compute Engine(以下GCE)でArkサーバーを最近作って、ちょっと作業がめんどかったので残しておきます。

確認してほしいこと

  • SteamでArk: Survival Evolvedを購入済みであること
  • 自分のPCがArk: Survival Evolvedができる十分なスペックであること
  • Ubuntu 18.04.4 LTSでの説明になってますので、Cent OSやDebianなどを使いたい方は差異があるかもしれません。

※サーバー?クライアント?Linux?何それ?という方は、1度Linuxでサーバーを建てて、自分のサイトが表示できるようになったら、またここに来てください。

Google Compute Engineの準備

早速、GCEの準備に取り掛かりましょう。GCP内で自分のgoogleアカウントで課金処理を済ませたら、GCPコンソール上のメニューからCompute Engine > VMインスタンスの項目を選択して、インスタンスを作成しましょう。

インスタンス作成時に下のような画面が出ると思います。

この画面から自身で使用したいスペックを決めてインスタンスを作成します。

ついでに自分がArkサーバーで使用するであろうGCEのスペックは以下のようにしました。
Linux: Ubuntu 18.04.4 LTS
リージョン: 東京
CPU: 2コア 8GB
ストレージ: SSD 24GB

一応このスペックだと最大7200円/月くらいです。

GCEに色々インストールするンゴ\(^o^)/

まず以下のコマンドです。

sudo apt-get update && sudo apt-get upgrade

おまじないですね。そしたら次のコマンドは

sudo apt-get install lib32gcc1

完了したら、もう一回apt-getの更新です。

sudo apt-get update

無事に完了ができたら、

sudo dpkg --add-architecture i386

を入力します。心配であればもう一度sudo apt-get updateをしてもよいかもしれません。そのあとはSteamCMDをインストールしたいのですが、公式だと上のコマンドの後にSteamCMDをインストールさせる手順に入るのですが、うまくいかずエラーになると思います。

このコマンドを入力した後にSteamCMDをインストールしましょう。

sudo apt-get install steam

このコマンドを実行すると、利用規約に同意するように求められるので、acceptを選択してからOKを押します。これを終えたら、

sudo apt-get install steamcmd

でSteamCMDをインストールします。インストールできたら、mkdir arkserverでArkサーバーのディレクトリを作成し、

sudo ln -s /usr/games/steamcmd steamcmd

を実行してください。そしたらインストールしたSteamCMDで以下のコマンドを入力します。

steamcmd +login anonymous +force_install_dir <install_dir> +app_update 376030 +quit

このコマンドの<install_dir>はarkサーバーをインストールする場所を指定します。例えば、/home/steam/servers/ark

ここまでであらかたの環境構築は完了です。お疲れ様でした。

サーバーを起動してからクライアントからサーバーに接続するまで

Compute EngineでArkサーバーを起動する

ここまでくると、あともう少しで完了です。これからサーバーを起動したいところですが、その前に何かやり忘れていることがありませんか?クライアントからarkサーバーにアクセスするためにポートを開放してません。

実はいきなりポート開放してもよかったのですが、コマンドで行ってしまう場合(ufwiptablesとか使う)、少し注意が必要です。自分がやらかした例だと、もともとufwがinactiveだったので、自前で設定しようとしてSSHのポートを開放するのを忘れてしまい、GCPコンソールからアクセスできなくなりました。

なので、このようなことを起こさないために(終了する前に22番を開放しておけば...)、コマンドで設定する方は細心の注意を払って行ってください。自分のように、やらかしちゃった人はもう一度、Google Compute Engineの準備まで戻ってやり直して、ここまで戻ってきてくださいね。

ちょっと自信がない方は、GCPコンソールのVPCネットワーク > ファイアウォールルールで設定できます。ファイアウォールルールを作成するときに以下の画面が出ると思います。

この画面で開放したいポート記載してください。開放するポートは、udp: 7777, 7778, 27015です。

では、ポートを開放したら、サーバーを起動させます。この手順で行けばarkserver内をたどっていくと、ShooterGameServerという名前のファイルがあるので、

sudo path/to/ShooterGameServer TheIsland?listen?SessionName=<Server_Name>?ServerPassword=<Password>?ServerAdminPassword=<AdminPassword> -server -log

で起動さます。

ここで、TheIslandはarkのマップ名でDLCや拡張パックを購入していれば他のマップ名を入れてプレイすることも可能です。初期はアイランド(The Island)だけらしいので、気になるかたはほかのも試してみてください。

<Session_Name>はArkでのサーバー名です。サーバー名では記号とスペースがダメなのでご注意を。<Password>はサーバーに入るためのパスワードです。<AdminPassword>は管理者用のパスワードです。

クライアントからArkサーバーへアクセスする

それでは、さっそく試してみましょう。まず、ご自身のSteamを起動してください、そうすると、左上に以下のようなメニューがあると思います。

この表示 > サーバー > お気に入りで以下の画面にたどり着くと思います。

この画面の右下に「サーバーを追加」とあるのでそこで先ほど起動したArkサーバーのIPアドレスを入力して「このアドレスをお気に入りに追加」を押してください。

ArkサーバーのIPアドレスは、以下のようなCompute Engineの初めの画面上で見れます。

上の画面の外部IPを入力してください。問題なく完了すると、少し時間がたった後に、Steamのお気に入りのサーバーメニューに先ほどShooterGameServerを起動したときに設定したものが表示されると思います。表示されたら、接続したいサーバーを選択して右下の接続ボタンを押してください。そうすると以下の画面が出ます。

この画面で、設定したパスワードを入力すれば無事にArkサーバーにアクセスして、ゲームスタート!!

おわり

以上でGCP上でArkサーバーを建てられると思います。参考になれば幸いです。

ついでに言うとMinecraftもGCPで建ててたんですが、GCP公式がブログで書いてあるのでそちらを読んでみるとよいかもです。