Evgeny Rudinsky
Evgeny Rudinsky Cloud Architect @ Nordcloud

Как создать свой dedicated сервер Minecraft?

Как создать свой dedicated сервер Minecraft?

Майнкрафт — одна из самых увлекательных игр в современном геймдеве. За счет своих низких системных требований и огромной базы фанатов контент в популярной пиксельной вселенной разросся до небывалых масштабов. Мы играем на мобильных телефонах и, в случае подключения к одной сети wifi, можем бегать вдвоем-троем на одной карте. Недавно эту возможность нужно было расширить и пригласить игрока не из домашней сети - нужен был dedicated сервер. В статье я написал как можно быстро решить эту задачу с помощью облака Azure.

Что требуется?

Minecraft dedicated server

Я буду использовать Bedrock Dedicated Server в Container Instances.

Создаем сервер

Для создания сервера будем использовать Azure портал. В каталоге доступных сервисов ищем по ключу aci продукт с названием Container Instances. Создаем новый.

Azure Container Instance

Запустим экземпляр сервера, для этого нужно лишь следующее:

  1. Выбрать правильный Azure регион для создания ACI. Определиться с выбором поможем Azure Speed Test 2.0. На момент написания статьи я был в Санкт-Петербурге и использовал голландский ЦОД (West Europe). Он выдавал наименьшую задержку (~70-100 мс).
  2. В качестве Docker образа указать itzg/minecraft-bedrock-server из Dockerhub (image source: Docker Hub or other registry).
  3. В Networking убедиться, что Networking type используется Public, задать DNS name label, и добавить порт 19132 UDP - это порт, на котором сервер ожидает подключение игроков.
  4. Последнее - в 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

Ниже - пример рабочего сервера с минимально-необходимыми характеристиками. Контейнер создается и запускается несколько секунд.

Minecraft Dedicated Server на Azure Container Instances

Для подключения к серверу нам нужно узнать публичный IP адрес, который был присвоен запущенному экземпляру контейнера.

Как узнать IP адрес ACI

Результат

Ping до сервера получился в пределах 100 мс.

Ping до сервера Minecraft

Ну все, можно подключаться и играть! ;-)

Minecraft, подключился к своему серверу

Расчет из калькулятора, час работы такого сервера ~ $0.05.

comments powered by Disqus