【AWS】 AWS+マインクラフトサーバ建て方

#0.はじめに
すごく、走り書きしただけですので誤字脱字等ありましたら
申し訳ありません。

#１．AWS
Amazon Web Servicesの略で、最近hotなクラウドサービスのこと。
今回使うものは、AWS内にあるEC2というサービス。

#２．必要なもの
・クレジットカード類
登録時に必要

#３．費用
・くっそ重いmodを入れて負荷をそんなにかけないのなら一か月1000円いかないかな。

#４．AWSの登録
以下、リンクからコンソールへサインインする。
リンク：https://aws.amazon.com/jp/

#５．AWS EC2へ移動
以下、リンクからEC2へ移動する。
リンク：https://console.aws.amazon.com/ec2/

![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/a2507362-1ec6-44a2-79c2-ebd499ca7a37.jpeg)

#6. キーペアの作成
こいつを作成しておかないと、あとあとsshで入れなくなるので注意。

●方法
左メニューの「キーペア」→
![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/bc6777b7-4ffa-31da-0ad2-061f8af4cd9c.jpeg)

「キーペアの作成」
![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/3afdab7a-462a-01eb-aede-4c645b47cabf.jpeg)
![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/673bc521-e74b-ad93-3c6a-5582055f7e98.jpeg)

名前は、任意のものを作成。(まあ、「minecraft」でいいんじゃないんかな)
作成したときに、秘密鍵っていうものがダウンロードされるので
忘れないところに保存しておくこと。
![5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/254890b5-bec9-2041-5e5b-ebf4bfec2629.jpeg)

●補足
※このときに、ダウンロードしたものがブラウザー毎に
形式が違う場合があるようなのですが、「ファイル名.pem」となっていることを確認してください。
「ファイル名.txt」となっている場合は名前変更で.pemへ変更してください。

※ファイル名の後の形式が出ていないよ～っていう人は、
エクスプローラーを開いて上のタブにある「表示」→「ファイル名拡張子」を有効にする。

#7. インスタンスの作成
インスタンスとは..っていうのは別のわかりやすいサイト等があると思うので、
探してみてほしいですがここでは「サーバ」とでも思っていてください。

●方法
左メニューの「インスタンス」→
![6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/6f810c87-ce0c-226a-56e3-e0393f1cd6fc.jpeg)

「インスタンスの作成」→
![7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/38cf8404-8125-32e3-35c4-30f88d20748d.jpeg)

「Amazon Linux AMI ...」を選択→
![8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/1e4e8a86-202e-0a0b-9834-193a276be2a8.jpeg)

「t2.micro」を選択(まあ、お好み)→「次の手順:インスタンスの詳細の設定」→
![9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/fb1de1b1-9955-4392-2123-1470c8262ede.jpeg)

「自動割り当てパブリックIPを有効化」→次の手順:タグの追加→
![10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/21a9167b-4488-6528-cbc8-3d0245f8c0d6.jpeg)

次の手順へ→
![11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/ef67fec8-cd78-fe6d-9a4e-777bd553e451.jpeg)

値に「minecraft」を入力→次の手順:セキュリティグループの設定→
![12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/f17b68a3-a14a-a287-cc15-1aeb2337aeeb.jpeg)
![13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/ee957d89-850e-cade-0180-0441fd45535b.jpeg)

新しいセキュリティグループを作成します。
デフォルトのままだと、SSHで入れなかったらマインクラフトへ
誰も入れない状態になっていると思いますのでポートを開けたりの設定をします。

「ルールの設定」→確認と作成→
![14.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/1b68ff7f-ca93-0a9d-99e5-7b1d6315a895.jpeg)

→起動
![15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/4ed12f8a-1edb-ad80-8aa0-0c50d80842ad.jpeg)

→インスタンスの作成
![16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/b3b3e248-f702-9bd5-360e-7b7a0323b203.jpeg)

#8. インスタンスへIPアドレス割り当て
作成した、インスタンスを起動すると自動でIPv4を割り当ててくれますが今回はminecraftサーバを立てるため
いちいちIPv4が変更されると面倒くさいので、固定IPv4を割り当てます。

●方法
「Elastic IP]→

![20.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/beec4335-30f4-ab92-bb07-7092a86ea4a9.jpeg)

「新しいアドレスの割り当て」→

![21.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/d250ac52-c1d4-5196-dbca-5c2f0c6ef4a6.jpeg)

「Amazonプール」→「割り当て」→「閉じる」→

![22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/d91ff97c-cfa4-a3f0-3263-7ef1c463c005.jpeg)

作成したものにチャックを入れ、「アクション」→「アドレスの関連付け」→

![23.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/d2e6b3a0-ede2-c539-7585-4d2833b46fa9.jpeg)

リソースタイプ:インスタンス
インスタンス:作成したインスタンスを選択
プライベートIP:作成したものを選択

「関連付け」→

![24.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/655ad0fe-e1e0-bbff-cc86-b0648ea55d77.jpeg)

