AWS EC2(Windows Server 2022)をAstroneer Serverにする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/b12a2a17-470e-3d3e-ccd8-d26c8aa1233d.png)

AWS EC2をAstroneerゲームサーバとして利用します。

# ■構成
Astroneer Server : `Windows Server 2022`
Astroneer Client : `Windows11`

# ■流れ

まずはAWS EC2の準備とネットワーク設定を実施します。
>1.EC2作成
1-1.EC2作成
1-2.セキュリティグループ編集
1-3.ElasticIPの関連付け
1-4.初期パスワードの入手とRDP接続
1-5.Windowsファイアウォール設定

Astroneerデプロイのため、SteamCMDを利用してインストール等を行います。
>2.Astroneerデプロイ
2-1.ディレクトリ構成
2-2.steamCMDデプロイ
2-3.Astroneerデプロイ
2-4.Astroneer初回起動
2-5.Astroneer config設定
2-5.Astroneer起動

最後にClient側からServerへの接続を行います。
>3.Astroneerクライアント接続
3-1.SERVER LISTからの接続
3-2.CO-OPモードでのゲーム開始


# 1.EC2作成
AWS EC2を作成し、グローバルIPアドレスで接続可能にします。
グローバルIPアドレスはElastic IPを利用し、サーバを恒久的に削除するまで固定するものとします。

## 1-1.EC2作成
EC2を作成します。
OSは`Windows 2022`、サイズは`t3.xlarge`、パブリックIPアドレスの自動割当は`無効化`としてインスタンスを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/776146e6-42f7-d9ac-dfaf-69e64028cc8b.png)

# 1-2.セキュリティグループ編集
`インバウンドルール`で以下のみ許可をしてEC2にアタッチします。

`RDP(TCP3389)`：リモートデスクトップ用
`カスタムUDP - 8777`：Astroneer接続用

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/b705853f-4988-862c-c892-baa7c7d3f563.png)

# 1-3.ElasticIPの関連付け
ElasticIPを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/8d3f30ef-33b4-b17e-c563-ffc07545967c.png)

EC2へ関連付けを行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/03ee7637-ca00-80d0-c1fc-13a9f6799c5f.png)

EC2へ関連付けられたことが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/8b2f5c91-39da-aeb6-e158-8a08693ac713.png)

# 1-4.初期パスワードの入手とRDP接続
EC2を選択し、`インスタンスの状態` - `セキュリティ` - `Windowsパスワードを取得`を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/d1780338-9de4-769f-82b1-1b7d89b8afc0.png)

EC2作成時に利用したキーペアを使用して初期パスワードを払い出しします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/21827c88-e74f-b216-909a-d00e49808686.png)

グローバルIPアドレスと初期パスワードを使用して、EC2へリモートデスクトップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/674b592f-80cc-7592-5906-958d6ef65c4f.png)

:::note info
以降、Windows Server 2022は英語設定のまま進めます。
:::

# 1-5.Windowsファイアウォール設定
Windowsファイアウォールの許可設定を行います。
インターネットからEC2へアクセスする際に使用される、`UDP 8777`を許可します。

コントロールパネルを起動します。
`System and Security`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/08e3da13-0030-cbd0-f40f-81b6ffa58734.png)

`Windows Defender Firewall`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/189788d8-67ea-114c-13ab-78272f886f98.png)

`Advanced setting`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/57252c30-3cb0-a238-9ba0-66e9aaa8e770.png)

`Inbound Rules`にて`New Rule`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/583f8b64-c6ae-1834-64b0-2263f84aba7f.png)

`Port`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/d2e35260-9000-8324-8d66-2ad1df1b9c34.png)

`UDP` - `8777` を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/2c87d661-5ba3-7e54-f8cb-2a589dbef370.png)

`Allow the connction` を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/8c769f5e-7c08-138d-02f1-698bbe98b971.png)

全てにチェックを入れておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/15818fb5-be9a-b644-45f5-bff93c9ca3b1.png)

適宜名前を入力し、`Finish`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/1221af1c-cc92-d76d-6dbc-1542a86d46a8.png)

設定が反映されたことが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/6bbb6780-9251-1650-57d0-f88af39d03a2.png)



# 2.Astroneerデプロイ
EC2にAstroneerのサーバアプリケーションをデプロイします。
なお、Astroneerのデプロイのために`SteamCMD`というものを利用します。

:::note info
`SteamCMD`はSteam内のユーザ登録不要なゲームサーバ等を入手するためにValve社にて提供しているツールです。
https://developer.valvesoftware.com/wiki/SteamCMD
:::


