ConoHaでマイクラ鯖を立てるには

# 追記その２ (2018-12-28)
現在はconoha公式のminecraftイメージが利用できます。

イメージタイプのアプリケーションカテゴリの中にあります。
1GB以上じゃないと選択できません。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/126305/bbbf316f-d8e5-d978-d11d-d24b03d5da9e.png)

## 注意
- minecraftサーバーのバージョンが選べません
  - conohaが用意しているバージョンは一つだけです
  - バージョンは最新のものに追従していると思われます
- インスタンスを起動するとminecraftサーバーも勝手に起動します
  - 起動コマンドがsystemdにサービスとして登録されているようです
  - 確認したところ設定ファイルは `/etc/systemd/system/minecraft-server.service` にありました
- minecraftサーバーのバージョン変更が面倒
  - minecraftサーバーのファイル群は `/opt/minecraft_server/配下` にあるので、サーバーのjarファイルを入れ替えればバージョン変更はできます
  - ただし、jarのファイル名が変わるようならsystemdの設定ファイルを修正する必要があります

一時的に遊べるサーバーがほしいとかであれば十分使えそうですね。
現場からは以上です。

#はじめに
マインクラフトでマルチプレイをするときの一番大きなハードルとなるサーバー構築ですが、安価なVPS（仮想専用サーバー）でも負荷をかけなければ十分実用に耐えます（体験者は語る）。
公式が出している[レルムズ（Realms）](http://minecraft-ja.gamepedia.com/Realms)が簡単で手っ取り早くマルチワールドを作成する近道ですが、それじゃあ面白くないよという方、１からサーバーを構築してみませんか？
...といっても物理的なところからはやりませんが。

#なぜVPSか
レルムズは確かに楽にマルチワールドを作成できるのですが、プラグインが入れられないなど細かいカスタマイズをすることができません。
またレルムズもVPSを使わない場合、専用サーバーを借りるor自宅サーバーを構築する、の二択ですが初期投資や電気代を考えるとあまりお勧めできません。（もちろん高負荷のサーバーを建てる場合は必須なのですが...）
最近は低価格でVPSを借りることのできるサービスも多くあり、利用しない手はありません！
今回GMOのVPSである[ConoHa](https://www.conoha.jp/conoha/)を紹介します。

#[ConoHa](https://www.conoha.jp/conoha/)を勧める理由
<img width="247" alt="スクリーンショット 2016-05-20 4.25.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/126305/295bfd6a-3228-2cdb-3884-9cf5ef4f8570.png">


- 安価であること
- スペックを切り替えれる
- ~~キャラクターが可愛い~~

1時間単位の課金で、月額でいうと900円から。
~~使用しない間は停止しておくことができ、その間の課金は発生しません。~~
→停止している間も料金は発生するようです。すみませんorz
また、アクセス数が増える（イベント開催など）時はそれに応じてスペックを上げることができ、一般的な固定スペックのものと比べ安く済ませることができます。

#サーバーの設定
サーバーの（物理的な）設定はコンパネ上で行うことができます。
##サーバーの追加
![スクリーンショット 2016-05-20 3.09.18.png](https://qiita-image-store.s3.amazonaws.com/0/126305/367a8801-d9dd-9271-f45e-4888a6747c2d.png)

サーバー追加のボタンから新しいサーバーを追加してみましょう。（気軽にテスト用のサーバーを追加できるのも良いところです）

![スクリーンショット 2016-05-20 3.12.21.png](https://qiita-image-store.s3.amazonaws.com/0/126305/aa5d4129-1c25-ad82-0dc9-a62503984f5d.png)

細かい設定はせずに今回は初期設定のままやっていきましょう。
追加をクリック！

![スクリーンショット 2016-05-20 3.15.18.png](https://qiita-image-store.s3.amazonaws.com/0/126305/c443d9dd-6fa7-d070-e53e-21f2012cb232.png)

サーバーが追加されました。
これだけです。これでSSHからサーバーの設定ができるようになりました。
以降の設定はSSH上から行うことになります。

![スクリーンショット 2016-05-20 3.22.16.png](https://qiita-image-store.s3.amazonaws.com/0/126305/66dacd9c-3f9e-13d7-7487-7e01774afa48.png)

サーバーのIPアドレスからSSHから先ほどサーバーを追加した際のパスワードでrootからログインします。

```
bash-3.2$ ssh root@163.44.171.155
The authenticity of host '163.44.171.155 (163.44.171.155)' can't be established.
RSA key fingerprint is bc:22:fc:e3:fa:e4:8f:e2:15:66:4c:e4:8d:99:e1:34.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '163.44.171.155' (RSA) to the list of known hosts.
root@163.44.171.155's password: 
[root@163-44-171-155 ~]# 
```

何か聞かれますがyesを打ち込み、パスワードでログインします。

##JAVAのインストール
前までの手順でサーバーを建てることはできましたが、基本的なアプリケーションだけが入ったプレーンな状態なので、マイクラサーバーを動かすためにjavaを入れましょう。

```
[root@163-44-171-155 ~]# yum  -y install java-1.8.0-openjdk.x86_64
~中略~
完了しました!
[root@163-44-171-155 ~]# 
```

これでjavaが入りました。
##minecraft serverのダウンロード
ダウンロードファイルは[公式ページ](https://minecraft.net/ja/download/)にリンクしてあります。
リンクはページの一番下にあります。
サーバーのjarファイルをダウンロードしましょう。

![スクリーンショット 2016-05-20 3.41.09.png](https://qiita-image-store.s3.amazonaws.com/0/126305/49b3ce81-6fe5-dfb8-ccff-c605648b65d9.png)

リンクをコピーしてwgetしましょう。

```
[root@163-44-171-155 ~]# wget https://s3.amazonaws.com/Minecraft.Download/versions/1.9.4/minecraft_server.1.9.4.jar
```

minecraftフォルダを作成してダウンロードしたファイルをそこへ移動し、起動します。
今回メモリ1GBプランなので余裕を考えて512MBを割り当てます（-Xmx512M -Xms512M）

```
[root@163-44-171-155 ~]# mkdir minecraft
[root@163-44-171-155 ~]# mv minecraft_server.1.9.4.jar minecraft/
[root@163-44-171-155 ~]# cd minecraft/
[root@163-44-171-155 minecraft]# java -Xmx512M -Xms512M -jar minecraft_server.1.9.4.jar
[03:50:02] [Server thread/INFO]: Starting minecraft server version 1.9.4
[03:50:02] [Server thread/WARN]: To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
[03:50:02] [Server thread/INFO]: Loading properties
[03:50:02] [Server thread/WARN]: server.properties does not exist
[03:50:02] [Server thread/INFO]: Generating new properties file
[03:50:02] [Server thread/WARN]: Failed to load eula.txt
[03:50:02] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[03:50:02] [Server thread/INFO]: Stopping server
[03:50:02] [Server Shutdown Thread/INFO]: Stopping server
[root@163-44-171-155 minecraft]#
```

起動すると同フォルダ内にeula.txtファイルが作成されるので、
eula=falseをeula=trueにしましょう。

```
[root@163-44-171-155 minecraft]# vi eula.txt

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Fri May 20 03:50:02 JST 2016
eula=true
```

こうすることで、何かに同意したことになり、次回からサーバーが起動できるようになります。
儀式みたいなものなので気にしないでください。

##ファイアウォールの設定
このままではマイクラサーバーを起動しても外からアクセスすることができないので、ファイアウォールの設定を変えましょう。デフォルトのポートは25565番なのでここを解放します。

```
[root@163-44-171-155 minecraft]# firewall-cmd --permanent --add-port=25565/tcp
success
[root@163-44-171-155 minecraft]# firewall-cmd --reload
success
```

これで外からアクセスすることができるようになりました。

##起動とアクセス確認
基本的な設定はここまでです。あとは起動して、ワールドに入れるか確認してみましょう。

```
[root@163-44-171-155 minecraft]# java -Xmx512M -Xms512M -jar minecraft_server.1.9.4.jar nogui
~中略~
[04:05:20] [Server thread/INFO]: Preparing spawn area: 57%
[04:05:21] [Server thread/INFO]: Preparing spawn area: 70%
[04:05:22] [Server thread/INFO]: Preparing spawn area: 84%
[04:05:23] [Server thread/INFO]: Done (8.814s)! For help, type "help" or "?"
```

無事起動できました。
マイクラのアプリからアクセスしてみましょう。
サーバーアドレスにIPアドレスをそのまま入れれば入れます。

<img width="849" alt="スクリーンショット 2016-05-20 4.08.31.png" src="https://qiita-image-store.s3.amazonaws.com/0/126305/9690919f-32c2-e1fe-977a-a4abc65da886.png">

![2016-05-20_04.09.31.png](https://qiita-image-store.s3.amazonaws.com/0/126305/04806b26-6c11-fd58-9dab-053668ef1b6d.png)

無事アクセスできました。
どうでした？簡単だったでしょう？

##サーバーの停止
マイクラサーバーはstopコマンドで停止できます。

```
[04:20:28] [Server thread/INFO]: Done (1.753s)! For help, type "help" or "?"
stop
[04:20:50] [Server thread/INFO]: Stopping the server
[04:20:50] [Server thread/INFO]: Stopping server
[04:20:50] [Server thread/INFO]: Saving players
[04:20:50] [Server thread/INFO]: Saving worlds
[04:20:50] [Server thread/INFO]: Saving chunks for level 'world'/Overworld
[04:20:50] [Server thread/INFO]: Saving chunks for level 'world'/Nether
[04:20:50] [Server thread/INFO]: Saving chunks for level 'world'/The End
[root@163-44-171-155 minecraft]# 
```

またVPS自身もコンパネ上で停止できます。
~~使用しない間はこまめに停止することで料金の節約になります。~~
→料金は発生しています

![スクリーンショット 2016-05-20 4.23.10.png](https://qiita-image-store.s3.amazonaws.com/0/126305/376300e8-def2-b2a0-09c6-753af3d59157.png)


#まとめ
ちょっと敷居の高いマルチサーバー構築ですが、手順さえ知っていれば何てことはありません。
ぜひ挑戦してみてください。

今回紹介しなかった細かい設定等はそのうち紹介するかもしれません。

##参考
[さくらのVPSでminecraftマルチプレイヤサーバを構築 OSインストール | server-memo.net](http://www.server-memo.net/minecraft/mc-install/minecraftserver-1.html)

##追記
停止している間の料金について指摘をいただきました。
停止している間も料金は発生するようです。間違った情報を記載したことをお詫び申し上げます。
paselaさんありがとうございます。

**イメージ保存**をしたあとにインスタンスを削除すれば、課金を止めることは可能なようですが、復旧したあとでIPアドレスが変わってしまうことや、保存容量の上限(50GB)に注意をする必要があります。
手順はressさんの書かれている通りです。ありがとうございます。

>1. 使用後サーバを停止
>2. サーバーの電源を消す
>3. バックアップをとる
>4. サーバーを削除

復旧はサーバーの追加で`2.イメージ`の`イメージタイプ`から`保存イメージ`で保存したイメージを選択してください。