フェイス・ソリューション・テクノロジーズ株式会社 IS 本部 OS ユニットの Saki@猫好き です。AWS 活用していますか?
今日は、会社のアカウントに Minecraft サーバーを構築してみたいと思います。ブログに書くから、と言ったら稟議が通りました。理解の広い会社です。
はじめに
今回は、Java 17 をインストールしますので、Minecraft のバージョン 1.18 ~ に対応している(未検証)、はずです。2022 年 9 月現在で最新の 1.19.2 で Minecraft を遊べるようにしてみようと思います。
また、今回は、バニラサーバーを構築します。Mod の利用については、次回以降の予定です。
EC2 インスタンスの立ち上げ
1. マネジメントコンソール右上が「東京」になっていることを確認してください。

2. 上部の検索ボックスに「ec2」と入力して、表示された「EC2」をクリックします。

3. 「インスタンスを起動」を選択します。

4. わかりやすい名前をつけておきましょう。私は、「minecraft-server」としました。

5. 少し下がって、先に「インスタンスタイプ」を選択します。

6. 今回は、「t3a.medium」にします。検索窓に、「t3a」と入力して、「t3a.medium」を選択してください。
Minecraft は、2 コア以上の CPU と 4 GB 以上のメモリが推奨されています。AWS で推奨スペック以上で最も安価なインスタンスが、「t3a.medium」となります。ただし、大人数で遊んだり、サーバーに負荷がかかる MOD を導入したりしたい方は、更に大きいインスタンスを選択する必要があります。
AWS は従量課金制です。サーバーを動かしている間、課金が発生します。今回選択した、t3a.medium インスタンスですと、1 か月で 35.77 USD かかります。また、World の保存のための領域の料金を加算して、約 40 USD です。利用している間だけインスタンスを起動して、利用していない間はインスタンスを停止させる、といった運用をすることで、安価に利用することができます。
今後、いかにお金をかけずに利用していくか、について考えながら、Minecraft サーバーに関する記事をアップしていこうと思いますので、ご期待ください。

7. サーバーに接続するためのキーペアを作成します。「新しいキーペアの作成」を選択します。

8. キーペア名はわかりやすいものをつけて、「キーペアを作成」を選択します。

9. Minecraft サーバーに外から接続するための設定を行います。ネットワーク設定の「編集」を選択します。

10. セキュリティグループ名とその説明の欄に、わかりやすい名前を、説明を入力してください。

11. 下部の「セキュリティグループの追加」を選択し、画像の通り設定を行います。

12. World データなどを保存する領域を設定します。今回は「20(GiB)」としました。
無料利用枠対象のお客様、主に初めて AWS を利用されるお客様は、「30(GiB)」までは無料です。ただし、無料利用枠対象外のお客様、無料利用枠対象だけれど 30(GiB)を超えて利用されるお客様は、インスタンスを停止させている間も、1(GiB)あたり 0.12 USD がかかりますので、ご注意ください。
後で増やすことは可能ですので、初期値の 8(GiB)に設定しても問題ありません。
※逆に、減らすことは大変な労力が必要となります。

13. 「インスタンスを起動」を選択します。

14. 画像のように表示されたら成功です。「すべてのインスタンスを表示」を選択します。

15. インスタンスの一覧に、「minecraft-server」と名前のついたインスタンスが確認できると思います。

サーバーでの作業
1. インスタンスの一覧から、Minecraft のために立ち上げたインスタンスにチェックを入れます。赤く塗られたところに書かれている数字をメモしてください。

2. SSH 接続ツール(TeraTerm 等)を利用して、さきほど調べた IP アドレスに SSH 接続します。

3. インスタンスに、以下のコマンドを入力していきます。
インスタンスにアップデートをかけて、最新の状態にします。
$ sudo yum update -y
Java 17 をインストールするために、corretto.aws を利用します。
$ sudo rpm --import https://yum.corretto.aws/corretto.key
$ sudo curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
Java 17 をインストールします。
$ sudo yum install -y java-17-amazon-corretto-devel
Minecraft 用のディレクトリを作成します。
$ mkdir minecraft
作成した Minecraft 用のディレクトリに移動します。
$ cd minecraft/
4. minecraft インストールファイルのパスを取得しましょう。
以下のリンクのページを開きます。
必要なバージョンを選択し「Download」をクリックします。

「Download Server Jar」を右クリックし、リンクのアドレスをコピーします。

5. 引き続き SSH 接続でコマンドを入力していきます。
$ wget 【4. で取得したアドレスを貼り付ける】
いよいよ、Minecraft サーバーを立ち上げます。
$ java -jar -Xms2048M -Xmx2048M server.jar nogui
しばらくお待ちください……
しばらくお待ちください……
初回は必ずエラーで停止します。
6. ソフトウェア利用許諾契約を承諾します。
$ vim eula.txt
次のような画面となります。ここの「false」を「true」に変える必要があります。

- キーボードの「i」を押す(Insert モード)
- 「false」を「true」に書き換える

- 「Esc」を押す
- 「:wq」を入力する
- 「Enter」を押す
7. Minecraft サーバーを起動します。
$ java -jar -Xms2048M -Xmx2048M server.jar nogui

早速、接続してみよう
1. Minecraft をいつも通りに立ち上げて、「Multiplayer」を選択します。

2. 「Add Server」を選択します。

3. Server Address に、先ほど調べたインスタンスの IP アドレスを入力します。

4. 赤枠で囲ったところをクリックします。

5. ようこそ、Minecraft の世界へ!

ゲームを終了する
AWS EC2 インスタンスは、動かしている間だけお金がかかります。ですから、ゲームで遊んだ後は、マイクラサーバーを停止しておきます。
1. SSH の画面で、「/stop」を入力します。

2. 「exit」を入力します。

3. マイクラサーバーにチェックを入れて、インスタンスの状態から「インスタンスを停止」を選択します。

4. インスタンスが停止されました。

次回起動時の手順
1. マイクラサーバーにチェックを入れて、インスタンスの状態から「インスタンスを開始」を選択します。
起動したら、「パブリック IP アドレス」を確認しましょう。

2. SSH 接続をして、以下のコマンドを入力します。
$ cd minecraft/
$ java -jar -Xms2048M -Xmx2048M server.jar nogui
3. Minecraft を立ち上げます。マルチプレイの画面で編集をクリックします。

4. 先ほど確認したパブリック IP アドレスを入力し、完了をクリックします。

課題
1. 起動時にコマンドを入力しなければならない
近々、コマンドを入力しなくても良くなるような記事を書きます。
2. 立ち上げるたびに IP アドレスが変わってしまう
IP アドレスを固定する方法
※若干、料金が発生する可能性があります
ドメインでサーバーに接続する方法
その方法については、そのうち、記事を書きます。
3. インスタンスを停止させるのを忘れたら、思ったよりもお金がかかってしまった
自動でインスタンスを停止させる方法
その方法については、そのうち、記事を書きます。
最後に
いかがでしたでしょうか? 思ったよりも簡単に Minecraft のバニラサーバーが構築できたのではないでしょうか。
本シリーズ、AWS を活用して Minecraft で遊ぶために、私自身、学習を続けていこうと思います。
引き続き、よろしくお願いいたします!
コメント