始めに値段を書きます
たったの月々600円でMinecraftのサーバを常時起動出来ます(※現状の価格です。)
- Docker (option)
- Google Cloud Platform (f1-micro instance)
f1-micro instance
は、月間常時起動した場合 $0.006/hour
(EU/asia)。
31*24=744時間で$4.464
、ディスクの値段等を含めると$5
程なので、$1
=120円として600円程度です。
Diskは10GB
の標準ディスクとして計算。(SSDだと結構値段が変わって来るので気を付けてください。10GB当たり150円程度UP)。Minecraftのワールドデータはどんなに大きくても1GBくらいだろうと思ったので、このサイズにしました。足りなくなったら後で拡張する事も可能ですし
f1-micro じゃ動かなくね?
そう思われるかも知れません。(と言うか動きません)
そこで出てくるのが「cuberite」!!
cuberiteとは?
C++で書かれた、**公式のMinecraftサーバの完全互換(を謳っている)**サーバです。
動作させてみた感じ、f1-micro インスタンス上でメモリ使用量は VIRT
が600MB、RES
が80MB程度。(swapを2GB程度確保しています)CPUは誰も居なければほぼ0%なので割と健全です(何人かログインした状態でのメモリ使用量は後で記載しようと思います)
公式のMinecraftサーバも試してみましたが、CPUが100%に張り付き、メモリもスワップしまくりで、A single server tick took 60.99 seconds (should be max 0.05)
(1チックの処理に60秒以上掛かった)として、サーバがクラッシュしてしまい、全く使い物になりませんでした。
cuberite
では、既存のワールドデータを読み込ませた場合そのまま使う事が出来たので、既に別の形でサーバを立ち上げていた場合でも、問題無く移行は可能のようです。
(まだ使い始めたばかりなので、複数人プレイ等で障害が頻発するような場合があれば追記したいと思います。)
cuberiteの導入方法
公式サイトでバイナリを配布しているので、これを使用する事も可能です。(32bit / 64bit 両方あります)
ただ一つ、気を付けないといけない点があり、glibc 2.15 以上が必要です。
CentOS 6.x系だと glibc 2.12
になってしまうので入れる事が出来ません。(恐らくCentOS 7
系以降だと入れられると思います)Ubuntuだと12系がダメで、14以降かな・・・
新しくインスタンスを立ち上げる際のOSとして、**「慣れているから」**と言う理由で、これら古い系統のOSを選択してしまうと、動作しない悲しい思いをしてしまうので気を付けてください・・・。
それでも古いOSを使いたかったら?
Docker
を使う、と言う手があります。と言うか僕がそうでした。(既にCentOS 6.7で立ててしまっていたので・・・)ので一応書いておきます。
最初は、自分でDockerfile
を書く気満々でしたが、検索したら既に誰かが書いてくれていました。のでこれをそのまま使いました。
$ sudo docker run -i -p 25565:25565 --name mc sftech/minecraft-server
のようにして起動しましょう。コンテナ大好きコンテナ中毒者さんにもおすすめです。
最後に忘れずにやるべき事
ファイヤウォールルールとして、tcp:25565
を解放しておく事を忘れずに・・・!
インスタンスのタグに設定をして
保存も忘れずに。
追記
Cuberite はまだまだ不完全な部分もあるようです。
既存のワールドを移行する際には、元のワールドデータを予めバックアップしておくことをおすすめします。