Como configurar um servidor Minecraft no Compute Engine

Mojang e Minecraft não aprovaram nem estão associados a este tutorial.

Para executar um servidor dedicado do Minecraft, você precisa ter uma máquina de servidor dedicada, muita RAM e muita largura de banda. Por que não deixar o Google lidar com esses requisitos para você? Neste tutorial, você aprenderá como instalar, configurar e executar um servidor Java padrão do Minecraft no Compute Engine. Esse servidor é compatível com os clientes padrão do Minecraft para desktop baseados em Java.

O software servidor do Minecraft funcionará em uma instância do Compute Engine, que é uma máquina virtual (em inglês) executada na infraestrutura do Google. Neste tutorial, usamos o tipo de máquina padrão para instâncias do Compute Engine, n1-standard-1. O tipo de máquina n1-standard-1 inclui um disco de inicialização de 10 GB, 1 CPU virtual (vCPU) e 3,75 GB de RAM. Esse tipo de máquina executa o Debian Linux (em inglês) por padrão.

Para garantir que haja espaço suficiente para os dados mundiais do servidor do Minecraft, você também conectará uma unidade de estado sólido (SSD, na sigla em inglês) permanente, de alto desempenho e 50 GB para a instância. Com a adição dessa SSD permanente, a instância atenderá aos requisitos do sistema para um servidor dedicado do Minecraft (em inglês), aceitando até 50 jogadores confortavelmente.

Objetivos

  • Criar uma instância de máquina virtual do Compute Engine.
  • Instalar e configurar o servidor do Minecraft.
  • Configurar backups automáticos dos dados mundiais do Minecraft

Custos

Neste tutorial, usamos os seguintes componentes faturáveis do Google Cloud:

  • máquinas virtuais do Google Compute Engine;
  • discos permanentes do Compute Engine;
  • Cloud Storage.

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem ser qualificados para uma avaliação gratuita.

Antes de começar

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

Criar e configurar a instância do Compute Engine

Comece criando e configurando uma nova instância do Compute Engine:

  1. No Console do Cloud, acesse a página Instâncias de VM:

    Acessar a página "Instâncias de VM"

    Aparecerá uma caixa de diálogo solicitando que você crie uma nova instância do Compute Engine.

  2. Clique em Criar para começar.

  3. Na página Criar uma instância, configure sua instância da seguinte maneira:

    • Nomeie a instância. Neste tutorial, usamos o nome da instância mc-server.
    • Selecione a região e a zona em que você quer que sua instância seja hospedada. Neste tutorial, usamos a região us-central1 (Iowa) e a zona us-central1-f.
    • Na seção Disco de inicialização, clique em Alterar. A caixa de diálogo Disco de inicialização será exibida.
    • Altere o tipo de disco para Disco permanente SSD.
  4. Clique em Selecionar para confirmar a alteração e fechar a caixa de diálogo.

Essa é a configuração básica. Mas não crie a nova instância ainda. Para atender aos requisitos de um servidor dedicado do Minecraft, você também precisará definir algumas configurações avançadas.

Ativar o acesso da instância ao Google Cloud Storage

Posteriormente, neste tutorial, você aprenderá a fazer backup de seus dados mundiais no Cloud Storage, o que exige que sua instância tenha acesso de leitura e gravação ao Cloud Storage. Para ativar o acesso, siga estas etapas:

  1. Em Identidade e acesso à API, clique na lista suspensa Conta de serviço e selecione Conta de serviço padrão do Compute Engine.
  2. Defina Escopos de acesso com Definir acesso para cada API.
  3. Na lista suspensa Armazenamento, selecione Leitura e gravação.

Atribuir uma tag à instância

Em seguida, atribua uma tag à instância. Mais adiante no tutorial, você usará essa tag para criar uma regra de firewall que permita que os clientes externos do Minecraft acessem o servidor.

  1. Clique em Gerenciamento, segurança, discos, rede, locação individual para revelar um conjunto de guias para configurações avançadas.
  2. Na guia Rede, adicione a tag minecraft-server ao campo Tags de rede.

Configurar um endereço IP estático para a instância

