Minecraft サーバーを Amazon EC2 上に構築


 [Minecraft](http://www.minecraft.net)、楽しいですよね。
「Minecraft でマルチプレイをしたいけど、サーバーどうしよう…」という人向けに、
Amazon EC2 上に、簡単に Minecraft サーバーを立てる方法を紹介します。

## 前提知識
- 基本的な UNIX コマンドの知識

## Amazon EC2 とは
Amazon EC2 は、必要なスペックのサーバーを簡単に用意できるクラウドサービスです。サーバー（EC2 ではインスタンスと呼びます）の料金は、**稼働させた時間の分だけ**支払えばよいため、とても柔軟な使い方ができます。

例えば、マルチプレイで 100人入れるようなサーバーを自前で用意しようと思ったら大変ですが、EC2 であれば、「イベントの3時間の間だけハイスペックのインスタンスを動かす」なんてことも可能です！

http://aws.amazon.com/jp/ec2/instance-types/ に、EC2 で使用できるインスタンスの種類の一覧があります。
メモリ 613 MB のマイクロインスタンスから、メモリが 68.4GB もあるものまで、好きなものを選べます。

## Amazon EC2 に登録
まだアカウントを持っていない場合は、http://aws.amazon.com/jp/ec2/ からサインアップして下さい。登録にはクレジットカードが必要になります。

登録が済んだら、AWS Management Console の中の EC2 の画面を開いてください。 https://console.aws.amazon.com/ec2/ 

## Minecraft 用のインスタンスを起動
「Launch Instance」と書かれたボタンを押してください。すると「Create a New Instance」というウインドウが出るので、「Classic Wizard」にチェックが付いている状態で「Continue」を押します。

AMI（インスタンスのテンプレート）を選ぶ画面になるので、「Community AMIs」というタブを選択して、「minecraft」で検索をかけてください。
AMI ID が「ami-fe0abaff」となっているものが出るかと思うので、これを「Select」してください。

次の画面では、「Instance Type:」の中から起動したいインスタンスの種類を選びます。Small インスタンス以上を選択して下さい。**Micro インスタンスだと Minecraft が動きません。**同時に入るのが数人程度であれば、Small インスタンスで十分だと思います。他の項目はそのままで大丈夫です。

次の画面と、次の次の画面は、何も変更せずに「Continue」で問題ありません。

### Key Pair の作成
「Create Key Pair」の画面になったら、「Create a new Key Pair」の「Enter a name for your key pair:」に「minecraft」と入力して、「Create & Download your Key Pair」をクリックしてください。
`minecraft.pem` というファイルがダウンロードされます。これは後ほどサーバーにログインするために使います。

### Security Group の作成
次の画面では、「Craete a new Security Group」の項目を

- Group Name: minecraft
- Group Description: minecraft
- Inbound Rules
 - Create a new rule: Custom TCP rule
 - Port range: 25565
 - Source: 0.0.0.0/0
 - Name: Minecraft

として、「+ Add Rule」を押してください。
これによって、Minecraft サーバーが使用する 25565 ポートが解放されます。

あとは「Continue」「Close」を押せば終了です。インスタンスが起動します！

## インスタンスに IP アドレスを割り当て
このままだと、起動したインスタンスは固定の IP アドレスを持ちません。EC2 では、Elastic IP という仕組みで、インスタンスに固定のアドレスを割り振ることができます。

Management Console の画面左側のメニュー中から「Elastic IPs」を選択してください。「Allocate New Address」というボタンを押して、EC2 用の IP アドレスを作成してください。

作成されたアドレスにチェックを入れ、「Associate Address」というボタンを押して、先ほど作成したインスタンスと紐付けて下さい。この IP アドレスが、Minecraft サーバーのアドレスになります。

## サーバーに SSH でログイン

それでは、起動したインスタンスにログインしましょう。コマンドラインを開いて、次の３つのコマンドを実行してください。

```
$ cd <minecraft.pem が置いてあるディレクトリ>
$ chmod 400 minecraft.pem
$ ssh -i minecraft.pem ec2-user@<先ほど設定した Elastic IP アドレス>
```
ログインできれば、次のロゴが表示されます。

```
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|
```

## Minecraft サーバーの起動

上記の方法で作成したインスタンスには、既に Minecraft サーバーがインストールされているので、

```
$ sudo start minecraft
```

とするだけで、Minecraft サーバーが立ち上がります！
30秒ほどしたら、Minecraft からサーバーに接続できるようになります。

## Minecraft サーバーの設定
`server.properties` や `white-list.txt` などの設定ファイルは、起動後に ec2-user のホームディレクトリにある minecraft フォルダの中にできます。

また、このインスタンスでは、デフォルトで、1024MB のメモリを Minecraft サーバーに割り当てていますが、Medium 以上のインスタンスにした場合は、Minecraft に割り当てるメモリを増やすとよいでしょう。

`/etc/init/minecraft.conf` の中にある以下の行の、1024 となっている部分を、インスタンスのメモリ量に合わせて書き換えてください。

```/etc/init/minecraft.conf
exec java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
```

## インスタンスの停止
EC2 インスタンスは、停止してしまえばそれ以上課金されません。インスタンスを停止するには、Management Console で、該当のインスタンスを選択して、「Instance Actions」から「Terminate」することで止められます。

## バックアップ
EC2 インスタンスは、**Terminate すると、データが全て消えてしまう**ので注意してください。データのバックアップの仕方は、要望があれば記事にします。

## デモサーバー
以上の方法で作成した Minecraft サーバーを公開しています。

- IP アドレス: takumi-server.com
- インスタンス: Small

24時間動かしていますので、もしよかったらログインして自由に遊んでみてください！
Small でどれくらいの快適さなのか、フィードバック貰えるとうれしいです :-)

## 関連記事
[Craftbukkit サーバーを Amazon EC2 上に構築](http://qiita.com/items/739cf1914acb763bc32e)
[さくら VPS の Ubuntu に Minecraft サーバーを構築](http://qiita.com/items/cffa6e98b2ed87c276c6)