こちらは Unreal Engine (UE) Advent Calendar 2022 のカレンダー 2 、12 月 18 日分の参加記事の追加分となります。
Linux DedicatedServer ができたので AWS に EC2 インスタンスを立てて動かしてみました …と書きたい所ですが、Graviton2 インスタンスを試したくなったので LinuxArm64 で再パッケージングしました。
EC2 インスタンスの作成
AWS マネジメントコンソールにログインし、EC2 のインスタンス画面の右端にあるインスタンスを起動をクリックします。
名前を入力し、マシンイメージは AmazonLinux、アーキテクチャは(せっかくなので)64bitArm を選択します。
インスタンスタイプはデフォルトの c6g.medium で問題ありません。キーペアは(既存のものがなければ)新規作成します。
キーペア名を入力し、キーペアを作成をクリックすると、pem ファイルがダウンロードされるので手元で保管して下さい。 この pem ファイルは ssh ログイン時に使用します。
作成したキーペア名を EC2 側にも忘れずに設定しておいて下さい。(なお筆者は一度忘れて ssh ログインできないインスタンスを作成してしまい…作り直す羽目になりました orz)
ネットワーク設定の編集をクリックして下さい。
パブリック IP の自動割り当てを有効化に設定して下さい。
インバウンドセキュリティグループはデフォルトでは ssh(22/tcp)のみのため、追加が必要です。
ここで UE のネットワークを追加します。
タイプをカスタム UDP、ポート範囲を 7777、ソースに手元の PC のグローバル IP アドレスを記入します。
***.***.***.***/32
と CIDR 表記で書くことでその IP アドレスからのみ接続を許可します。
手元の PC のグローバル IP アドレスが不明の時は、ENV Checker - 環境変数チェッカーなどのサイトで調べることができます。サイトを開きREMOTE_ADDR
の値を記入して下さい。
以上の設定が終わったら、インスタンスを起動をクリックします。
10 数秒ほどして起動が完了します。
起動が完了しても初期化が終わるまではログインできません。
このような表記になったらログイン可能です。
DedicatedServer パッケージのコピー・展開・起動
ログイン可能になったら、パブリック IPv4 アドレスに ssh 接続してログイン可能かどうか確認します。 (パブリック IPv4 アドレスは ↑ のインスタンス一覧画面を右にスクロールしていくと表示されています)
$ ssh -i ../../../../ssh/aws/UE-DedicatedServer-keypair.pem ec2-user@***.***.***.***
The authenticity of host '***.***.***.*** (***.***.***.***)' can't be established.
ECDSA key fingerprint is SHA256:7cpp+CGYwC61o5GZmk3j2+z3AlBHny4CbgzSDUYBsrw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '***.***.***.***' (ECDSA) to the list of known hosts.
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-***-***-***-*** ~]$
ログインできたらいったんログアウトし、Linux DedicatedServer のパッケージ Zip を scp で EC2 インスタンスにコピーします。
$ scp -i ../../../../ssh/aws/UE-DedicatedServer-keypair.pem LinuxArm64Server.zip ec2-user@***.***.***.***:~/
その後、EC2 インスタンスに再度ログインし、パッケージを展開、実行権を付与し、実行します。
[ec2-user@ip-***-***-***-*** ~]$ ls
LinuxArm64Server.zip
[ec2-user@ip-***-***-***-*** ~]$ unzip -x LinuxArm64Server.zip
Archive: LinuxArm64Server.zip
creating: LinuxArm64Server/
inflating: LinuxArm64Server/Manifest_NonUFSFiles_LinuxArm64.txt
inflating: LinuxArm64Server/Manifest_UFSFiles_LinuxArm64.txt
creating: LinuxArm64Server/Multiplay51/
inflating: LinuxArm64Server/Multiplay51Server-Arm64.sh
creating: LinuxArm64Server/Multiplay51/Binaries/
creating: LinuxArm64Server/Multiplay51/Binaries/LinuxArm64/
inflating: LinuxArm64Server/Multiplay51/Binaries/LinuxArm64/Multiplay51Server-LinuxArm64-Shipping
creating: LinuxArm64Server/Multiplay51/Content/
creating: LinuxArm64Server/Multiplay51/Content/Paks/
inflating: LinuxArm64Server/Multiplay51/Content/Paks/global.ucas
inflating: LinuxArm64Server/Multiplay51/Content/Paks/global.utoc
inflating: LinuxArm64Server/Multiplay51/Content/Paks/Multiplay51-LinuxArm64Server.pak
inflating: LinuxArm64Server/Multiplay51/Content/Paks/Multiplay51-LinuxArm64Server.ucas
inflating: LinuxArm64Server/Multiplay51/Content/Paks/Multiplay51-LinuxArm64Server.utoc
[ec2-user@ip-***-***-***-*** ~]$ ls -l LinuxArm64Server/Multiplay51/Binaries/LinuxArm64/
total 114176
-rw-rw-r-- 1 ec2-user ec2-user 116914968 Dec 18 2022 Multiplay51Server-LinuxArm64-Shipping
[ec2-user@ip-***-***-***-*** ~]$ chmod +x LinuxArm64Server/Multiplay51/Binaries/LinuxArm64/Multiplay51Server-LinuxArm64-Shi
pping
[ec2-user@ip-***-***-***-*** ~]$ ls -l LinuxArm64Server/Multiplay51/Binaries/LinuxArm64/
total 114176
-rwxrwxr-x 1 ec2-user ec2-user 116914968 Dec 18 2022 Multiplay51Server-LinuxArm64-Shipping
[ec2-user@ip-***-***-***-*** ~]$ ./LinuxArm64Server/Multiplay51/Binaries/LinuxArm64/Multiplay51Server-LinuxArm64-Shipping
起動したら Windows クライアントから接続します。調子に乗って 4 人分接続してみましたが、フォーカスが外れたウィンドウはフレームレートが落ちるようです。 同一の Windows 上でクライアント実行しているのでご容赦下さい。あと、操作する人間が 1 人しかいないのはどうしようもなく…(爆)
注意
放っておくとどんどん時間課金されます。 オンデマンドインスタンス料金表によると c6g.large は 0.0856USD/時間となっていますが、 1 ヶ月(24 時間 30 日)で約 8400 円(1USD=136 円換算)になります。 不要になったインスタンスは忘れずに停止または終了しておきましょう。 (終了するとインスタンスの全データが破棄されるため、また使うことがあるなら停止に留めておくのが良さげです)
まとめ
Graviton2 のインスタンスいいですね! UE DedicatedServer のパッケージングを動かす上では x64 と特に違いは感じられませんでした。 x64 の c5.large が 0.107USD なので多少お安くなっているようです。