Para poder encaminhar as solicitações recebidas para sua instância de modo confiável, ela precisará ter um endereço IP estático. Para adicionar um endereço IP estático à instância:

  1. Na guia Rede, na seção Interfaces de rede, clique em Padrão. Você verá o menu de configuração da Interface de rede.
  2. Clique na lista suspensa IP externo e selecione Criar endereço IP. Uma caixa de diálogo será exibida.

    Criar um novo endereço IP estático

  3. Nomeie seu endereço IP como mcs-ip.

  4. Clique em Reservar para criar o endereço.

  5. Clique em Concluído para confirmar as alterações e fechar o menu de configuração da Interface de rede.

Adicionar um disco permanente à instância

Em seguida, você anexará um disco permanente à instância. Ao contrário dos discos de inicialização, os discos permanentes não são vinculados à duração da instância do Google Compute Engine. Por exemplo, se as necessidades de hospedagem mudarem ao longo do tempo, posteriormente será possível mover o disco para um tipo de máquina mais adequado.

O tipo específico de disco permanente que você usará neste tutorial é um SSD permanente. Esse tipo de disco aceita operações de E/S muito rápidas, o que pode ajudar a reduzir o atraso do servidor.

Para adicionar um disco permanente à instância:

  1. Na guia Discos, na seção Discos adicionais, clique em Adicionar novo disco. Você verá uma caixa de diálogo de criação de disco:

    Criar um novo disco

  2. Na caixa de diálogo, preencha o formulário desta maneira:

    • Nome: minecraft-disk
    • Tipo de disco: disco permanente SSD
    • Tipo de origem: disco em branco
    • Tamanho (GB): 50
  3. Clique em Concluído. Quando você criar a instância, o disco será criado e anexado automaticamente.

Criar a instância

A configuração de instância é só isso! Clique no botão Criar na parte inferior da página para criar a nova instância. Essa ação também o levará de volta à página Instâncias da VM.

Ativar e formatar o disco permanente

Neste ponto, o disco está conectado à instância, mas ainda não foi ativado nela. Não tem problema porque, se você montasse o disco agora, não poderia fazer muita coisa com ele. Isso porque, como em qualquer disco, o disco permanente primeiro precisa ser formatado com um sistema de arquivos (em inglês) compreensível pelo sistema operacional (neste caso, Debian Linux).

Comece estabelecendo uma conexão SSH com a instância. Na linha de mc-server na página Instâncias de VM, clique em SSH para abrir um terminal SSH baseado em navegador:

Terminal SSH

Depois que o terminal SSH abrir, crie um novo diretório chamado minecraft no diretório home da instância:

user@mc-server: sudo mkdir -p /home/minecraft

Você usará esse diretório como ponto de montagem para o disco permanente.

Em seguida, formate o disco:

user@mc-server: sudo mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/google-minecraft-disk

Por fim, ative o disco:

user@mc-server: sudo mount -o discard,defaults /dev/disk/by-id/google-minecraft-disk /home/minecraft

Instalar e executar o servidor do Minecraft na instância

O disco permanente é montado oficialmente. Agora é hora de fazer o que você pretendia inicialmente: instalar e executar o servidor do Minecraft.

Configurar o Java Runtime Environment (JRE)

Por ser executado com a Java Virtual Machine (JVM) (em inglês), o servidor do Minecraft requer o Java Runtime Environment (JRE). Como o servidor não precisa de uma interface gráfica do usuário, usaremos neste tutorial a versão sem comando do JRE. Essa abordagem reduz o uso de recursos do JRE na sua máquina, ajudando a garantir que o servidor do Minecraft tenha muito espaço para expandir o próprio uso de recursos, se necessário.

Você precisará atualizar os repositórios do Debian na instalação dele para poder fazer o download e a instalação da versão sem comando do JRE. Para isso, execute o seguinte comando no terminal SSH:

user@mc-server: sudo apt-get update

Depois que os repositórios forem atualizados, será possível instalar o JRE sem comando:

user@mc-server: sudo apt-get install -y default-jre-headless

Instalar o servidor do Minecraft

