takeyohのおぼえがき

気になったこと、試したことの記録です。

サーバを建てるパターンや注意点について

アセットコルサのサーバを建てて、AI trafficを流す方法について質問を頂きました。
AI traffic付きのサーバを建てる場合は、assettoserverを使うのが一般的だと思います。
このサーバの導入方法や使い方は本家にしっかりしたサイトがありますので、それを見ていただくのが一番良いと思います。
assettoserver.org

今回の覚書では、サーバ導入するにあたってのパターンや注意点を書いておきたいと思います。

Content Managerの有料ライセンスを買うか否かについて

assettoserverは必要な設定ファイルをテキストファイルで用意することで、それ単体として動かすことは可能です。
一方、Content Managerの有料ライセンスを購入して追加すると、サーバ設定を行う機能が利用できるようになります。
assettocorsa.club
これの「Support us for unlock Full version of Content Manager:」にあるstripeかitch.ioからライセンスキーを購入可能です。
(値段は自分が決めるので、最低$1からってところでしょうか。)
私はこれを購入して使っていますが、サーバのセッティング等はCMのGUIがあった方が断然楽です。多少出費してもライセンスキーを買ってContent ManagerをFull版にした方が良いと思います。(1回だけの出費ですし)

どこにサーバを設置するのか?

次に、assettoserverを使ってどこにサーバを建てるのか?です。

ゲームを動作させているwindowsPC上でサーバも動かすパターン

本家サイトにも書かれている一番スタンダードなパターンはアセットコルサを動かしている自分のPC上にサーバも立てる方法です。
これは、本家サイトに書かれているセットアップ方法を行い、CMのサーバ起動ボタンをポチるだけです。
サーバ起動させたら、普通のオンラインサーバへのアクセス同様、ドライブからオンラインを選びます。
そしてLANのタブをクリックして、しばらく待つと、起動したサーバが表示されるので参加ボタンを押すとサーバにつながります。
ちゃんとオンラインサーバとして動作しますが、ローカルPC上で動いているので、ゲームとサーバの間の通信がPCの中で完結しており、外に出ることはありません。
自分ひとりで参加することしかできませんが、安全な使い方とも言えます。
またサーバ自体の負荷は全然高くないので、ゲームが大きく遅延するといったことは無いと思います。(PCのスペックにもよりますが)

自宅で専用サーバを建てるパターン

次は、自宅のLAN内にサーバを建てる方法。例えば、ラズパイとかにサーバを建てて、ゲーム起動PCから接続する方法です。
ラズパイでのサーバ構築については過去に書いた覚書もあるので、よろしければご覧ください。
Raspberry Piでassettoserverを動かす! - takeyohのおぼえがき

ラズパイとかだと、動作環境がwindowsではなくlinuxベースになるので、一度windowsマシン上でサーバ環境を構築し、それをpackしてlinux上にコピー・展開してlinxu上でサーバ起動させる感じになります。

また、この自宅LANの場合、ゲームを起動するwindowsPCとサーバが自宅のLAN内だけに閉じている場合であれば、上記のサーバ同居と同様安全に利用することができますし、ネットワーク上の制限や設定を気にする必要もありません。

一方で、自宅で建てたサーバをインターネットに公開して、みんなで走行できるようにする場合は、かなり注意が必要です。
自宅のLANの中にインターネット側から入り込める口を開けることになるからです。
assettoserverの場合、サーバに接続するためには、デフォルト設定だとTCPの8081と9600、あとUDPの9600をインターネット側にオープンする必要があります。
また、ただポートをオープンするだけでなく、接続するサーバのIPアドレスの当該ポートだけをオープンにすべきです。
自宅のルータ等で設定することになると思いますが、適当にやると、設定の不注意によりインターネット側からサイバー攻撃を受け、自宅内のネットワークが全滅することもありますので、ネットワークの知識をしっかり勉強してからやる方が良いです。
また、サーバが外部から乗っ取られる可能性がありますので、不審な攻撃を受けていないか、サーバの様子をしっかりチェックすることが大切です。

パブリッククラウドを使うパターン

最後は、クラウドを使ってサーバを建てる方法です。
私は試験的にGCPの無料リソース枠内でassettoserverを建てて動かしています。
サーバの建て方はIaaSを用意した後、linux上に上記と同じ方法でassettoserverを構築し、必要なポートをインターネット向けに開放する必要があります。
ですので、当該サーバの必要なポートだけをオープンするように正しく設定する必要があり、やはりネットワークの知識、およびクラウドサービスの使い方をしっかり理解することが必要です。
また、クラウド利用の場合、メンテナンス用にsshの接続が必要だったりすると思います。このポートも良く攻撃対象になるポートで、サーバが乗っ取られ、マイニングのプログラムが実行されてすごい金額を請求されるみたいなリスクもあります。
sshの接続認証は電子証明書を使った2要素認証を必須にしたり、課金アラートの金額を設定して、急激に請求額が跳ね上がったりしていないかなどのチェックが日々必要です。

インターネットに向けてサーバを建てて、みんなで走れる!というのは楽しいですが、上記の様にサーバをしっかり管理できることが大前提になりますので、ネットワークの知識やリスクを正しく理解できていない状態で安易に手を出すのは止めましょう。やるとしたら自宅の中で個人的に利用するところから試していくことをお勧めします。

/* -----codeの行番号----- */