#9. サーバーへログイン

今回は、Tera Termからサーバーへログインする方法を記載します。

●方法
ホスト(T) : AWSインスタンスのIPv4パブリックIP → OK→
![17.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/819c9789-df25-0874-a9f9-7a76389491a0.jpeg)

ユーザ名(N) : ec2-user
RSA/DSA/ECDSA/ED25519鍵を使う : 先ほど保存した秘密鍵を選択(.pemのやつ)→OK
![18.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/96d9dd3f-701c-f46f-fab1-e9255eb68edb.jpeg)

成功すると以下のように出ることを確認。
![19.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62024/916b17ab-70b5-3a49-37d5-5a9d6d06b841.jpeg)


#10. minecraftのインストール

・javaのインストール
Minecraftマルチサーバーを動作させるために使うのでjavaをインストールする。
```$ sudo su```

```# yum install java-1.8.0-openjdk```
→yで実行

```# java -version```
java versionで1.8が表示されることを確認、されない場合以下を実行する。

```# alternatives --config java```
→ 1.8.0のものの数字を選択する。

```# java -version```
java versionが1.8担っていることを確認する。

・screenインストール
このscreenを使用して、仮想端末上でMinecraftマルチサーバーを動作させるのでインストールする。
```# sudo yum -y install screen```

・Minecraftインストールディレクトリ作成
Minecraftマルチサーバをインストールするディレクトリを作成する。
お好みで作成、今回は ~/minecraftに作成する。

```# mkdir ~/minecraft```

・Minecraftマルチサーバーインストール

```# wget https://s3.amazonaws.com/Minecraft.Download/versions/1.12.2/minecraft_server.1.12.2.jar```

・Minecraftマルチサーバーを起動

```# java -Xms1024M -Xmx1024M -jar minecraft_server.1.12.2.jar nogui```

起動後、規約を承認するため以下を変更する。

```# vi eula.txt```

変更前:eula=false
変更後:eula=true

再度起動する。

```# java -Xms1024M -Xmx1024M -jar minecraft_server.1.12.2.jar nogui```

ここまでで、Minecraftマルチサーバーバニラ版は作成完了です。


ここからはmod関連になります。

#11.forge導入

・installerをDL
```# wget https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.23.5.2838/forge-1.12.2-14.23.5.2838-installer.jar```

・universalをDL
```# wget https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.23.5.2838/forge-1.12.2-14.23.5.2838-universal.jar```

・forgeサーバをインストール
```# java -jar ./forge-1.12.2-14.23.5.2838-installer.jar nogui --installServer```

・forgeサーバを起動
```# java -Xms1024M -Xmx1024M -jar forge-1.12.2-14.23.5.2838-universal.jar nogui```

#おまけ
作成したMinecraftサーバのフォルダー内一覧を以下に記載します。

```
[root@ip-172-31-41-33 minecraft]# pwd
/root/minecraft
[root@ip-172-31-41-33 minecraft]# ls -ls
total 39152
    4 -rw-r--r-- 1 root root        2 Aug 13 13:40 banned-ips.json
    4 -rw-r--r-- 1 root root        2 Aug 13 13:40 banned-players.json
    4 drwxr-xr-x 2 root root     4096 Aug 13 13:40 config
    4 -rw-r--r-- 1 root root      180 Aug 12 16:19 eula.txt
 4800 -rw-r--r-- 1 root root  4913086 Oct  4  2018 forge-1.12.2-14.23.5.2768-installer.jar
   12 -rw-r--r-- 1 root root     8921 Aug 13 13:35 forge-1.12.2-14.23.5.2768-installer.jar.log
 4776 -rw-r--r-- 1 root root  4888981 Aug 13 13:35 forge-1.12.2-14.23.5.2768-universal.jar
    4 drwxr-xr-x 7 root root     4096 Aug 13 13:35 libraries
    4 drwxr-xr-x 2 root root     4096 Aug 13 13:40 logs
29516 -rw-r--r-- 1 root root 30222121 Apr  2  2018 minecraft_server.1.12.2.jar
    4 drwxr-xr-x 2 root root     4096 Aug 13 13:40 mods
    4 -rw-r--r-- 1 root root        2 Aug 13 13:40 ops.json
    4 -rw-r--r-- 1 root root      753 Aug 13 13:40 server.properties
    4 -rw-r--r-- 1 root root      107 Aug 13 13:42 usercache.json
    4 -rw-r--r-- 1 root root        2 Aug 12 16:19 whitelist.json
    4 drwxr-xr-x 9 root root     4096 Aug 13 13:42 world
[root@ip-172-31-41-33 minecraft]#
```

#■参考リンク
・https://qiita.com/ReyADayer/items/551755bf22698541e30c
・https://minecraft.server-memo.net/forge_server_install/
・https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/putty.html
・https://aws.amazon.com/jp/premiumsupport/knowledge-center/set-change-root-linux/