## 2-1.ディレクトリ構成
今回はEC2内に以下のディレクトリを作成します。
`C:\Games\steamcmd`：SteamCMD用ディレクトリ
`C:\Games\Astroneer`：Astroneer用ディレクトリ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/1a2ace23-6298-2a8b-a513-f305bc6509ce.png)

## 2-2.steamCMDデプロイ
以下URLにアクセスし、`steamcmd.zip`をダウンロードします。

https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

zipファイルを展開し、作成済みのsteamcmd用ディレクトリ（`C:\Games\steancmd`）に中身を配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/2f432a09-10d3-e0b8-e4aa-8110a0e08aec.png)

`steamcmd.exe`をダブルクリックします。
steamcmdのインストールと起動が開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/c9fbd142-fb55-481d-785d-16e6530aed9f.png)

しばらくして `Steam>` のプロンプトになるとsteamcmdの準備は完了です。
```text:steamcmd
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1698778122
-- type 'quit' to exit --
Loading Steam API...OK

Steam>
```


## 2-3.Astroneerデプロイ
引き続きsteamcmdを利用し、Astroneerの準備をします。


```text:steamcmd
Steam> login anonymous
Steam> force_install_dir "C:\Games\Astroneer"
Steam> app_update 728470 validate
Steam> exit
```

:::note info
`app_update 728470 validate`の`728470`はSteam Application IDにおけるAstroneerのIDになります。
:::

コマンド実行後、ディレクトリ内に以下のファイルが生成されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/664301cd-bc65-e61b-7e81-4719191e798b.png)


## 2-4.Astroneer初回起動
追加プログラムのインストールや一部ファイル等の作成のため、初回起動を行います。
ディレクトリ内の`AstroServer.exe`を起動します。

以下エラーが出る場合、`DirectX Runtime`を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/65cae410-cf51-41a9-d456-14a3dfa7001f.png)

インストーラーに従ってセットアップすると、インストールが完了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/c83c1c00-56ca-5db4-5a65-d42bb9dcf6af.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/848cfe4a-9f63-6b79-421e-1f469a765616.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/ea57aed7-22f1-bc1e-5886-944ca3e34490.png)

:::note info
以下の`.Net Flamework 3.5`に関するインストールエラーは、特に対応せずとも以降のAstroneer起動には支障ありませんでした。
不安な場合、`サーバマネージャ`内の`役割と機能`の`機能`からインストールが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/904de781-bbbb-1de7-8f45-844499f7a9e9.png)
:::

## 2-5.Astroneer config設定
config等の設定を行います。

まず、タスクマネージャの詳細に`Astroneer-Win64-Shipping.exe`や`Astroneer.exe`が存在しないことを確認します。存在する場合は右クリックから`プロセスツリーの終了`を実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/de81b8b2-47f0-90f3-1ccf-013e96330a2a.png)


以下ファイルの修正を実施します。
`C:\Games\Astroneer\Astro\Saved\Config\WindowsServer\AstroServerSettings.ini`

```text:AstroServerSettings.ini
PublicIP=       ### グローバルIPアドレスを入力 ###
ServerName=     ### サーバ名を記入（ホスト名と一致しなくてよい） ###
```

以下ファイルの追記を実施します。
`C:\Games\Astroneer\Astro\Saved\Config\WindowsServer\Engine.ini`

```text:Engine.ini
[URL]
Port=8777
```


## 2-5.Astroneer起動
上記で設定等が完了しましたので、`AstroServer.exe`を起動します。

タスクマネージャの詳細に`Astroneer-Win64-Shipping.exe`および`Astroneer.exe`が存在することを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/dc422e44-5e34-2a3e-b0bb-b1588e2e8c10.png)




# 3.Astroneerクライアント接続
以降はクライアント側のWindows11にてAstroneerサーバへの接続を実施します。


## 3-1.SERVER LISTからの接続
Astroneerを起動し、`SERVER LIST`を表示します。

`専用サーバーをお気に入りに追加`を選択し、以下を入力して`サーバーをお気に入りに追加`を選択します。
`サーバーURL`：IPアドレス:Portの形式で入力します。
`サーバーのニックネーム`：任意のニックネームを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/aa50b0f7-c778-15af-865a-f6dae9275377.png)

`ゲームに参加する`を選択すると、Astroneerサーバへアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/3f0287f4-60d3-445b-f5ca-23ca9552b96a.png)

## 3-2.CO-OPモードでのゲーム開始
接続が成功すると`CO-OP`が表示されるため、`ゲームに参加する`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/04d80872-4324-7a4c-c754-335e4baf8ac4.png)

こちらでAstroneerサーバを使用したゲームが開始できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201787/1a5fdbaa-8d83-34d2-081d-0259730ddb31.png)