Como configurar um servidor do 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 será executado em uma instância do Compute Engine, que é uma máquina virtual executada na infraestrutura do Google. Neste tutorial, o tipo de máquina padrão n1-standard-1 é usado para instâncias do Compute Engine. 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. O Debian Linux é executado por padrão nesse tipo de máquina.

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, 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, os seguintes componentes faturáveis do Google Cloud Platform são usados:

  • Máquinas virtuais do Google Compute Engine
  • Discos permanentes do Compute Engine
  • Cloud Storage

Use a calculadora de preços para gerar uma estimativa de custo com base no uso do projeto. Novos usuários do GCP são 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. Selecione ou crie um projeto do GCP.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado para o projeto.

    Saiba como ativar o faturamento

Criar e configurar a instância do Compute Engine

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

  1. No Console do GCP, 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. Este tutorial usa o nome de instância mc-server.
    • Selecione a região e a zona em que você quer que sua instância seja hospedada. Este tutorial usa 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 compreensível pelo sistema operacional (neste caso, Debian Linux).

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

Terminal SSH

Quando o terminal SSH abrir, crie um novo diretório denominado 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

Finalmente, monte 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 pretendia inicialmente: instalar e executar o servidor do Minecraft.

Configurar o Java Runtime Environment (JRE)

Por ser executado sobre a Java Virtual Machine (JVM), o servidor do Minecraft requer o Java Runtime Environment (JRE). O servidor não precisa de uma interface gráfica do usuário, então este tutorial usa a versão sem comando do JRE. Essa abordagem reduz o uso de recursos do JRE na máquina, ajudando a garantir que o servidor do Minecraft tenha bastante 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, você poderá 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 seu disco permanente ativado, você precisará de um nível especial de acesso conhecido como acesso de usuário raiz 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) do servidor atual do Minecraft na instância: Visite a página de download do Minecraft, 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 este comando, verá que alguns arquivos novos foram criados no diretório minecraft:

root@mc-server: ls -l

Entre esses arquivos novos, há um arquivo denominado 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) do Minecraft. Se aceitar os termos do EULA, defina o valor de eula de false para 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, você pode usar 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 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 o mcs do terminal:

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

Desanexe o terminal screen pressionando Ctrl + a e, depois, inserindo 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

Finalmente, desanexe o terminal de screen novamente, se necessário. Digite exit uma vez para sair do modo de usuário raiz, depois 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. Siga estes passos:

  1. No Console do GCP, acesse a página Regras de firewall.

    Acessar a página "Regras de 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 IPs 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, siga estes passos:

  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 seus possíveis valores estão na página server.properties do Wiki do Minecraft (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 regional, que fornece até 5 GB/mês sem custos.

Crie um script de backup

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

user@mc-server: sudo su

Crie um novo intervalo regional do Cloud Storage. Basta substituir us-central1 pela região do Cloud Storage mais próxima de você e [PROJECT_ID] pelo ID do projeto. Esse intervalo será usado para armazenar seus backups.

root@mc-server: gsutil mb -c regional -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 intervalo 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, ele faz backup do diretório de dados mundiais do servidor (world) e coloca o conteúdo dele em um diretório com carimbo de data/hora ([TIMESTAMP]-world) no intervalo 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

Quando o script for concluído, acesse o navegador do Storage no Console do GCP e clique no intervalo. Você verá um backup do diretório world com carimbo de data/hora.

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.

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

root@mc-server: crontab -e

Role até o fim do arquivo e cole a linha a seguir, 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 intervalo 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 intervalo do Cloud Storage para arquivar ou excluir backups antigos automaticamente após algum tempo ou se houver backups mais recentes disponíveis.

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

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

    Acessar o navegador do Cloud Storage

  2. Na lista de intervalos, encontre seu intervalo de backups do Minecraft.

  3. Clique em Nenhum na coluna Ciclo de vida do intervalo. 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 estabelecendo uma conexão SSH com a instância pela página Instâncias de VM no Console do GCP. Quando o terminal abrir, interrompa o servidor do Minecraft passando um comando \stop ao terminal screen em que ele está em execução:

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, estabeleça uma conexão SSH com a instância, reative o disco permanente e inicie 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. Você pode automatizar o procedimento de inicialização da seguinte maneira:

  1. Acesse a página "Instâncias de VM" no Console do GCP:

    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 denominada startup-script e copie o seguinte script no respectivo 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 desanexará a sessão.

Para automatizar o procedimento de desligamento, adicione outra chave denominada shutdown-script e copie o código a seguir no respectivo 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 o Minecraft Wiki

O Minecraft Wiki fornece muitos recursos úteis para jogadores e administradores de servidores do Minecraft.

Experimentar 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 para ver uma lista de servidores alternativos que foram otimizados para tipos de jogos, requisitos de máquina, modificações fáceis e mais.

Conhecer outros tutoriais

Conheça outros recursos do Google Cloud Platform. Veja os tutoriais.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…