[AWS] ARK: Survival Evolvedサーバーを立てる
先人の知恵を見ながら
公式Wiki
EC2でまずは立ち上げ。リージョン間違えないようにしないと
EC2 セキュリティグループの設定とやらがまずわからん。調べよ
どうやらポートの許可とかする場所みたい
デフォルトでは、セキュリティグループには、すべてのアウトバウンドトラフィックを許可するアウトバウンドルールが含まれています。これらのルールは削除できます
全通信を通すやつじゃん。こわ、けしとこ
インバウンドルールと、アウトバウンドルールだけ編集、削除っと
ポートの情報あってるかさぐるか…としているときに、Streamのフォーラムを発見
Steamの、サーバー管理者のコミュニティ
ポート 用途 UDP 27015 Steamのサーバーブラウザのクエリポート UDP 7777 ゲームクライアントポート UDP 7778 生のUDPソケットポート(常にゲームクライアントポート+1) TCP 27020 リモートコンソールサーバーアクセス用のRCON(オプション)
ふむ?
インスタンスの起動時に 1 つ以上のセキュリティグループを指定できます
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-security-groups.html
セキュリティグループ複数つけられるということは、
例えばセットアップ中は SSHプロトコル 22ポートを許可して
終わったら外すってことが簡単にできるのか
Steamのサーバーブラウザのクエリポート
とあったので、Steamのポートについてからみてみるか
English: https://help.steampowered.com/en/faqs/view/2EA8-4D75-DA21-31EB
AWS EC2のセキュリティグループを作ろうとしたら、VPCというまたわからん用語が出てきたので調べ中
Virtual private clouds、略してVPC
たぶん、イメージとしては家でローカルネットワーク(LAN)を構築するみたいな感じかしら
デフォルトでは、デフォルト サブネットはパブリック サブネットです。これは、メイン ルート テーブルがインターネット宛てのサブネットのトラフィックをインターネット ゲートウェイに送信するためです。宛先 0.0.0.0/0 からインターネット ゲートウェイへのルートを削除することで、デフォルト サブネットをプライベート サブネットにすることができます。ただし、これを行うと、そのサブネットで実行されている EC2 インスタンスはインターネットにアクセスできなくなります。
https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html
ほうほう、つまりAWSの外側から何もできなくなるし、AWSの内側からインターネットにアクセスすることも禁止できると
これはいったんデフォルトのやつにするか。
EC2インスタンス1台だけの構成だし、あるとしたらデータのバックアップで何か、くらいだろうし
こんな感じにすれば、Steam専用ポートってできるかな
アウトバウンドはいったん空っぽにしておこう
セキュリティグループを複数付けたときに、ゆるい設定を使うらしいので
ARKサーバに接続するクライアントは、UDP通信でポート7777に接続して来るらしいので
それは別のセキュリティプロトコルで設定。
アウトバウンドはどうしよ?
アウトバウンド、とりあえずIP4全部にしておこう…
EC2いよいよ立てるかー
ネットワーク設定
んあ?、もしかしてArmのほうが安く済む?
動作みないとだけど…
いったんt4g.largeにしてみよう
ストレージは24GiBに。
終了時に削除はいいえにしておく。
起動したので、この手順に沿ってセットアップ
書けないと思ったら
[ec2-user@ip-<XXX> ~]$ ls -l /etc/arkmanager/instances/main.cfg
-rw-r--r-- 1 root root 2512 Jan 8 07:07 /etc/arkmanager/instances/main.cfg
なので、
sudo vi /etc/arkmanager/instances/main.cfg
というか作成したユーザーに管理者権限がないのが問題だったので
sudo visudo
でファイルを見て、最初はここにsteamグループを入れちゃおうかと思ったけどやめて、
sudo usermod -G wheel steam
で、wheelグループ (これがデフォルトの、管理者権限のあるユーザーグループのようだったので)に追加
getent group wheel
で一応入ったのかを確認。
Installing ARK server ... -/home/steam/steamcmd/steamcmd.sh: line 37: /home/steam/steamcmd/linux32/steamcmd: cannot execute binary file
??? なぜだ?
[steam@ip-<XXXX> ~]$ ls -l /home/steam/steamcmd/linux32
total 6108
-r-xr-xr-x 1 steam steam 352763 Jan 5 2018 crashhandler.so
-r-xr-xr-x 1 steam steam 922064 Jan 5 2018 libstdc++.so.6
-rwxrw-r-- 1 steam steam 4839761 Jan 5 2018 steamcmd
-r-xr-xr-x 1 steam steam 130423 Jan 5 2018 steamerrorreporter
もしかして: マシンのアーキテクチャがARMだから
あー、解決方法がないので
インスタンスからつくりなおすか…
仕事が立て込んでいて、精神的に辛いのでしばし中止します…
落ち着いたらやるんだ…
セキュリティ的に改善の余地がありそう(ユーザー名、ポート辺り)なので
しばしスポットインスタンスで構築 & 立ち上げ練習中…
(料金が安いのと、どうせいったん壊すとかそういうやつなので)
立ち上がったのでわかったこと:
- ARMはだめ、steamCMDや依存モジュールが対応していない
- AMIはAmazon Linux 2 (x86_64) にする
- スポットインスタンスはいろいろ試すのにもってこい
- ARK Managerでのインストールは5分くらい?かかるのでしばし待つこと
次のチャレンジでやること:
- AWSでのデフォルトでのログイン名「ec2-user」 の変更 (セキュリティ的に)
- セットアップ時の作成ユーザー名の変更
- ポート番号の変更 (/etc/arkmanager/instances/main.cfg) 以下はデフォルトの値
- ark_RCONPort="32330" TCP
- ark_Port="7778" TCP
- ark_QueryPort="27015" UDP
- データバックアップ
- (スポットインスタンス向け) シャットダウン直前のセーブとバックアップ
AWS CloudFormation なるものを知ったので、これでテンプレ作っておくと作っては壊しをしやすいかもしれない?