はじめに

AWS Lightsail で統合版サーバを構築して、3人でマルチプレイを行っていたところ、途中から何もかもがラグってしまう状態になったので、CoNoHa VPS に移行した。

移行理由や統合版サーバの設定手順などについて、簡単に整理した。

TL;DR

  • Lightsail(最低スペック)だと、マイクラ統合版サーバの運用にはスペック不足
  • CoNoHa VPS だと低料金で運用可能
  • 紹介クーポン + キャンペーンのクーポンは両方受け取り可能
  • テンプレートが用意されているので、サーバ環境の構築や設定の必要なし
    • セキュリティ面を気にするなら、多少の設定変更した方が Good

目次

  1. はじめに
  2. TL;DR
  3. 環境・条件
    1. ローカルマシン(Mac)
    2. CoNoHa VPS(Ubuntu)
  4. Ligthsail だとスペック不足
  5. CoNoHa VPS への移行
    1. CoNoHa VPS を選んだ理由
    2. サーバ構築手順
    3. サーバのセキュリティ周りの変更
      1. SSH 設定変更
      2. minecraft ユーザー設定
    4. Lightsail(他 VPS) からデータ移動
  6. まとめ

環境・条件

ローカルマシン(Mac)

VPS への接続などの作業用

1
2
3
4
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.4
BuildVersion: 19E287

CoNoHa VPS(Ubuntu)

Minecraft 統合版サーバ用

1
2
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 18.04.4 LTS"

Ligthsail だとスペック不足

【月額 約400円〜】AWS Lightsail で Minecraft 統合版サーバを構築 で、AWS Lightsail に統合版サーバを構築したが、3人でマルチプレイしたところ、途中から何もかもがラグってしまう状態になった。

以下はその時の CPU グラフ。

  • 最低スペック
  • マイクラは常時 CPU 使用(率が高い)
  • Lightsail は使用可能な CPU が制限される(常時 100% では使えない)

ということもあり、そもそも Lightsail の最低スペックで統合版サーバを運用するのには無理があった。
(Lightsail のことをしっかりと調べてなかった)

CoNoHa VPS への移行

CoNoHa VPS を選んだ理由

以下の理由で CoNoHa VPS を選定。

  • 初期費用なし
  • 最低利用期間なし
  • 転送量制限なし
  • 完全日割り
  • そこまで高くない

※画像は https://www.conoha.jp/vps/pricing/ より引用


  • 紹介リンク 経由で1000円分クーポン
  • 他キャンペーンでさらに追加クーポン(ページ下の方から探す)


  • マインクラフト統合版サーバ用のテンプレートがある
    • 面倒なインストール作業を行う必要がない

サーバ構築手順

基本的には、公式手順を参照して作るだけで OK。

サーバのセキュリティ周りの変更

できれば SSH のポートを変更したり、root ユーザーでの SSH を無しにしたり、不要なポートは閉じたりをしておきたい。

読んでも分からないという人は、ググって調べる or 無視 で。 ※よく分からないまま設定すると、最悪の場合接続できなくなるので注意。

SSH 設定変更

サーバに SSH で接続(or CoNoHa の GUI から接続)

1
2
3
4
5
# SSH での接続例: ローカルマシン(Mac) で実行
$ ssh root@1.2.3.4
root@1.2.3.4's password:
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-96-generic x86_64)
...

/etc/ssh/sshd_config を変更。 ※変更しても、まだ SSH の再起動はしない。

1
$ vi /etc/ssh/sshd_config
ポート番号の変更
1
2
3
4
 ...
-#Port 22
+Port 54321 # 自分の好きなポート番号(32768~61000)を指定
...
root ログインの禁止

root でログインできて OK なら変更不要

1
2
3
4
 ...
-PermitRootLogin yes
+PermitRootLogin no # root ログインを禁止するなら設定
...
パスワードでのログイン禁止(キーペアでのログイン)

パスワードでログインできて OK なら変更不要

1
2
3
4
5
6
7
8
9
10
 ...
-#PubkeyAuthentication yes
+PubkeyAuthentication yes
...
-#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
+AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
...
-PasswordAuthentication yes
+PasswordAuthentication no
...

minecraft ユーザー設定

もともと minecraft というユーザーが作られているので、root ユーザーを禁止する場合は、minecraft ユーザーでログインするようにする。

ホームディレクトリ作成
1
2
$ mkdir -p /home/minecraft/.ssh
$ chown -R minecraft:minecraft /home/minecraft
minecraft ユーザーのシェルを bash に変更(お好みで)
1
2
3
4
$ chsh minecraft
Changing the login shell for minecraft
Enter the new value, or press ENTER for the default
Login Shell [/bin/sh]: /bin/bash
パスワード設定
1
2
3
4
$ passwd minecraft
Enter new UNIX password: # 好きなパスワードを設定
Retype new UNIX password: # 好きなパスワードを設定
passwd: password updated successfully
minecraft ユーザーで sudo できるように変更
1
2
# 本来は visudo でやるべきだけど nano が起動するので。。。
$ vi /etc/suders

minecraft ユーザーの記述を追加して :wq! で保存

1
2
3
4
5
 ...
# User privilege specification
root ALL=(ALL:ALL) ALL
+minecraft ALL=(ALL:ALL) ALL
...

sudo 可能か確認

