TShockを用いてAWSでTerrariaのサーバーをたてよう
初めに
この記事は、フラー株式会社 Advent Calendar2023の21日目の記事となっています。
20日目はm-coderさんによる2023年を振り返るでした!
TShock
TShock(Terraria Server Hosting for Commands)は、Terraria(テラリア)というゲームのサーバー上で利用される、サーバー管理や権限管理のための拡張ツールです。Terrariaは多人数プレイが可能なサンドボックスゲームであり、TShockはそのサーバーをより効果的に管理するためのプラグインです。
TShockを使用することで、Terrariaサーバーのオーナーや管理者はプレイヤーに対して権限を与えたり、異なるコマンドを実行させたりすることができます。これにより、サーバー上でのゲームプレイやイベントの管理が簡単になります。また、TShockはセキュリティ機能も提供しており、不正な活動や荒らし行為からサーバーを保護する役割も果たしています。
簡単に言えば、TShockはTerrariaサーバーの管理を向上させ、プレイヤーに対する柔軟な権限管理を可能にするためのツールです。
今回はこのTShockを用いてTerraiaのサーバーをたてていきます。
インスタンスを起動
早速AWSを用いてEC2インスタンスを起動していきましょう。
AWSのアカウント登録などに関しては、今回の記事では省略させていただきます。
それでは早速、右上にあるオレンジ色の「インスタンスを起動」と書いてあるボタンを押下してください。

名前とタグ
任意の名前をつけてください。画像内ではTerraria Serverとしました。

Application and OS Images
今回はUbuntsu Server 22.04 LTS(HVM), SSD Volume Typeの64ビット x86アーキテクチャを選択してください。
インスタンスタイプ
t2.small以上を選択してください。t2.microで一度作成したことがあるのですが、t2.microの性能ではTerrariaのWorldを生成するのは厳しそうでした😭

キーペア
キーペアを選択してください。
キーペアがない場合は、「新しいキーペアの作成」を選択し、任意のキーペア名を入力してキーを作成し、割り当ててください。
画像ではキーペア名はTerrariaKey。キーペアのタイプはRSA。プライベートキーファイル形式は.pemとして作成しました。


ネットワーク設定
セキュリティグループに関してですが、自身の環境では誰でもサーバープレイできるようにするため、(0.0.0.0/0)からのトラフィックを許可しています。
セキュアにしたい場合は、トラフィックを自身のIPのみに制限しましょう。
ストレージを設定
8GBで全然足りますので、8GBで設定しましょう。

インスタンスを起動
以上の設定が終わり次第、インスタンスを起動を押下してください。

インスタンスに接続
今回作成したインスタンスに、インスタンスIDがあるのでそれを押下すると、パブリック IPv4 アドレスが確認できます。(下記画像以下)

確認後、chmod 400で読み込み権限をTerrariaKey.pemに与え、上記で確認したパブリック IPv4 アドレスを用いて一度インスタンスに接続してみましょう。
chmod 400 ~/Downloads/TerrariaKey.pem
ssh -i ~/Downloads/TerrariaKey.pem ubuntu@{パブリック IPv4 アドレス}
上記を行えば、ローカルでインスタンスに接続できるかと思います。
TShockをEC2で使う
続いて、TShockをinstallし、インスタンス内にファイルを移しましょう。
TShockのinstall
下記リンクから最新のTShockをinstallしましょう。
今回、Application and OS Imagesでubuntsuを使用したため、TShock-5.2-for-Terraria-1.4.4.9-linux-x64-Release.zipなどの、linux-x64のものをinstallしてください。

インスタンスにTShockをコピー
installした、TShock-5.2-for-Terraria-1.4.4.9-linux-x64-Release.zipを解凍すると、TShock-Beta-linux-x64-Releaseになるかと思いますので、それをインスタンスへコピーしましょう。
ssh -i ~/Downloads/TerrariaKey.pem ubuntu@{パブリック IPv4 アドレス} "mkdir -p ~/remote/path/"
scp -r -v -i ~/Downloads/TerrariaKey.pem ~/Downloads/TShock-Beta-linux-x64-Release ubuntu@{パブリック IPv4 アドレス} :~/remote/path/
上記が完成し、ローカルで開いたインスタンスに対してlsを行うと、remote`ディレクトリが見当たるかと思います。
ubuntu@ip-{プライベートIP}:~$ ls
remote
dotnetのinstall
TShockを起動するにはdotnetが必要なため、dotnetをインスタンスにinstallしてください。
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh -c 6.0
Terrariaのサーバーを開く
それでは、Terrariaのサーバーを開きましょう。
やり方は簡単で、今回TShockでinstallした、TShock-Beta-linux-x64-Release内にTShock.Serverがあるので、それを実行するだけです。
cd remote/path/TShock-Beta-linux-x64-Release
./TShock.Server & background
以上でTerrariaのサーバーが完成し、下記のように自身でWorldを生成できるようになったかと思われます。

Worldが完成次第、今回使用したパブリック IPv4 アドレスとWorld生成時に付与したTCPポートにゲームで接続すれば完成です。
終わりに
さて、いかがでしたでしょうか?
AWSに触れたことがない方でも、簡単にサーバーをたてることが出来たのではないでしょうか?
TShock自体、なかなか使うことがないかもしれませんが、是非これを機会にフローだけでも覚えて帰ってくだされば幸いです。
ちなみに今回この記事を書く際、「サーバーをたてる」との言葉を使いましたが、皆さんは、「建てる」、「立てる」、「たてる」、どれを使われますでしょうか?(蛇足)
弊社ではサーバーサイドエンジニアを募集しておりますので、素敵な会社を宣伝しておきます。
ということで、今回のTShockを用いてAWSでTerrariaのサーバーをたてようの記事を終わりとさせていただきます。
次回はグミ大好きお兄さん、@nirazoさんのプログラミング教材を作ろう!Playground Book概論です!
Discussion