はじめに

Minecraft 統合版サーバ(Bedrock Edition)を AWS Lightsail に構築する方法。

OS は Ubuntu 18.04。走り書きのメモレベルなので、細かい箇所は各自で要確認。

Lightsail に構築した統合版サーバでマルチプレイ(3人)した結果、Lightsail ではマイクラ統合版サーバ運用には耐えられない(向いてない)ということがわかったので、CoNoHa VPS に移行した。
詳細は 【月額 880円〜】CoNoHa VPS でマインクラフト統合版サーバ【クーポン有り】 を参照

この記事が参考になった方
ここここからチャージや購入してくれると嬉しいです(ブログ主へのプレゼントではなく、ご自身へのチャージ)
欲しいもの / Wish list

目次

  1. はじめに
  2. 環境・条件
    1. ローカルマシン(Mac)
    2. Lightsail(Ubuntu)
  3. 前置き
    1. 月額費用
  4. 構築手順
    1. インスタンス(仮想マシン, VPS)の作成
    2. 静的 IP の割当
    3. SSH のコンフィグ変更
    4. Lightsail(Ubutnu) の設定
      1. 必要になるソフトウェアのインストール
      2. Minecraft 用サーバーソフトウェアダウンロード
      3. OpenSSL のバージョンアップ
      4. 起動確認
      5. マインクラフト用ポートの開放
      6. サーバのセキュリティ周りの変更
  5. 動作確認
  6. その他・メモ
    1. AWH(agames)
    2. AWS 公式手順
    3. PS4 版マインクラフトで統合版サーバへの接続
    4. PS4 版マインクラフトで統合版サーバへの接続
  7. 参考文献

環境・条件

ローカルマシン(Mac)

Lightsail への接続や、キーペアの作成などの作業用

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

Lightsail(Ubuntu)

Minecraft 統合版サーバ用

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

前置き

月額費用

最低スペックだと月額 $3.50(≒ 374.26 円 2020/05/03時点) で構築できる。

1段階スペックアップしても500円強ぐらい。

参考: 料金表 - Lightsail

構築手順

AWS アカウントは作成済みという前提。未作成の人はググって作ってください。

インスタンス(仮想マシン, VPS)の作成

インスタンスの作成 で選択。

「Linux/Unix」「OS のみ」「Ubuntu 18.04 LTS」を選択。

「SSH キーペアマネージャー」に自分が使いたい SSH キーを登録、もしくは新規作成。

自分の環境ではローカルマシン(Mac)で ssh-keygen で生成したものを登録した。

1
2
$ ssh-keygen
# 省略

あとはインスタンスプランやインスタンス名を適宜変更して、「インスタンスの作成」をクリック。

静的 IP の割当

IP アドレスを固定するために、ネットワーキングタブから静的 IP を割当。

SSH のコンフィグ変更

簡単に SSH できるようにホストの ~/.ssh/config を編集

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

Host *
TCPKeepAlive yes
IdentitiesOnly yes
ServerAliveInterval 60
ServerAliveCountMax 10
StrictHostKeyChecking no
UseKeychain yes
AddKeysToAgent yes
Port 22

ssh で接続できるか確認

1
2
3
4
5
$ ssh minecraft
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1021-aws x86_64)
...
Last login: Sun May 1 09:00:00 2020 from 1.2.3.4
ubuntu@ip-172-1-2-3:~$

Lightsail(Ubutnu) の設定

ここからは Lightsail(Ubuntu) での作業

必要になるソフトウェアのインストール

OS のアップデート適用や、必要になるソフトのインストール

1
2
3
4
$ sudo apt -y update && \
sudo apt -y install zip unzip screen && \
sudo apt -y install make gcc && \
sudo apt -y install ufw

Minecraft 用サーバーソフトウェアダウンロード

以下コマンドを実行してダウンロード

1
$ wget --no-check-certificate https://minecraft.azureedge.net/bin-linux/bedrock-server-1.14.60.5.zip

バージョンアップされているかもしれないので、公式サイト でリンクを確認した方が良い。

ダウンロードできたら、unzip で展開

1
$ unzip bedrock-server-1.14.60.5.zip

OpenSSL のバージョンアップ

参考:

公式手順(前章で展開した中に入っている bedrock_server_how_to.html)では、この後すぐに起動コマンドになっているが、たぶん起動しないはず。

LD_LIBRARY_PATH=. ./bedrock_server を実行すると、以下のエラーになった。

