こんにちは!GxPの肥後です
この記事はグロースエクスパートナーズ Advent Calendar 2022 17日目です!
今回はARKというゲームがやりたく、勉強もかねてクラウドでゲームサーバーを構築してみました!
ARKとは?
ARK: Survival Evolvedと名前で恐竜のいる島に裸一貫から始まるオープンワールドのサバイバルゲームです
配信者がやっているのを見て自分も友人たちと遊びたかったので、みんなで遊べるようにサーバーを構築します!
GCPを選んだ理由
- 初回登録を行えば300ドルのクレジットが無料で付いてくる
- プリエンプティブを有効にすることで大幅な割引がつく
使うサービス
- GCE (Google Compute Engine)
- VPCネットワークのファイアウォールルール
GCE構築
まずはGCPコンソールからCompute Engine > VMインスタンスの項目を選択し、インスタンスを作成しましょう
以下はインスタンス作成画面
名前は自由に決めてもらってリージョンやゾーンは好きなところで良いのですが
費用を節約したいのでアメリカにサーバーを作ろうと思います
CO2マークがついててECOそうなのでオレゴンを選択しました
マシンタイプは1人でやるならメモリ8GB程度で良いと思います
OSはUbuntu 18.04 LTSを使用するのでブートディスクからOSイメージを変更しましょう!
またディスク容量は100GBに変更します
画像は10GBになってます
次は可用性ポリシーでVMプロビジョニングモデルをスポットに選択します
インスタンス作成画面の下に行くと詳細オプションで色々閉じているものがありますが
管理を押下して展開し以下の画像のように設定します
これでプリエンプティブを有効にできたので大幅な割引を得られます
24時間常用したい場合は【標準】で設定してください
この設定を行い月間予測を見てみるとめちゃくちゃ割引されていますね!!!
10GBの設定ですが100GBだと$28くらいになります!
サーバー構築
インスタンスを起動してSSHで接続します
まぁ、まずはおまじない
sudo apt-get update && sudo apt-get upgrade
ASMはsteamユーザーで動かすことが前提となっているようです
※ARK Server Manager(ASM)とは 公式サイトから引用
通称ASM、Windows版のみですがSteamCMDで必要になる各種設定ファイルの膨大な記述をGUIにより行うことが可能です
というわけで、ユーザー作成を行います
sudo useradd -m steam
steamユーザーをsudoグループに登録
sudo usermod -G sudo steam
ユーザー切り替え
これは飛ばしてもよいです
steamユーザーのホームディレクトリに入りそこに必要なものをインストールできればOKです
sudo -u steam bash
CUI環境でGUIソフトを起動したいのであればi386 アーキテクチャのパッケージが必要らしいです
以下コマンド
sudo dpkg --add-architecture i386
次のコマンド
sudo apt-get install lib32gcc1
インストールが終われば以下を実行
sudo apt-get update
この後にSteamを入れましょう!
sudo apt-get install steam
利用規約に同意する画面がでると思いますので同意します
次はSteamCMDをインストールです!
sudo apt-get install steamcmd
インストール完了後
arkserverをのディレクトリを作ります
mkdir arkserver
ASMをインストール
curl -sL http://git.io/vtf5N | sudo bash -s steam
これでサーバー構築は完了です!
あとはゲームの設定をして起動するだけですね
その設定は割愛します
ポート開放
起動する前に必要なことがあります
それはポート開放です!!!!
ufwコマンドで実施してもよいのですが、
22番ポートを開け忘れるととんでもないことが起きますね
そういう設定をGUIで行えるVPCネットワークという便利なサービスがGCPにあるわけです
やってみましょう!!
VPCネットワーク > ファイアウォールルール > ファイアウォール ルールの作成
ターゲットタグには【ark】とつけときましょう
ネットワーク上のすべてのインスタンスにすると後述する設定が不要になります
これでARKのファイアウォールルールだよということが分かりやすくなりますね
IPv4範囲ですがこれは0.0.0.0/0にします
来る者拒まず去る者追わずてきなことにしておきます
複数人でやる人が決まっているならそのIPにしても良いと思います
こんな感じで作成します
開放しているポートはゲーム側が初期設定を用意してくれているのでそれを指定します
このファイアウォールルールを作成したVMインスタンスに適用させなければなりません
GCEに行きVMインスタンスを編集しましょう
そこでネットワークタグという箇所がありますので、【ark】を設定し保存します
サーバー起動
これで準備は整いました
SSHしたVMインスタンスで以下コマンドを実行しましょう
sudo arkmanager start
5分か10分ほど待つとサーバーが起動し入れるようになります
感想
トリケラトプスを捕獲して一緒に島を駆け回ったり
強力なボスがいるので、ティラノサウルス10体くらい引き連れて戦いにいったり
プテラノドンで空をとぶことだってできます!
ぜひこの機会にサーバーを構築してARKを遊んでみてください!
最後に
ARKが遊びたくて構築しましたが色々やりたいことはたくさんあります
VMを起動した時点でASM起動をさせたりMAPごとに環境を分けて構築したりと
Terraformを使って構築すると楽になるとと思いますので、それもやってみたいと思っています