15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ショボいVPSでARK: Survival Evolvedのサーバを動かす

Last updated at Posted at 2020-03-07

Overview

ARK: Survival Evolvedのサーバに最低限必要なスペックは次のとおりです.

CPU RAM SSD Network
Core i5 2.5GHz 8GB 100GB 100Mbps

参考: ARK_Survival_Evolved Wiki

転送量で課金されるのはたまらないのでVPSで相場を確認しましょう.

image.png
参考: DigitalOcean

image.png
参考: さくらのVPS

...なるほど

Description

ARK本体がセールで1000円で買えるのにサーバに毎月何千円も出してられないので, マイクラのサーバ用に今契約してるショボいVPSで起動してみます.

CPU RAM HDD Network
2Core 2GB 200GB 100Mbps

スペックはこんな感じです, OSはUbuntu18.04で
料金は月1500円弱だったと思います.

Settings

とはいえ, 上のスペックで到底ARKサーバが動くわけがありません(最低6GBメモリがないと起動すらしませんでした).
なので, swapfileを作ってスワップ領域を割り当て, 足りない物理メモリをブーストしてあげようと言う魂胆です.

swapfile

$ sudo dd if=/dev/zero of=/var/swapfile bs=1M count=6144
$ sudo chmod 600 /var/swapfile
$ sudo mkswap /var/swapfile
$ sudo swapon /var/swapfile

こんな感じでスワップファイルを作ってあげるといいです.
VPSを再起動するたびにswap領域のマウントが外れてしまうので, 起動時にマウントしてくれるような設定を書いておきましょう(OSによって違うのでここには書いていません)

次の記事が参考になります.
Ubuntu Server 18.04 LTS スワップファイル設定

Docker

ゲームのサーバなんかインストールして環境を汚したくないので, Dockerでやります.
ありがたいことに凄い人がdockerイメージを作ってくれているので, こちらをありがたく使わせていただきます.
https://github.com/TuRz4m/Ark-docker

docker-compose.yml

.yml
version: '3.7'
services:
  ark:
    image: turzam/ark
    container_name: ark_server
    ports:
      - "7778:7778"
      - "7778:7778/udp"
      - "27015:27015"
      - "27015:27015/udp"
    restart: always
    volumes:
      - ark:/ark
    environment:
      SESSIONNAME: ark_docker
      ADMINPASSWORD: {バレにくくてカッチョいいパスワード}
      SERVERPASSWORD: {サーバに入る人が使うダサいパスワード}
      TZ: Asia/Tokyo

volumes:
  ark:

run

$ docker-compose up

あとは通常通り起動してあげればOKです.
起動に10分くらいかかるので気長に待ちましょう.

HDDなのでどうかな〜と思っていましたが5人でプレイした感じほとんどラグも起こらずに, ストレスなく遊べました.

それでは, よいARKライフを!

Edit Configfiles

上の例では, arkというvolumeを作成してその上にデータがマウントされています.
そのため, コンフィグファイルをいじりたい場合には起動中のコンテナに接続してファイルを編集します.

$ docker exec -it ark_server /bin/bash

などで接続して, Game.iniやGameUserSettings.iniを編集しましょう.

Using Custom Domains

おまけ

独自ドメインを持っていて, サブドメイン運用したい場合はこんな感じにするといいです.

前に書いた次の記事が参考になると思います.
Docker サーバ管理 なるべく楽に サブドメインありhttpsあり

nginx-proxy/docker-compose.yml

.yml
version: "2"
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./certs:/etc/nginx/certs:ro
      - /etc/nginx/vhost.d
      - /usr/share/nginx/html
    restart: always
    networks:
      - shared

  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./certs:/etc/nginx/certs:rw
    volumes_from:
      - nginx-proxy
    restart: always
    networks:
      - shared

networks:
  shared:
    external: true

ark/docker-compose.yml

.yml
version: '3.7'
services:
  ark:
    image: turzam/ark
    container_name: ark_server
    ports:
      - "7778:7778"
      - "7778:7778/udp"
      - "27015:27015"
      - "27015:27015/udp"
    restart: always
    volumes:
      - ark:/ark
    environment:
      VIRTUAL_PORT: 27015
      VIRTUAL_HOST: {自分のサブドメイン 例: ark.example.com}
      LETSENCRYPT_HOST: {自分のサブドメイン 例: ark.example.com}
      LETSENCRYPT_EMAIL: {自分のメアド 例: info@example.com}
      SESSIONNAME: ark_server
      ADMINPASSWORD: {バレにくくてカッチョいいパスワード}
      SERVERPASSWORD: {サーバに入る人が使うダサいパスワード}
      TZ: Asia/Tokyo

networks:
  default:
    external:
      name: shared

volumes:
  ark:
15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?