Как создать свой dedicated сервер Minecraft?
Майнкрафт — одна из самых увлекательных игр в современном геймдеве. За счет своих низких системных требований и огромной базы фанатов контент в популярной пиксельной вселенной разросся до небывалых масштабов. Мы играем на мобильных телефонах и, в случае подключения к одной сети wifi, можем бегать вдвоем-троем на одной карте. Недавно эту возможность нужно было расширить и пригласить игрока не из домашней сети - нужен был dedicated сервер. В статье я написал как можно быстро решить эту задачу с помощью облака Azure.
Что требуется?
Я буду использовать Bedrock Dedicated Server в Container Instances.
Создаем сервер
Для создания сервера будем использовать Azure портал. В каталоге доступных сервисов ищем по ключу aci
продукт с названием Container Instances. Создаем новый.
Запустим экземпляр сервера, для этого нужно лишь следующее:
- Выбрать правильный Azure регион для создания ACI. Определиться с выбором поможем Azure Speed Test 2.0. На момент написания статьи я был в Санкт-Петербурге и использовал голландский ЦОД (West Europe). Он выдавал наименьшую задержку (~70-100 мс).
- В качестве Docker образа указать
itzg/minecraft-bedrock-server
из Dockerhub (image source: Docker Hub or other registry). - В Networking убедиться, что Networking type используется Public, задать DNS name label, и добавить порт 19132 UDP - это порт, на котором сервер ожидает подключение игроков.
- Последнее - в environment variables задать переменную
EULA
=TRUE
. Это означает, что вы принимаете условия Minecraft End User License Agreement.
Для сохранения данных игры рекомендуется использовать volume
. Через Azure портал монтировать их к ACI нет возможности (нужно использовать CLI или PS). Но там все просто: потребуется создать Azure Storage Account и в нем использовать SMB, подключается через аргументы --azure-file-volume-account-name
, --azure-file-volume-account-key
, --azure-file-volume-share-name
и --azure-file-volume-mount-path
. Внутри контейнера контент сервера и сам сервер работает из /data
…
Ниже - пример рабочего сервера с минимально-необходимыми характеристиками. Контейнер создается и запускается несколько секунд.
Для подключения к серверу нам нужно узнать публичный IP адрес, который был присвоен запущенному экземпляру контейнера.
Результат
Ping до сервера получился в пределах 100 мс.
Ну все, можно подключаться и играть! ;-)
Расчет из калькулятора, час работы такого сервера ~ $0.05.