IDCFクラウドでMinecraftサーバを構築しよう！

Minecraftのマルチプレイをするにはマルチプレイのサーバをたてる必要があります。
IDCFクラウドで仮想マシンをたててマルチプレイサーバをたてようと思います！

#必要なもの
パソコン
Minecraft(https://minecraft.net/)


#アカウントを作成！
まだIDCFクラウドのアカウントを持っていない人は、ここから新規登録してください
https://console.idcfcloud.com/signup/
ポータルからIDCFクラウドの管理画面にログインしましょう〜
http://www.idcf.jp/portal/
![クラウドとデータセンターのIDCフロンティア.png](https://qiita-image-store.s3.amazonaws.com/0/85537/aca4f7ab-a9ef-10c2-2122-985003a90299.png)

#クーポンコードを入力!
右上[アカウント設定]▶︎[クーポンコード]でクーポンを登録できます！
![IDCFクラウド.png](https://qiita-image-store.s3.amazonaws.com/0/85537/b081eff8-b212-7c10-c16d-de399ddfccf4.png)

![IDCFクラウド 18.png](https://qiita-image-store.s3.amazonaws.com/0/85537/df3dd811-394f-dffc-bbdb-e5a74b99fb89.png)

誰でももらえるクーポンをコツコツためて、こんなにたまってました！わーい！
いま、ちょうど公式キャラクターのmorioを探してクーポンをもらうキャンペーンやってます
http://www.idcf.jp/cloud/cp/renew.html
ちなみにIDCFクラウドRDBのリリース記念のクーポンも配布中です
http://www.idcf.jp/cloud/rdb/

#VM(仮想マシン）作成！
最上部のメニューからクラウドコンピューティングの画面に戻ります
![IDCFクラウド 3.png](https://qiita-image-store.s3.amazonaws.com/0/85537/d489ba7b-1601-a2b2-7fca-be0aab1aea9d.png)

仮想マシン作成をクリックしてVMの設定をしていきます
![IDCFクラウド 4.png](https://qiita-image-store.s3.amazonaws.com/0/85537/0a149f2d-cbe3-097c-561e-4b4c9facb47f.png)


マシンタイプを選択します
Minecraftをさくさく動かしたいなら、highcpu.M4を選択しましょう！
最低でも、light.S2あれば動きます

:moneybag:highcpu.M4の利用料金は¥9,200/月とありますが、これは月の上限料金です。
基本的には1時間19円の従量ですが、9200円に達すると自動的に定額にきりかわります。
たとえば、月に24時間x30日起動していたとしても24時間x30日x19円＝13680円ではなく:tada:9200円:tada:になります。

![IDCFクラウド 5.png](https://qiita-image-store.s3.amazonaws.com/0/85537/053ed55f-9b61-d5dd-d1ec-593c692b1a13.png)

イメージを選択します
[おすすめテンプレート]の[CENTOS][CentOs 7.1 64-bit]を選択しましょう
![IDCFクラウド 6.png](https://qiita-image-store.s3.amazonaws.com/0/85537/09855034-ede7-2f10-cf79-252eb6055446.png)

ボリュームの追加です
今回は特に設定しません
![IDCFクラウド 7.png](https://qiita-image-store.s3.amazonaws.com/0/85537/865dfdd9-d88e-dcd9-fe6d-639646ad13da.png)

SSH Keyの作成or登録をします
自分の持っているSSH公開鍵を登録するか、新しく鍵のペアを作成すると秘密鍵がダウンロードされます
![IDCFクラウド 8.png](https://qiita-image-store.s3.amazonaws.com/0/85537/10466c78-c56f-a98b-76f7-ec1a80e5529f.png)

仮想マシンの台数を選択できます。1台
![IDCFクラウド 9.png](https://qiita-image-store.s3.amazonaws.com/0/85537/4f90a96f-7ea0-3fcc-7762-26efb99d493f.png)

ネットワークインターフェース
とくに設定しなくて大丈夫です
![IDCFクラウド 11.png](https://qiita-image-store.s3.amazonaws.com/0/85537/500faeaa-df7d-b302-db0e-6d30becaef2b.png)

詳細情報の設定
マシン名と、マシンたちを束ねるグループ名をつけられます
![IDCFクラウド.png](https://qiita-image-store.s3.amazonaws.com/0/85537/970afcc7-c00a-f5eb-f10f-0f0acaf7f114.png)

設定を確認したらVM作成をクリック！!

![IDCFクラウド 3.png](https://qiita-image-store.s3.amazonaws.com/0/85537/defa70a4-0ed4-ba18-e409-6a2ba7822965.png)


#IPアドレスの設定
ssh接続のための22番ポートと、Minecraftサーバに接続する25565番ポートを解放するため、IPアドレスの設定をします

左側のメニューでIPアドレスを選択し、名前の項目をクリックします
![IDCFクラウド 14.png](https://qiita-image-store.s3.amazonaws.com/0/85537/7f4d40cc-86c6-f0dd-b1f4-36db0bee639b.png)

ファイアウォールの設定をします
![ファイアウォールの設定](https://qiita-image-store.s3.amazonaws.com/0/85537/f3d4345f-7146-c079-689f-2e59f9ec04fb.png)

ポートフォワードの設定をします
![IDCFクラウド 16.png](https://qiita-image-store.s3.amazonaws.com/0/85537/71569d87-c933-7052-e720-b9fc6e5f48f9.png)

準備が整いました〜！
ここからはVMにssh接続していよいよマルチサーバをたてていきますシュ〜〜〜:bomb::boom: 

#JVMの構築
Minecraftのサーバは、JVM(Java Virtual Machine)というJavaのプログラムを実行できる環境で動きます
まずはその実行環境を構築します
OpenJDKというJavaのOSSをインストールしたいと思います

自分の:computer:でTerminalやtera termを開きます
\#や$が先頭についた行がコマンドです
yumでopenjdkをインストールします

```
# yum search openjdk

読み込んだプラグイン:fastestmirror, remove-with-leaves, show-leaves
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
============================================== N/S matched: openjdk ==============================================
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation

  Name and summary matches only, use "search all" for everything.
```

ダウンロードできるopenjdkの情報を確認できました。
実際にインストールしていきます

```
# yum -y install java-1.8.0-openjdk
（いろいろインストールされる）
# yum -y install java-1.8.0-openjdk-devel
（いろいろインストールされる）
# java -version
openjdk version "1.8.0_51"
OpenJDK Runtime Environment (build 1.8.0_51-b16)
OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)
```

java -versionでバージョンの情報がでればjavaのインストールは完了です

#Minecraftユーザを作る

```
# adduser minecraft
# passwd minecraft
（指示にしたがってパスワードを作る）
# su - minecraft
$ mkdir minecraft
$ cd minecraft
$ wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.8/minecraft_server.1.8.8.jar
$ cp -p minecraft_server.1.8.8.jar minecraft_server.jar
```
wgetで取得した最新バージョンのMinecraft serverのjarファイルのURLの確認方法は後述します
cpコマンドでminecraft_server.1.8.8.jarをコピーして、minecraft_server.jarという名前をつけます
今後はminecraft_server.jarを使って、minecraft_server.1.8.8.jarのほうはバックアップとしてそのまま保存しておきます

#minecraft_server初回起動
以下のコマンドでminecraft_serverを初回起動します

```
$ java -Xms1024M -Xmx1024M -jar minecraft_server.jar
 [Server thread/INFO]: Starting minecraft server version 1.8.8
 [Server thread/INFO]: Loading properties
 [Server thread/WARN]: server.properties does not exist
 [Server thread/INFO]: Generating new properties file
 [Server thread/WARN]: Failed to load eula.txt
 [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
 [Server thread/INFO]: Stopping server
　[Server Shutdown Thread/INFO]: Stopping server
```
こんな感じで必ず失敗します
EULA(使用許諾契約)に同意する必要があると言っています
こちらhttps://account.mojang.com/documents/minecraft_eula に目を通しましょう :eyes: 
確認がおわったら、eula.txtを編集します

```
$ 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).
#Thu Aug 27 07:07:15 JST 2015
eula=false
```
三行目の　eula=false　を　eula=true に書き換えます

```
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Thu Aug 27 07:07:15 JST 2015
eula=true
```
ファイルを上書きして閉じます

#いよいよ起動
以下のコマンドでもう一度serverを起動しましょう

```
$ java -Xms1024M -Xmx1024M -jar minecraft_server.jar
```


```[Server thread/INFO]: Done!```と表示されたら、うまくいった印です！:tada:

#MinecraftからMultiServerにアクセス!
Minecraftにログインしてマルチプレイを選択します
![Minecraft_1_8_8.png](https://qiita-image-store.s3.amazonaws.com/0/85537/3c00169e-cbdc-b695-f81f-58e620c238bc.png)
[サーバーの追加]を選択して、「サーバー
アドレス」欄に仮想マシンのIPアドレスを入力します
![Minecraft_1_8_8.png](https://qiita-image-store.s3.amazonaws.com/0/85537/9263e9b2-676a-8fbc-e3ac-351a32e17b97.png)
サーバが追加されました〜！！！
![Minecraft_1_8_8.png](https://qiita-image-store.s3.amazonaws.com/0/85537/63d2ef9e-ad17-c892-8680-88399d7bae0f.png)
やったああ！！！！！


minecraft_serverを止めるときは、Ctrl + C　か、```stop```と入力します

#Minecraftサーバの最新版
公式サイトにアクセスしてログインします
https://minecraft.net/
![Minecraft.png](https://qiita-image-store.s3.amazonaws.com/0/85537/a8253eb8-cbd0-97e1-378a-010af8d7f304.png)
[Download]をクリックして
![Minecraft.png](https://qiita-image-store.s3.amazonaws.com/0/85537/086ec581-ec26-6371-284f-c9ae112149a0.png)
Multiplayer Serverの欄に最新版があります
![Minecraft.png](https://qiita-image-store.s3.amazonaws.com/0/85537/875bd1eb-319c-1e88-d100-e7e06f4cc3e5.png)

#次にやりたいこと
- 仮想マシンを起動したら勝手にマイクラのサーバが起動するスクリプトを書きたいです！
- 木を1発で伐採できるMODをいれたい！