AWSでlinuxサーバを作ってARKをインストールする手順AWSでlinuxサーバを作ってARK用のサーバを立てる手順シージをやるとき一緒に遊んでくれるメンバーたちとの間でARKが話題に上がり、なんやかんや色々話をした結果、ARKやろうかーみたいな話になったのが事の始まり。今までカスタムサーバ作って皆とプレイしていたのですがこれまでずーーーっと同じ課題を抱え続けていました。それは私のPCにARKサーバ建てているのでPCの電源が入っていないとほかの人がARKプレイできないということ。私と生活リズムが違う、休日お仕事で平日休みの日があるみたいな人は殆どARKを遊ぶことが出来ないといった問題点がありました。PCつけっぱなしにしろって?いやん・・・。不測の事態があったらどうするんだ!そこで今度はAWSにlinuxサーバを立ててARKインストールし、サーバの電源ON/OFFだけ出来る権限払いだしてサーバの電源入れたら自動的にARK立ち上がるようにしたらいいんじゃない?っていうわがままな要望が出てきたのでそれをかなえることに。その要望言ったの俺だけど。これが結構面倒というか存外に時間かかったので次回以降もし作り直す事があればスムーズに出来るように手順書を残すことにしました。前提条件とかを書いてそのあとに手順です。・サーバにログインする必要があるのでTeraTermを事前にインストールしておくこと。DLしたければTeraTermで検索すればすぐでてくる。・構築するサーバスペックはt3a.medium。物理メモリ8Gぐらい必要だが残り4GBはボリューム領域にSWAP領域作ることでカバー。・24時間フル稼働させた場合月あたり4500円ぐらいかかる。誰も遊んでいない時はちゃんとstopさせること。・spotインスタンスを使えば24時間フル稼働で月々1200円くらいに抑えられる。オートスケーリングみたいにAMI読み込んで立ち上がるので事前に固定サーバで構築し動作することを確認してからスポットリクエストを行う。設定でスポットの設定価格を上回ってもEBSが削除されないようにすることは可能。お得だけど時々利用料金はちゃんと確認した方がいい。・MOD入れる場合WinSCPというフリーソフトを入れる必要になる。上から順番にやって頂ければ最後にはちゃんと構築完了します。【セキュリティグループ作成編】Q:セキュリティグループって何?A.通信を許可するための設定。これを用意しないとデフォルトでは全部拒否してしまいサーバと通信が出来ない。1.,AWSマネジメントコンソールにログイン2.サービス検索でEC2と入力しEC2サービス画面へ3.左の枠からセキュリティグループを選択4.セキュリティグループの作成を選択5.SGの設定を作る。セキュリティグループ名はお好きな名前を。ここではARK-Parasaurolophus-server-sgと名付けています。私は空白にしています。VPCはデフォルトでOK。選択し下記のように設定する。同様の設定をアウトバウンドにも追加すること。※ちなみにこれやるとセキュリティ的には相当ガバガバになるんだけどサーバへのログインは後述するがキーペアを使ってログインするので第三者の人物が勝手にログインするのは困難。大した事するわけでもなく個人情報を入れる訳でもないのでこのくらい適当でも困りはしないと思う。なんかマズイナって思ったらサーバ消そう。セキュリティグループの作成はこれで完了。【キーペア作成編】Q:キーペアって何?A.簡単に言うとその名の通り鍵。サーバをログインするときに鍵がないと入れないようにする。なくてもログイン出来るようにすることは出来るけど流石にセキュリティ上やばく第三者にハッキングされるとたまったもんじゃないので最低限これはやっておこう。1.EC2の画面から左のリンクにあるキーペアを選択2.キーペアの作成ボタンを押す3.好きな名前を入力。4.作成ボタンを押すと自動的に鍵がダウンロードされるので厳重に保管すること。この鍵をうっかり消してしまったり紛失するとサーバにログインできなくなるので注意。再ダウンロードは出来ません。キーペア作成はこれで終了。簡単!【EC2インスタンス構築編】Q.EC2インスタンスって何?A.ざっくり言うとサーバ。ここでいよいよサーバ実機を作るようなイメージ。1.EC2の画面から左のリンクにあるインスタンスを選択2.インスタンスの作成ボタンを押す3.使用するOSを選択。仕事で使い慣れているので・・・。その次のインスタンスタイプは最初はt2.microで良い。ARKサーバの構築が終わったら後でインスタンスタイプをt3a.large(SWAP領域作っていればt3a.medium)に変更する。4.インスタンス設定。上のスクショの通りに。細かい説明は省きます。このスクショに載っていない下にスクロールした部分とかは特に弄らずそのままでOK。5.ストレージサイズは30GBで。30GBまでなら一年間無料で使える。それ以上のサイズにすると追加課金が発生する。ボリュームタイプは汎用SSDで。汎用SSDじゃないものにするとコストを圧縮できるが後述のSWAP作戦でSSD必須になるのでおとなしく汎用SSD使ってください。タグ設定は何も記入せず次へ7.セキュリティグループは既存のセキュリティグループを選択を選び、先ほど作成したセキュリティグループを選択。8.確認と作成ボタンを押し作成ボタンを押す。EC2インスタンスはこれで完成。【ログイン編】サーバにログインするための方法。固定GIPを割り当てる必要がある。IPアドレスの割り当てをクリック3.そのまま何も設定をいじらずに割り当てボタンをクリック4.これでGIPが払い出される。IPアドレスの関連付けを選択。(GIPはセキュリティの都合非表示にしていますが実際には数字の羅列があるはずです。5.インスタンスの枠をクリックし、先ほど構築したEC2インスタンスのインスタンスIDを選択。他にEC2サーバ構築してなければARK用の一つしかないはず。他は何も弄らずそのままでOK。6.構築したEC2のIPv4パブリックに先ほど関連付けたIPアドレスが紐づいていることを確認しつつ、そのIPアドレスをコピーする。7.Teratermを起動してホストにコピーしたIPアドレスを記載。8.ユーザー名はec2-userが使える。パスワードは空白でOK。(※手順は割愛するがLinuxに知識がある人ならec2-userはセキュリティ的にガバいので別のユーザーアカウント作ってec2-userアカウントは消そう。わからない人はそのままでもとりあえずはいい。認証方式はRSAのラジオボタンを選択し、上でキーペアを作成した時にダウンロードしたファイルを選択する。拡張子はpemになってるやつ。ログイン出来なかったらどこかで手順を間違えている。ユーザーID、セキュリティグループの設定、使ってるキーペアのファイルをよく確認すること。【ARKインストール編】ここからが本番。一気に難易度が高くなる。基本的にセットアップ手順については下のARK英語Wikiに載っているのをそのまま転載した形。インストールまでならWikiの通りでうまくいった。MODがちょっと違った。/etc/sysctl.conf以下の行を追加。1プロセスのファイルオープン数を変更。/etc/security/limits.conf以下の内容を追加。-./steamcmd.shSteamのコマンドラインに入るので続けて以下のように入力。いう状態になるまで待機すること。-log赤文字の箇所は適宜書き換えてください。それぞれの意味は下記の通り。表示されるサーバー名join_passwordログインパスワードadmin_password管理者パスワードもし上の状態のままコマンド入力したらserver_nameっていう名前のサーバが出来上がりサーバにログインするときのパスワードはjoin_passwordになる。青文字の箇所はマップ選択。この状態で起動すればみんな大好きアイランドマップで起動される。スコーチドやセンターなど他マップで遊びたければ適宜下記単語に書き換える。=アベレーション絶滅マップはちょっと単語調べてないけど恐らくDLC名の後に_Pでいけるはず。MODいれたり経験値倍率等の設定をいじらず純正公式設定で遊ぶ!って人はこれでとりあえず設定はおしまい。後はARKを起動してサーバ選択画面で非公式サーバ一覧を選び、チェックボックスからパスワードがかかってるサーバを表示させてフィルターにサーバ名入力すれ検索して出てくることを確認すること。上の手順でインストールしたままの状態だと資源収集倍率等は公式サーバ基準なので非常にマゾい。テイム速度と資源収集倍率は上げておかないとかなりきついので上げておいたほうがいい。設定変更は基本的に下記ファイルを編集する必要がある。/home/steam/Steam/ark/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini/home/steam/Steam/ark/ShooterGame/Saved/Config/LinuxServer/Game.iniこのページを参考にインストール作業を進めたのなら上のディレクトリに該当ファイルがあるはず。GameUserSettings.iniとGame.iniに適宜記述を入力することで設定が変更される。何の設定を入れるとどう変わるかは基本的に英語版のWikiにすべて書いてあるので可能であれば一読すべし。https://ark.gamepedia.com/Server_Configurationここでは殆どの人が編集するである項目を記載していく。下記項目はGameUserSettings.iniに記述すること。GameUserSettings.iniは最初からいくつかの値が記述されている場合があるのでgrepなどで事前に調べておくこと。例:HarvestAmountMultiplier=3整数の数だけ取得量が倍になる。例のように3にしていると資源採集量が3倍になる。この数字を100など極端に大きい数字にすると一瞬で重量オーバーになるので後述するステータス倍率も併せて編集すること。例:NightTimeSpeedScale=2.0数字を高くすると夜になった時の時間の進みが早くなり夜明けが早まる。例:OverrideOfficialDifficulty=5.01.0で最大レベルが30。整数*30の値が最大レベルになる。5.0であれば150が最大レベルになる。・ログインが長期間なかった時勝手に建築物が壊れる設定を無効化したい(PvP専用の設定PvPStructureDecay=false値をfalseではなくtrueにすると逆に8日ほどログインがないと勝手に建築物が壊れる。例:AutoSavePeriodMinutes=5例の通りに設定すると5分ごとにオートセーブが入る。不意のクラッシュ対策に。デフォルトで15分間隔でオートセーブされているので基本的にいじらなくてもいいがセーブのタイミングで一瞬ラグが走るので適宜変更すること。・サバイバーが死んだときにどこで死んだかわかりやすくするbUseCorpseLocator=trueこの記述を追加すると死んだ場所に緑色の光の柱が立ってどこに死体があるか分かりやすくなる。草むらに隠れて見つからないなどのストレスから解放されるので追加推奨。以下の設定はGame.iniに記述する設定。間違えてGameUserSettings.iniに書いても反映されないので注意。・エングラムポイントの取得量を変更したいOverridePlayerLevelEngramPoints=<points>各レベルごとに記述すること。100Lvまで記述する必要がありかなり行数が増える。1Lv上がったら10万エングラムポイント貰えるようにして後はデフォルトにしたければ以下のように設定すること。OverridePlayerLevelEngramPoints=0OverridePlayerLevelEngramPoints=10000OverridePlayerLevelEngramPoints=8OverridePlayerLevelEngramPoints=8OverridePlayerLevelEngramPoints=8OverridePlayerLevelEngramPoints=8OverridePlayerLevelEngramPoints=8OverridePlayerLevelEngramPoints=8OverridePlayerLevelEngramPoints=8OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=12OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=16OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=20OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=24OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=28OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=40OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=50OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=60OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70OverridePlayerLevelEngramPoints=70上をそのままコピーして入れるのを推奨。クラフティング速度乗数の値。7の整数の値を5にすると1ポイント振ると50上がるようになる(5倍上がる・恐竜レベルアップ時のステ振り上昇量を増やしたい。内容はサバイバーのと同じ。値を大きくすると早く成長する。大きくしすぎると抱擁が出来なくて初期ステで生体になるので注意。確実に設定するであろうっていう設定はこんな所。他にもいろんな設定値があるので前述のWikiのページを参照ください。前提としてMODを入れるのにWinMargeというフリーソフトが必要になるので注意。(WinSCPのダウンロードはこちらから別になくてもサーバコマンドだけで出来るはずなんだけど私の環境だとうまくいかなかった。1.使いたいMODをSteamワークショップから先にインストール。例としてこの各リソースのスタック数を5000にあげてくれる便利なMODを導入するとする。サブスクライブしたらダウンロードが始まるので終わるのを待つ。ダウンロードが終わったら必ず一度ARKを起動すること。起動しないと必要なファイルがそろわない。ARKを一度起動するとARKのローカルファイル内にModファイルが生成されるのでこれをいったんデスクトップにコピーして持ってく。直接ドラッグ&ドロップしないように注意。他にもModダウンロードしているとほかにも出てくるから注意。今回は赤枠の奴がそのリソース拡張MODのファイル。どれがそのMODファイルなのかはSteamワークショップの該当MODのURL見るとわかる。二枚上のスクショに赤枠がある部分がMODのID。デスクトップにMODファイルコピーしてきたらWinSCP使ってAWSのサーバに転送する。WinSCP立ち上げたら設定ボタンをまず押す。AWSのサーバ構築時に作成したキーペア(秘密鍵)を選択するのだがそのままだと出てこないので・・・。