Agora que você configurou o JRE, é hora de fazer o download e instalação do servidor do Minecraft. Comece navegando para o diretório minecraft:

user@mc-server: cd /home/minecraft

Como o diretório minecraft contém o disco permanente ativado, você precisará de um nível especial de acesso conhecido como acesso de usuário raiz (em inglês) para executar comandos nele. Execute o seguinte para se tornar o usuário raiz:

user@mc-server: sudo su

Em seguida, faça o download do arquivo Java (JAR) (em inglês) do servidor atual do Minecraft na instância: Visite a página de download do Minecraft (em inglês), copie o URL do arquivo no link de download e substitua o URL no seguinte comando por este URL:

root@mc-server: wget https://launcher.mojang.com/v1/objects/f1a0073671057f01aa843443fef34330281333ce/server.jar

Inicie o servidor pela primeira vez:

root@mc-server: java -Xms1G -Xmx3G -d64 -jar server.jar nogui

A primeira execução é um pouco frustrante porque o servidor simplesmente inicia, reporta alguns problemas e para. No entanto, se você executar o seguinte comando, perceberá que alguns arquivos novos foram criados no diretório minecraft:

root@mc-server: ls -l

Entre esses novos arquivos, você encontrará um chamado eula.txt. Abra-o para edição:

root@mc-server: nano eula.txt

Esse arquivo contém uma única variável booleana, eula. Para usar o servidor do Minecraft, é preciso aceitar os termos do Contrato de Licença de Usuário Final (EULA, na sigla em inglês) do Minecraft (link em inglês). Se você aceitar os termos do EULA, defina o valor de eula de false como true, salve e saia.

Executar o servidor do Minecraft

Se você iniciar o servidor do Minecraft novamente neste momento, ele estará vinculado à duração da sessão SSH, isto é, quando o terminal SSH é fechado, o servidor também é terminado. Para contornar esse problema, é possível usar o screen, um aplicativo que permite criar um terminal virtual que pode ser "desanexado", tornando-se um processo em segundo plano ou "reanexado", tornando-se um processo em primeiro plano. Quando um terminal virtual é desanexado para o plano de fundo, ele passa a ser executado independentemente de você estar conectado ou não.

No terminal SSH, execute o seguinte para instalar o screen:

root@mc-server: apt-get install -y screen

Em seguida, inicie o servidor do Minecraft em um terminal virtual de screen. Use a sinalização -S para nomear seu terminal mcs:

root@mc-server: screen -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui

Desanexe o terminal screen pressionando Ctrl + a e digitando d. O terminal continuará em execução em segundo plano. Para reanexar o terminal, execute screen -r <terminal_name> da seguinte maneira:

root@mc-server: screen -r mcs

Por fim, desanexe o terminal screen novamente, se necessário. Digite exit uma vez para sair do modo de usuário raiz, e digite exit novamente para fechar a conexão SSH.

Parabéns! Você agora tem um servidor do Minecraft em execução. Mas ele ainda não está pronto para ser compartilhado. Para poder compartilhar o servidor, você precisa configurar uma regra de firewall que permita o acesso das pessoas.

Permitir que os clientes acessem o servidor do Minecraft

Para poder encaminhar solicitações de entrada para a instância de maneira confiável, será preciso criar uma regra de firewall. Sendo assim:

  1. No Console do Cloud, acesse a página Firewall.

    Acessar a página "Firewall"

  2. Clique em Criar regra de firewall.

  3. Na página Criar regra de firewall, preencha o formulário desta maneira:

    • Nome: minecraft-rule
    • Tags de destino: minecraft-server
    • Filtro de origem: intervalos de IP
    • Intervalos de IP de origem: 0.0.0.0/0
    • Protocolos ou portas: selecione tcp, e insira a porta 25565 no campo fornecido.
  4. Clique em Criar para criar a nova regra de firewall. Os usuários agora podem acessar o servidor pelos clientes locais do Minecraft.

Configurar o servidor do Minecraft

