テラリアマルチサーバーを Amazon Lightsail で建てる
想定読者レベル
・VPS が何かが分かる
・コマンドラインの基本が分かる
・AWS のアカウントを持っている / または登録できる
Lightsail とは
Amazon(AWS)が提供している VPS。
Amazon Lightsail(月額3.5ドル〜の仮想プライベートサーバー:VPS)| AWS
利用料金は 3.5USD/Month からでお手頃価格。
AWS で RAM が 1GB で 5USD なのは結構良いですね。
料金 - Amazon Lightsail | AWS
EC2 へのアップグレードのサポートもあり、
本格的な環境で運用する前のお試し環境的な位置付けだったりもします。
特徴 - Amazon Lightsail | AWS
Lightsail インスタンスの作成
https://lightsail.aws.amazon.com/ にアクセスします。
「インスタンスの作成」に進みます。
「インスタンスロケーション」は日本(東京)で良いでしょう。
「プラットフォーム」は Linux/Unix を選択。
今回の場合 Windows は無駄に高いだけなので。
「設計図」は「OSのみ」から Ubuntu 18.04 LTS を選択。
設計図っていうネーミングが気になるのはさておき、
OS はなんでも大丈夫です。 CentOS が一番情報多いかも?
因みにここで Ubuntu にする理由は Minecraft と共通で使えるからです。
java edition の場合はサーバーの OS はなんでも良いのですが、
bedrock は Ubuntu が想定されています。
Minecraft 用サーバーソフトウェア (アルファ版) をダウンロード | Minecraft
「インスタンスプラン」は 2GB のものを選択します。
2GB 未満のインスタンスを選択すると、World 生成がコケます。
「Lightsail リソース名」は「terraria+α」のような命名規則が良いかと。
ここまで選択が終了すれば「インスタンスの作成」をクリックで完了です。
TCPポートの開放
テラリアでは慣習的にTCPプロトコル7777ポートを使用するのですが、
デフォルトのファイアウォールで制限されているため、
「ネットワーキング」タブ内の「ルールを追加」から設定します。
ssh 接続
SSH および Lightsail インスタンスへの接続 | Lightsail ドキュメント
を見ながらトライします。
Dashboard の接続情報を参照して ssh 接続を行います。
(以下IPアドレスは xxx.xxx.xxx.xxx で伏します)
$ ssh ubuntu@xxx.xxx.xxx.xxx
ubuntu@xxx.xxx.xxx.xxx: Permission denied (publickey).
弾かれました。もう一度見直してみると、
クライアントを使用して接続する場合は、プライベートキーも必要です。
このインスタンスを デフォルト (ap-northeast-1) キーペアを使用するように設定しました。
デフォルトのプライベートキーは、アカウントページ からダウンロードできます。
とのことなので、アカウントページを開きます。
ここからプライベートキー(.pem)をDLします。
SSH を使用した Linux インスタンスへの接続 - Amazon Elastic Compute Cloud
を参考に、プライベートキーを指定して ssh 接続を行います。
$ ssh -i LightsailDefaultKey-ap-northeast-1.pem ubuntu@xxx.xxx.xxx.xxx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'LightsailDefaultKey-ap-northeast-1.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "LightsailDefaultKey-ap-northeast-1.pem": bad permissions
ubuntu@xxx.xxx.xxx.xxx: Permission denied (publickey).
またもや弾かれました。
WARNING: UNPROTECTED PRIVATE KEY FILE!
でググると、どうやら .pem ファイルのパーミッションが不適切だとセキュリティ上の理由で弾かれることが分かります。
秘密鍵を使った SSH 接続時に WARNING: UNPROTECTED PRIVATE KEY FILE! と表示されて接続できない | Amimoto Help Center
chmod でパーミッションを絞ります。
$ chmod 0600 LightsailDefaultKey-ap-northeast-1.pem
再度 ssh 接続を行います。
$ ssh -i LightsailDefaultKey-ap-northeast-1.pem ubuntu@xxx.xxx.xxx.xxx
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1021-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun Jun 21 05:23:34 UTC 2020
System load: 0.0 Processes: 91
Usage of /: 7.6% of 19.32GB Users logged in: 1
Memory usage: 31% IP address for eth0: xxx.xxx.xxx.xxx
Swap usage: 0%
* "If you've been waiting for the perfect Kubernetes dev solution for
macOS, the wait is over. Learn how to install Microk8s on macOS."
https://www.techrepublic.com/article/how-to-install-microk8s-on-macos/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
256 packages can be updated.
152 updates are security updates.
Last login: Sun Jun 21 03:48:21 2020 from xxx.xxx.xxx.xxx
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ubuntu@ip-xxx-xxx-xxx-xxx:~$
無事に接続できました。
Terraria をサーバーにインストールして起動
ssh-Terraria TShockサーバーをUbuntuサーバーにインストールする方法 - スタックオーバーフロー
を参考にします。
1. 必要なパッケージのインストール
$ sudo apt-get install mono-complete screen unzip
2. Terraria 1.4.0.5 用 TShock をダウンロードします。
$ wget https://github.com/Pryaxis/TShock/releases/download/v4.4.0-pre11/TShock4.4.0_Pre11_Terraria1.4.0.5.zip
3. TShock の zip ファイルを解凍します。
$ unzip TShock4.4.0_Pre11_Terraria1.4.0.5.zip
4. 不要になった zip ファイルを削除します。
$ rm TShock4.4.0_Pre11_Terraria1.4.0.5.zip
5. サーバーを起動します。初回はマップを生成します。
$ mono-sgen TerrariaServer.exe
Docker の場合
まずこちらを参考に Docker をインストールします。
Ubuntu 18.04にDockerをインストールする(+docker-composeも) - Qiita
公式ドキュメントと英語に抵抗がなければこっちのが詳しいです。
Install Docker Engine on Ubuntu | Docker Documentation
terrariaの Docker Image は Docker Hub から探し、
最もDL数&Star数が多いものを使います。
ryshe/terraria - Docker Hub
Quick start guide に従ってコマンド2つで起動まで完了します。
1. まずワールドやログを保存するディレクトリを用意します。
$ mkdir -p $HOME/terraria/world
2. サーバーを起動し、マップを生成します。
$ sudo docker run -it -p 7777:7777 --rm -v $HOME/terraria/world:/root/.local/share/Terraria/Worlds ryshe/terraria:latest
インスタンスのスケールアップ
「スペックの低いインスタンスを選択して起動まで辿り着けない」
「遊んでいるうちにより高スペックのサーバーが必要になった」
という場合に上位のプランに移行することができます。逆は難しいです。
まずインスタンスのスナップショットを作成します。
そして作成したスナップショットのオプションから、
「新規インスタンスの作成」に進みます。
後は「Lightsail のセットアップ」と同様の画面が表示されるので、
上位のプランを選択してインスタンスを作成します。
そして、移行が完了したら、古いインスタンスを削除します。
その他参考資料
CentOS7 Terrariaのマルチプレイ用サーバをVPS上に構築 | server-memo.net
How to run a dedicated Terraria server on Ubuntu | Reddit
How to Setup a Terraria Linux Server | Linode
この記事が気に入ったらサポートをしてみませんか?