Neste artigo, iremos configurar um servidor em uma nuvem pública para servir um aplicativo de jogo usando a infraestrutura como serviço (IaaS) fornecida pela plataforma em nuvem do Google. No entanto, o processo será quase o mesmo para qualquer outra plataforma de nuvem pública.

Visão geral das etapas:

  1. Configure a conta e crie o projeto em qualquer nuvem pública (por exemplo, plataforma de nuvem do Google)
  2. Crie uma máquina virtual com a configuração necessária e imagem de inicialização de disco na região e zona preferida (digamos, máquina Debian GNU / Linux 9 (extensão) com pelo menos 50 GB de tamanho de disco)
  3. Instale todos os requisitos de tempo de execução e dependências na máquina virtual (digamos JRE para aplicativo java)
  4. Configure as regras de firewall para a instância virtual para permitir o tráfego do cliente.
  5. Certifique-se de que o servidor esteja funcionando o tempo todo.

Ferramentas usadas:

Neste artigo, apresentaremos as seguintes ferramentas e tecnologias:

Agora siga as etapas abaixo para configurar o servidor.

PASSO 1:

  • Vá para o console da nuvem do Google  
  • Inscreva-se usando a conta do Google e, em seguida, crie o projeto clicando na lista suspensa selecionar projeto na barra superior e, a seguir, clicando em um novo projeto 

Observação: se você não tiver uma conta de teste gratuita ativada, será cobrado pelo provisionamento e uso de quaisquer recursos na nuvem do Google 

Após a configuração inicial, você deve ver uma interface semelhante:

Observação: estamos usando a conta de prática do Qwiklabs aqui.

PASSO 2:

Nesta etapa, temos que criar uma instância de VM com a configuração necessária e também adicionaremos um disco permanente SSD adicional de 50 GB. Abra o Google Cloud Shell clicando no botão mostrado abaixo:

  • Clique em continuar ou autorizar se solicitado,
  • Digite o seguinte comando para criar a instância
$ gcloud beta compute --project=qwiklabs-gcp-04-f7bbc9a0604c instances create mc-server
 --zone=us-central1-a --machine-type=e2-medium --subnet=default --address=35.232.183.36 
 --network-tier=PREMIUM --maintenance-policy=MIGRATE 
 --service-account=875541841397-compute@developer.gserviceaccount.com 
 --scopes=https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/devstorage.read_write --tags=minecraft-server --image=debian-9-stretch-v20201216 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard --boot-disk-device-name=mc-server --create-disk=mode=rw,size=50,type=projects/qwiklabs-gcp-04-f7bbc9a0604c/zones/us-central1-a/diskTypes/pd-ssd,name=minecraft-disk,device-name=minecraft-disk --reservation-affinity=any

Pode demorar cerca de um minuto, o resultado deve ser assim:

  • Depois que o comando for executado, na barra de navegação, acesse Compute Engine> Instâncias de VM

Nota: Os “endereços IP externos” da máquina virtual serão usados ​​para verificar o funcionamento do servidor.

  • Clique em SSH para abrir um terminal e se conectar. (abrirá uma nova janela)

Como adicionamos um disco, precisamos montá-lo usando os seguintes comandos na instância do Linux.

  • Para criar um diretório que sirva como ponto de montagem para o disco de dados, execute o seguinte comando:
$ sudo mkdir -p /home/minecraft
  • Para formatar o disco, execute o seguinte comando:
$ sudo mkfs.ext4 -F -E lazy_itable_init=0,\
lazy_journal_init=0,discard \
/dev/disk/by-id/google-minecraft-disk
  • Para montar o disco, execute o seguinte comando:
$ sudo mount -o discard,defaults /dev/disk/by-id/google-minecraft-disk /home/minecraft

ETAPA 3:

  • Para atualizar os repositórios Debian na VM, execute o seguinte comando:
$ sudo apt-get update
  • Depois que os repositórios forem atualizados, para instalar o JRE headless, execute o seguinte comando:
$ sudo apt-get install -y default-jre-headless
  • Para navegar até o diretório onde o disco permanente está montado, execute o seguinte comando:
$ cd /home/minecraft

O wget é usado para fazer download do arquivo JAR. 

  • Para instalar o wget , execute o seguinte comando:
sudo apt-get install wget
  • Se solicitado a continuar, digite Y
  • Para baixar o arquivo JAR do servidor Minecraft atual (1.11.2 JAR), execute o seguinte comando:
$ sudo wget https://launcher.mojang.com/v1/objects/d0d0fe2b1dc6ab4c65554cb

  • Para inicializar o servidor do Minecraft, execute o seguinte comando:
$ sudo java -Xmx1024M -Xms1024M -jar server.jar nogui

Temos que aceitar o Contrato de Licença do Usuário Final (EULA), a fim de executar o servidor.

  • Para editar o EULA, execute o seguinte comando:
$ sudo nano eula.txt
# Change the last line of the file from eula=false to eula=true

Depois de editar eula.txt, ele deve ter a seguinte aparência:

 

  • Para salvar e sair do editor de texto Nano, pressione CTRL + o, Enter, CTRL + x

.PASSO 4: 

  • Acesse o terminal de nuvem do Google no console e digite o seguinte comando para criar a regra de firewall,
$ gcloud compute --project=qwiklabs-gcp-04-f7bbc9a0604c 
firewall-rules create minecraft-rule --direction=INGRESS 
--priority=1000 --network=default --action=ALLOW --rules=tcp:25565 
--source-ranges=0.0.0.0/0 --target-tags=minecraft-server

A saída deve ser semelhante a esta:

PASSO 5:

Para ter certeza de que o servidor funciona o tempo todo, podemos usar o aplicativo “screen”.

  • Agora vá novamente para a sessão SSH da máquina virtual e instale o aplicativo “Screen” usando o comando abaixo:
$ sudo apt-get install -y screen
  • Para iniciar seu servidor Minecraft em um terminal virtual de tela, execute o seguinte comando: (Use a sinalização -S para nomear seu terminal mcs)
$ sudo screen -S mcs java -Xmx1024M -Xms1024M -jar server.jar nogui

Demorará algum tempo para iniciar o servidor. A saída deve ser semelhante a esta:

Agora, o servidor continuará a funcionar em segundo plano,

  • Use este site para verificar se o servidor do Minecraft estava funcionando ou não.

O status do servidor de trabalho deve ser semelhante à imagem mostrada abaixo:

Observação: você deve usar o endereço IP externo da máquina virtual (vá para o menu Navegação> Compute Engine> Instâncias virtuais para obter o endereço IP externo da máquina virtual).