Se quiser editar as propriedades padrão do servidor. Sendo assim:

  1. Reanexe o terminal screen do servidor.

    root@mc-server: screen -r mcs
  2. Digite /stop para parar o servidor do Minecraft.

  3. Edite o arquivo server.properties. As informações sobre cada tipo de propriedade e os possíveis valores estão na página server.properties da Wiki do Minecraft (links em inglês).

    $ nano server.properties
  4. Reinicie o servidor.

    root@mc-server: screen -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui
  5. Desanexe o terminal screen.

Programar backups regulares

Esteja você executando um cliente local do Minecraft ou um servidor do Minecraft, vale a pena fazer backup dos dados mundiais do Minecraft regularmente. Nesta seção, mostramos como configurar backups regulares de seus dados mundiais usando o Cloud Storage.

O Cloud Storage oferece diversas classes de armazenamento otimizadas para diferentes casos de uso. Este tutorial usa o Armazenamento padrão, que fornece até 5 GB/mês sem custos.

Criar um script de backup

Comece a estabelecer uma conexão SSH com a instância na página "Instâncias de VM" no Console do Cloud. Quando o terminal abrir, torne-se o usuário raiz.

user@mc-server: sudo su

Crie um novo bucket de armazenamento padrão do Cloud Storage. substituindo us-central1 pela região do Cloud Storage mais próxima de você e [PROJECT_ID] pelo código do projeto. Você usará esse bucket para armazenar os backups:

root@mc-server: gsutil mb -c standard -l us-central1 gs://[PROJECT_ID]-minecraft-backup

Em seguida, crie um novo arquivo de script de shell, backup.sh, na pasta minecraft e abra-o para edição.

root@mc-server: nano /home/minecraft/backup.sh

Cole o script a seguir no arquivo. Substitua [BUCKET_NAME] pelo seu nome do bucket do Cloud Storage:

#!/bin/bash
screen -r mcs -X stuff '/save-all\n/save-off\n'
/usr/bin/gsutil cp -R ${BASH_SOURCE%/*}/world gs://[BUCKET_NAME]/$(date "+%Y%m%d-%H%M%S")-world
screen -r mcs -X stuff '/save-on\n'

Esse script salva o estado atual dos dados mundiais e pausa a funcionalidade de salvamento automático do servidor. Em seguida, o script faz backup do diretório de dados mundiais do servidor (world), colocando o conteúdo em um diretório com carimbo de data/hora ([TIMESTAMP]-world) no bucket do Cloud Storage. Depois de concluir o backup dos dados, o script retoma o salvamento automático no servidor do Minecraft.

Salve e saia, depois execute o seguinte para tornar o script executável:

root@mc-server: chmod 755 /home/minecraft/backup.sh

Teste o script:

root@mc-server: /home/minecraft/backup.sh

Após a conclusão do script, acesse o navegador do Storage no Console do Cloud e clique no bucket. Você verá um backup com carimbo de data/hora do diretório world.

Programar um cron job

A menos que prefira inicializar cada backup manualmente, provavelmente é melhor que o script seja executado automaticamente em intervalos previsíveis. Para realizar essa tarefa, é preciso programar um novo cron job (em inglês).

Para programar um cron job, comece abrindo a tabela cron para edição:

root@mc-server: crontab -e

Role até a parte inferior do arquivo e cole a seguinte linha, que especifica que backup.sh será executado a cada quatro horas:

0 */4 * * * /home/minecraft/backup.sh

Salve e saia.

Pronto. Agora, sua instância do Compute Engine fará o backup automático dos seus dados mundiais para um bucket do Cloud Storage a cada 4 horas.

Remover backups antigos automaticamente

Se você fizer backup dos dados mundiais a cada 4 horas, significa que ele será feito 6 vezes por dia, 72 vezes por semana e aproximadamente 300 vezes por mês. É possível remover backups antigos automaticamente usando um recurso do Cloud Storage chamado Gerenciamento do ciclo de vida de objetos. Esse recurso permite que você configure o bucket do Cloud Storage para arquivar ou excluir backups antigos automaticamente após algum tempo ou se houver backups mais recentes disponíveis.

Configure o bucket do Cloud Storage para remover backups automaticamente, seguindo estas etapas:

  1. Abra o navegador do Cloud Storage no Console do Cloud:

    Acessar o navegador do Cloud Storage

  2. Na lista de buckets, encontre seu bucket de backups do Minecraft.

  3. Clique em Nenhum na coluna Ciclo de vida do bucket. A página Ver regras do ciclo de vida do objeto será exibida.

  4. Clique em Adicionar regra.

  5. Na seção Selecionar condições do objeto, selecione Idade. Defina a antiguidade como sete dias e clique em Continuar.

  6. Na seção Selecionar ação, selecione Excluir e clique em Continuar.

  7. Clique em Salvar para salvar suas configurações. Você será levado de volta à página Ver regras do ciclo de vida do objeto.

Cada backup agora será excluído uma semana após o script de backup enviá-lo para o Cloud Storage.

Desligar o servidor do Minecraft

Se não precisar executar o servidor do Minecraft, desligue-o para evitar despesas desnecessárias.

Comece a estabelecer uma conexão SSH com a instância na página "Instâncias de VM" no Console do Cloud. Depois que o terminal abrir, interrompa o servidor do Minecraft passando um comando /stop para o terminal screen em que ele está sendo executado.

user@mc-server: sudo screen -r -X stuff '/stop\n'

Agora que você parou o servidor do Minecraft, pode encerrar a instância com segurança. Na página Instâncias da VM, clique no nome da instância e clique no botão Parar na parte superior da página. Você será desconectado da sessão SSH.

Para iniciar a instância novamente, acesse a página da instância e clique no botão Iniciar na parte superior da página. Para iniciar o servidor do Minecraft novamente, é possível estabelecer uma conexão SSH com a instância, reativar o disco permanente e iniciar o servidor do Minecraft em um novo terminal screen, conforme descrito na seção Executar o servidor do Minecraft.

Automatizar os procedimentos de inicialização e desligamento

Se você planeja desligar o servidor regularmente, considere adicionar scripts de inicialização e desligamento à instância para automatizar os procedimentos comuns de inicialização e desligamento. É possível automatizar o procedimento de inicialização da seguinte maneira:

  1. Acesse a página "Instâncias de VMs" no Console do Cloud.

    Acessar a página "Instâncias de VM"

  2. Clique no nome da instância.

  3. Clique em Editar.

  4. Na seção Metadados personalizados, adicione uma nova chave chamada startup-script e copie o script a seguir no campo Valor:

    #!/bin/bash
    mount /dev/disk/by-id/google-minecraft-disk /home/minecraft
    (crontab -l | grep -v -F "/home/minecraft/backup.sh" ; echo "0 */4 * * * /home/minecraft/backup.sh")| crontab -
    cd /home/minecraft
    screen -d -m -S mcs java -Xms1G -Xmx3G -d64 -jar server.jar nogui
    

Quando você reiniciar a instância, esse script ativará automaticamente o disco do Minecraft no diretório apropriado, reinstalará o cron job, se necessário, iniciará o servidor do Minecraft em uma sessão screen e a desanexará.

Para automatizar o procedimento de encerramento, adicione outra chave chamada shutdown-script e copie o seguinte no campo Valor:

#!/bin/bash
/home/minecraft/backup.sh
sudo screen -r mcs -X stuff '/stop\n'

Na parte inferior da página, clique em Salvar para confirmar as alterações. Quando você parar sua instância, esse script criará um backup dos dados mais recentes do jogo e encerrará o servidor do Minecraft antes que a instância seja encerrada.

A seguir

Visitar a Minecraft Wiki

O Minecraft Wiki (em inglês) fornece muitos recursos úteis para jogadores e administradores de servidores do Minecraft.

Testar um servidor alternativo do Minecraft

O servidor baunilha do Minecraft que você instalou neste tutorial é apenas um dos muitos servidores do Minecraft disponíveis. Acesse Servidores personalizados na Wiki do Minecraft (links em inglês) para ver uma lista de servidores alternativos que foram otimizados para tipos de jogos, requisitos de máquina, modificações fáceis e mais.

Conheça outros tutoriais

Teste outros recursos do Google Cloud. Veja nossos tutoriais.