1
2
3
4
5
$ su - minecraft  # minecraft ユーザーに切り替え
$ sudo ls /
[sudo] password for minecraft:
bin boot ... # 省略
$ exit # root に戻る
authorized_keys を配置

ローカルマシンでキーペアを作成、自分は Mac なので ssh-keygen で作成。

1
$ ssh-keygen

生成された公開鍵(Mac デフォルトだと id_rsa.pub)を SCP なり FTP なりで VPS に転送。

1
2
3
# ローカルマシン(Mac) で実行: Mac 上の id_rsa.pub を VPS に転送
$ scp /path/to/id_rsa.pub root@1.2.3.4:/home/minecraft/.ssh/authorized_keys
root@1.2.3.4's password: # root ユーザーのパスワード入力

VPS 側で /home/minecraft/.ssh/authorized_keys の所有者や権限を変更

1
2
3
4
# VPS 側で事項
$ chown minecraft:minecraft /home/minecraft/.ssh/authorized_keys
$ chmod 700 /home/minecraft/.ssh
$ chmod 600 /home/minecraft/.ssh/authorized_keys
ファイアウォール設定

ufw で設定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$ ufw status numbered
Status: active

To Action From
-- ------ ----
[ 1] OpenSSH ALLOW IN Anywhere
[ 2] 19132/udp ALLOW IN Anywhere
[ 3] OpenSSH (v6) ALLOW IN Anywhere (v6)
[ 4] 19132/udp (v6) ALLOW IN Anywhere (v6)

# OpenSSH の許可を削除
$ ufw delete 3
$ ufw delete 1

# SSH 用の独自ポートを許可
$ ufw allow 54321

# デフォルト動作を変更(不許可)
$ ufw default deny

# 設定確認
$ ufw status
Status: active

To Action From
-- ------ ----
19132/udp ALLOW Anywhere
54321 ALLOW Anywhere
19132/udp (v6) ALLOW Anywhere (v6)
54321 (v6) ALLOW Anywhere (v6)
ローカルマシンの SSH Config 変更

~/.ssh/config を編集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
+Host minecraft  # わかりやすい名前
+ HostName 1.2.3.4 # VPS の IP
+ Port 54321
+ User minecraft
+ IdentityFile ~/path/to/private_key # ssh-keygen で作成した秘密鍵のパス

Host *
TCPKeepAlive yes
IdentitiesOnly yes
ServerAliveInterval 60
ServerAliveCountMax 10
StrictHostKeyChecking no
UseKeychain yes
AddKeysToAgent yes
Port 22
sshd 再起動&接続確認

VPS 側で sshd を再起動

1
2
# VPS 側で実行
$ service sshd restart

ローカルマシンから ssh で接続できるか確認

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ローカルマシンで実行
$ ssh minecraft
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-96-generic x86_64)
...
================================================
Welcome to Minecraft BedrockEdition image!

Server address : 1.2.3.4

Minecraft directory : /opt/minecraft_be_server/

Enjoy Minecraft!

To delete this message: rm -f /etc/motd
================================================

minecraft@1-2-3-4:~$

minecraft ユーザーで接続できれば成功。

試しに root や Port 22、パスワードで SSH しようとしてみると、以下のようになるはず。

1
2
3
4
5
6
7
8
$ ssh root@1.2.3.4
ssh: connect to host 1.2.3.4 port 22: Connection refused

$ ssh -p 54321 root@1.2.3.4
root@1.2.3.4: Permission denied (publickey).

$ ssh -p 54321 minecraft@1.2.3.4
minecraft@1.2.3.4: Permission denied (publickey).

minecraft ユーザーから root に切り替えたい場合は、sudo su - を実行

1
2
3
minecraft@1.2.3.4:~$ sudo su -
[sudo] password for minecraft:
root@1.2.3.4:~#

Lightsail(他 VPS) からデータ移動

※他サーバで稼働中のデータが無い人はスキップ。

マイクラ統合版サーバを設置したディレクトリにある worlds をまとめてコピーすれば OK。

1
$ zip -r worlds.zip worlds/*

FTP なり SCP なりでいったんローカルマシンにコピー。

1
2
3
# ローカルマシンで実行
# scp <引越し元サーバ>:<統合版サーバ パス>/worlds.zip <ローカルマシンの保存先>
$ scp minecraft_old:/home/ubuntu/worlds.zip ~/Downloads/

同じ感じでローカルマシンから CoNoHa VPS へ FTP, SCP などでコピー。

1
2
3
# ローカルマシンで実行
# scp <ローカルマシンの保存先> <引越し先サーバ>:<統合版サーバ パス>
$ scp ~/Downloads/worlds.zip minecraft:/opt/minecraft_be_server/

コピーしたファイルを展開。

1
2
3
# minecraft ユーザーで実行
$ cd /opt/minecraft_be_server/
$ unzip worlds.zip

server.properties を編集、利用するワールド名を変更

1
2
3
...
-level-name=Bedrock level
+level-name=Your World Name # 使用するワールド名を設定

あとは、VPS を再起動すれば引越し元で使っていたワールドに接続できるはず。

まとめ

  • Lightsail(最低スペック)だと、マイクラ統合版サーバの運用にはスペック不足
  • CoNoHa VPS だと低料金で運用可能
  • 紹介クーポン + キャンペーンのクーポンは両方受け取り可能
  • テンプレートが用意されているので、サーバ環境の構築や設定の必要なし
    • セキュリティ面を気にするなら、多少の設定変更した方が Good

関連記事