Steamのdedicated serverを立てる#1 インフラ編

ハード

自宅に余っているPCでもVPSでも構いません。最近はDockerなどのコンテナによるサーバー運用もあるようです。保守を考えるとコンテナ化するほうが楽ですね。DBなどのミドルウェアが必要なサーバーはフットプリントが大きくなり悩みそうですが。

ハード 物理/仮想 問いません レンタルのVPSでも構いません。
クライアントPCと同居/共有しない方がよいです。
CPU Intel/AMD問いませんが、64bitで4コア以上あったほうがいいです。
ハイパースレッドはあまり役にたちません。
クロックは2.5GHz程度は欲しいです。
メモリ 16GB以上あったほうがいいです。ほとんどがオンメモリで動作します。
余ったメモリはファイルシステムやDBのキャッシュもしくはバッファとして動作し高性能化に貢献します。メモリ不足でSWAPするようだと不安定になります。ただし、存在する分だけメモリ利用するアプリもいるので、判断が難しいところです。
ARKは1サーバーのときは4GB以上消費していましたが、複数サーバー連携によるクラスタ設定をしたら1プロセスあたりの消費は1GBに減りました。
HDD OSおよびミドルに40~100GB
アプリおよびデータは100GB~
SSDの方がよいですが、ゲーム品質にはあまり貢献しません。その費用はRAID構成にあてて、サーバーの可用性をあげたほうがいいです。
別メディアへのデーターバックアップ先を準備してください。バックアップしていない時に限ってロールバックしなければならない事態が起こります。
ビデオ

必要最低限で構いません。
VMの場合はSPICEで十分です。RDPでもいけます。

ネットワーク

インターネットの回線速度は、1ゲームあたり上下50Mbps程度で十分です。トラフィックは1セッションあたり多くて1Mbps程度です。回線速度はソフトアップデートの際のダウン時間に効いてきます。例えばARKは100GB以上のアップデートが連日あったりします。VPSで重量課金だと厳しいです。
pingの応答性能はMMO系ゲームのフレームレートにも影響するので重要です。

以下は自宅サーバーのみ
無線LANは回線品質、応答速度、多数セッションから避けるべきです。
ルーターはYAMAHA RXシリーズなどの業務用クラスで、簡単に設定できながら安定性と高性能な有線接続なものがよいです。中古品でかまいません。
ISP提供のルーターや市販ルーターはNATテーブルサイズが大きく、IPv4ポートフォワーディング設定を細かく指定できるか確認してください。
またNATループバック(ヘアピンループバック)がサポートされているとよいです。非サポートの場合、自宅サーバーにアクセスする際にゲーム内のサーバー選択でLANアドレスを指定する必要があります。一覧にでてこない。
固定IPにこだわる必要はありませんが、固定IPのほうが運用が楽です。
IPv4でもv6でも構いませんが、サーバーアプリはIPv4が基本です。

うちのサーバー構成を列挙してみます。

ハード KVMベースのVM(仮想マシン)です。oVirtを用いてVM管理しています。
仮想サーバーのホストはRyzen 7 2800Xを全8コアを3.9GHzで動作させています。
バックアップ用の予備機器はXeon E5-2670の2ソケット メモリ128GBが待機していますが、活躍するような事態に直面していません。
CPU 上記ハードから4コアを割り当てています。
メモリ ハードに64GB搭載して、そのうち最大24GBを割り当てています。
HDD ファイルサーバーからシンボリュームを割り当てています。
OSに100GB 使用率25%
サーバーアプリとデータに400GB 使用率40%
スナップショットバックアップを毎日行い、NASに週1回イメージバックアップしています。
ビデオ VMはSPICEで動いていますが、通常はRDPでWindows10から接続しています。
ネットワーク

インターネット 10Gbps 3ms
LAN 10Gbps LANはインターネット接続用とストレージ用に2セグメント
ルーターはISPからのレンタル品。ONU内蔵のため分離できない。
IPアドレスは半固定 契約してから1度も変更されていない。
VPNサーバーをたてて、外出先からも保守可能にしてあります。

UPSを以前は使っていたのですが、とある理由で撤去しています。あった方がよいかもしれません。フラッシュメモリの書き込みキャッシュのバックアップは効果大です。

OS

OSはWindows 2016 Server Standard を用いています。Windows 10などのクライアントOSはライセンス上、好ましくないです。
RHELやUbuntuなどのLinuxサーバーも検討しましたが、ARKやEmpyrionなどのサーバー管理ツールがWindows版でしか存在しないためWindows Serverにしました。

ミドル他

サーバー内のリソース監視はPrometheusとGrafanaを用いて可視化しています。10秒ごとの状態更新で、過去2週間までさかのぼってリソース状況を監視できます。閾値超えなども定義できますが、異常になる前に検知し対処しないと意味がないので、なかなか難しいです。grafana

以前はZabbixによるSNMPを導入していましたが、効果的ではありませんでした。例えばZabbixをVM上で動かすと、物理サーバーの故障を検知できずにそのVMが落ちてしまうなど。家庭では冗長構成がなかなかとれず、シングルポイントの障害点で情報遮断されて、フェイルセーフやリスクヘッジができないことが多いです。ファイルシステムもglasterやZFSも検討しましたが、チープな冗長構成ではスプリットブレインになりやすく情報矛盾が生じてデータ破壊する方がダメージ大きいです。

“Steamのdedicated serverを立てる#1 インフラ編” への1件の返信

コメントは受け付けていません。