1
2
$ LD_LIBRARY_PATH=. ./bedrock_server
./bedrock_server: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: version `OPENSSL_1_1_1' not found (required by ./libCrypto.so)

OpenSSL のバージョンを確認すると 1.1.0 になっている。

1
2
$ openssl version
OpenSSL 1.1.0g 2 Nov 2017

source - OpenSSLで現行のファイルを確認してダウンロード。

1
$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

展開してインストール。コマンド実行結果は長いので割愛。

1
2
3
4
5
6
7
8
9
10
$ tar -zxf openssl-1.1.1g.tar.gz
$ cd openssl-1.1.1g/
$ ./config
$ make
$ make test
$ sudo mv /usr/bin/openssl /usr/bin/openssl_1_1_0
$ sudo make install
$ sudo ln -s /usr/local/bin/openssl /usr/bin/openssl
$ sudo ldconfig
$ cd ..

インストール(バージョンアップ)できているか確認

1
2
$ openssl version
OpenSSL 1.1.1g 21 Apr 2020

起動確認

LD_LIBRARY_PATH=. ./bedrock_server を実行して、以下の表示が出れば正常に起動。

1
2
3
4
5
6
7
8
9
10
11
$ LD_LIBRARY_PATH=. ./bedrock_server
NO LOG FILE! - setting up server logging...
[2020-05-02 20:29:46 INFO] Starting Server
[2020-05-02 20:29:46 INFO] Version 1.14.60.5
[2020-05-02 20:29:46 INFO] Session ID 12345678-90ab-cdef-1234-567890abcdef
[2020-05-02 20:29:46 INFO] Level Name: Bedrock level
[2020-05-02 20:29:46 INFO] Game mode: 0 Survival
[2020-05-02 20:29:46 INFO] Difficulty: 2 NORMAL
[2020-05-02 20:29:46 INFO] opening worlds/Bedrock level/db
[2020-05-02 20:29:49 INFO] IPv4 supported, port: 19132
[2020-05-02 20:29:49 INFO] IPv6 supported, port: 19133

Ctrl + C」もしくは「stop」と打ち込んでいったん停止。

マインクラフト用ポートの開放

Lightsail のウェブコンソールのネットワーキングタブで、ファイアウォールの設定を変更。

TCP, UDP の 19132, 19133, 25565 を開放する

※厳密に検証してないので、開放不要なものもあるかも。右往左往してたどり着いた設定なので。。。

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

マインクラフトをやる上で必須ではないが、やっておいた方が安心な設定変更を実施。(なので飛ばしてもOK)

SSH のポート変更

22 番ポートはみんな知ってるので、他のポートに変更

1
$ sudo vi /etc/ssh/sshd_config
1
2
-#Port 22
+Port 54321 # 自分の好きなポート番号(32768~61000)を指定

変更したら sshd を再起動。(SSH セッションが切れるはず)

1
$ sudo service ssh restart

Lightsail のウェブコンソールのネットワーキングタブで、ファイアウォールの設定を変更。

  • SSH(TCP 22) を削除
  • カスタム(TCP 54321) を追加 ※sshd_config と同じ番号を指定

ローカルマシンの ~/.ssh/config を変更。

1
2
3
4
5
6
 Host minecraft
HostName 1.2.3.4
- Port 22
+ Port 54321
User ubuntu
IdentityFile ~/path/to/private_key

これで新しいポートで ssh できるようになっているはず

1
2
# ローカルマシンで実行
$ ssh minecraft
Ubuntu のファイアウォール設定

Lightsail 側でファイアウォール設定されているからたぶんやらなくても良いと思うけど、念のため設定しておく。

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
$ sudo ufw status
Status: inactive

# 有効化 & 設定
$ sudo ufw enable
$ sudo ufw allow 19132
$ sudo ufw allow 19133
$ sudo ufw allow 25565
$ sudo ufw allow 54321 # SSH 用のポート
$ sudo ufw default deny

# 設定確認
$ sudo ufw status
Status: active

To Action From
-- ------ ----
19132 ALLOW Anywhere
19133 ALLOW Anywhere
25565 ALLOW Anywhere
54321 ALLOW Anywhere
19132 (v6) ALLOW Anywhere (v6)
19133 (v6) ALLOW Anywhere (v6)
25565 (v6) ALLOW Anywhere (v6)
54321 (v6) ALLOW Anywhere (v6)

動作確認

公式のコマンドではなく、↓のコマンドで起動する。(SSH 切断しても継続して動作する)

参考: Minecraft Bedrock Dedicated Serverをscreenで立ち上げる - Qiita

1
$ LD_LIBRARY_PATH=. screen -dmS bds ./bedrock_server

あとは統合版クライアントで、接続先に Lightsail の IP、Port を指定すれば接続できるはず。

その他・メモ

AWH(agames)

以下の記事を読んで Agames の一週間試用プランを契約してみたが、統合版(iOS)からサーバに接続できなかった。

AWS 公式手順

AWS に公式手順が用意されているが、統合版(Bedrock)ではなくて Java 版の内容になっている。

PS4 版マインクラフトで統合版サーバへの接続

PS4 版のマインクラフトから、統合版サーバに接続する方法を以下記事にまとめた。

PS4 版マインクラフトで統合版サーバへの接続

冒頭にも書いたが、Lightsail に構築した統合版サーバでマルチプレイ(3人)した結果、Lightsail ではマイクラ統合版サーバ運用には耐えられない(向いてない)ということがわかったので、CoNoHa VPS に移行した。

参考文献

関連記事

この記事が参考になった方
ここここからチャージや購入してくれると嬉しいです(ブログ主へのプレゼントではなく、ご自身へのチャージ)
欲しいもの / Wish list