見出し画像

Minecraft Education Editionのマルチプレイ用ホストをAWSに建ててみた

初めてマルチプレイ環境作る時に、皆が共通してはまりそうなポイント先をにまとめておきます。

①マイクラのアカウント(Microsoft office365のアカウント)は同一テナントじゃなきゃマルチプレイできない
→ 例:◯◯@minecraftcup.com同士じゃないとダメ。◎◎@coderdojo-ginowan.comは一緒にマルチできない

②ポートはTCPだけじゃなく、UDPも空けないとダメ
→ 19132をAWS、Windows Firewall両方で開放する。

③公式ガイド(英語版しか見当たらず)の「Multiplayer Requirements」を満たす
→ 2ページ目に上記含めいろいろ書いてあります。
https://education.minecraft.net/wp-content/uploads/Minecraft-Education-Edition-Multiplayer-Guide.pdf
→ チェックシート形式でもまとめられています。求む、日本語版。
https://education.minecraft.net/wp-content/uploads/MEE-Set-Up-Technical-Checklist.pdf

---

2021年8月現在、Minecraft カップ2021に全国のMinecraft Loveな子たちが取り組んでいる真っ最中だと思います。CoderDojo宜野湾&浦添でも、有志を募ってチームを結成しました。今回はコンテスト経験初めてでマイクラ歴も浅い子たち中心ですが、マイクラへの愛だけは全国の猛者たちに負けない子たちばかりです。

そんな子たちとファイナル進出を目指し活動をはじめましたが、マイクラのチーム共同建築でいつも課題になるが、マルチサーバどうする問題です。

Java版であれば情報も多く、ホストするクラウド環境やレンタルサーバ環境があれば比較的容易にマルチサーバを立てられるのですが、Minecraftカップはネット上の知見が少なめのEducation Edition(教育版)。残念ながらサーバーソフトウェアは提供されておらず、誰かがプレイしているワールドがホストとなって、皆がそのワールドになだれ込む仕組みです。

一昨年全国大会出場を果たした時は、CoderDojo運営者の自宅にハイスペックマシンを置き、ルータが持つお名前ドットコムドメインとの連携機能とポートフォワード設定でいつでもどこでも参加可能なマルチサーバを作っていました。ただ、マイクラが落ちたり、マシンが不安定になったらマシンの前に行ってメンテしなければならず、大勢一斉ログインで重くなってもスペックアップできず不便だったので、今回はAWSのWindowsインスタンスを使ってどこからでもマイクラを管理できるようにしてみました。

自身の備忘録も兼ねてどうやったかポイントだけを記しています。細かなAWSの使い方やWindows Serverの操作方法など、ネット上にたくさん情報がある事項については記していませんのでご了承下さい。

EC2でMicrosoft Windows Server

まずはWindows Server 2019 Datacenter editionでインスタンスを立てました。なんだか贅沢ですね。

画像1

インスタンスタイプは、t2.xlargeを選びました。Java版マルチサーバをCentOSで動かしていた時にt2.largeだと人数が10人くらいになると少し重めだった経験と、Windowsはもっとリソース使いそうと考え、xlargeからスタートしてみました。結果は5人くらいワールドに入った状態で、CPUがずっと90%超え。

画像2

メモリ使用率15%って。。。vCPUをもっとグレードアップするか、グラフィック描画に適した、でもリーズナブルなインスタンスを研究する必要がありそうです。(もしこのあたり知見のある方がいたら教えて下さい。m(_ _)m)

ポート解放の設定

Windows環境ができたら、インターネット環境からのマルチプレイを実現するために、AWSとWindows Serverでそれぞれポート開放の設定を行います。まずはWindows Serverを設定しました。Firewall & network protection(すみません、英語版OSなので表記が英語です)でInbound Rules(受信側ルール)を追加します。

画像3

画像4

AWS側でも同様にTCPとUDPの19132を開放します。

画像5

これでクラウド側のMinecraftとマルチプレイできるはずです!AWSではElastic IPでIPアドレスを固定して、それをチームメンバーに共有しました。はじめはIPアドレスでなく、サブドメインを割り振ってホスト名でアクセスを試みていたのですが、なぜかそれはNGなようで、IP直指定です。ちなみにりんごとかラマとか出てくるパズルっぽいやつでもホストワールドに入ることができました。

費用どのくらい?

AWSの見積ツールで概算を見ると、利用時間によりますがCoderDojo宜野湾&浦添では1日最大3時間くらい利用すると試算して、1ヶ月あたり3,000~5,000円くらいかなというところでした。24時間立上げっぱなしは予算的にダメなので、子どもたちには使う時に予めLINEのオープンチャットで時間帯を連絡してもらって、その時間だけ立ち上げるようにしています。^^;
以下はt2.xlargeインスタンスでEBS・30GBでの数字です。これにElastic IPや通信量に応じた課金が入るので、夏休みで利用率の高い8月は、最低月5,000円くらいは見込んだ方がよさそうだと思いました。

この費用はコープおきなわ様の非営利団体助成金で賄っています!コープおきなわ様ありがとうございます!

画像6

以上、取り急ぎのレポートでした。また運用しながらわかったことがあれば書き足していきます。どなたかの参考になれば幸いです。または、Azureの方がいいよ!とか、こんなサービスがあるよ!的な情報でもシェア頂けると嬉しいです。

子どもたちの新しい学びの場つくりへ、ご支援よろしくです!