Olá novamente, sou eu, Anderson!
Para quem já acompanha meus posts, vocês sabem o que significa GCP, Google Cloud Platform.
Uma VM (Máquina Virtual) é um computador baseado em software que roda dentro de outro computador físico.
Ela se comporta como uma máquina independente, com seu próprio sistema operacional, CPU, memória e armazenamento, mas na verdade compartilha os recursos físicos do sistema hospedeiro.
Essa configuração do MongoDB é voltada para aprendizado e ambientes de teste, como um ambiente de staging.
Ajuda a reduzir custos, mas para uso em produção você precisará de configurações adicionais e também deve considerar o uso de um proxy.
Um proxy entre seu backend e o banco de dados atua como uma camada intermediária que gerencia e otimiza como seu aplicativo se comunica com o banco (SQL ou MongoDB, etc.).
Nem sempre é necessário, mas é muito útil em sistemas mais complexos.
Um proxy de banco de dados fica entre seu backend (API, servidor de aplicação) e o banco real.
Quando seu app faz consultas, elas passam primeiro pelo proxy, que encaminha, filtra ou otimiza as requisições antes de enviá-las ao banco de dados real.
Exemplos:
Querem que eu fale mais sobre proxies de banco de dados?
Se sim, me avisem que escrevo um artigo só sobre isso!
Vamos criar uma VM.
Como este é apenas um caso de estudo, usaremos uma máquina simples e de baixo custo.
Como é apenas para estudo, vamos pular proteção de dados (snapshots, etc.).
Mas em produção, backups são essenciais, leve isso a sério!
Crie sua chave SSH com o PuTTYgen ou execute:
ssh-keygen -t ed25519 -C "<USER_NAME>"
Depois, exiba a chave pública (em sistemas Unix, ela estará em ~/.ssh):
cat ~/.ssh/id_ed25519.pub
Copie essa chave e adicione à sua VM na GCP:
Lembre-se: é o arquivo .pub que você deve adicionar!
Agora conecte-se:
ssh <USERNAME>@<GCP_VM_IP>
Se tudo estiver certo, você estará conectado à sua nova VM!
Se sua chave tiver um nome personalizado, use:
ssh -i ~/.ssh/<KEY_NAME> <USERNAME>@<GCP_VM_IP>
Vamos garantir que sua VM mantenha o mesmo endereço IP:
Atualize os pacotes do sistema:
sudo -s
apt update
apt upgrade
Depois instale o Docker:
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
$(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo systemctl status docker
Confirme se tudo está funcionando:
docker --version
Você deve ver algo como:
Docker version 28.5.1, build e180ab8
Se quiser permitir que outro usuário execute Docker:
sudo usermod -aG docker $USER
Agora vem a parte divertida!
Vamos formatar o segundo disco com o sistema de arquivos XFS (ideal para o MongoDB).
É por isso que adicionamos aquele disco extra antes!
Instale as ferramentas XFS:
sudo apt install xfsprogs -y
Verifique os discos:
lsblk
Provavelmente você verá /dev/sdb como o segundo disco (20 GB).
Formate-o:
sudo mkfs.xfs -f -n ftype=1 /dev/sdb
Confirme o resultado:
sudo xfs_info /dev/sdb | grep ftype
Deve retornar algo como:
naming =version 2 bsize=4096 ascii-ci=0 ftype=1 parent=0
Crie a pasta de dados do MongoDB:
sudo mkdir -p /data/mongodb
Monte o disco e defina as permissões:
sudo mount /dev/sdb /data/mongodb
sudo chown -R 999:999 /data/mongodb
Verifique:
df -Th /data/mongodb
Você verá algo como:
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb xfs 20G 424M 20G 3% /data/mongodb
Agora estamos prontos para rodar o MongoDB!
docker run -d \
--name mongodb \
-v /data/mongodb:/data/db \
-p 27017:27017 \
--ulimit nofile=64000:64000 \
mongo:7.0
Verifique se está rodando:
docker ps
Se o contêiner estiver listado e não reiniciando...
Parabéns, seu MongoDB está em execução!
Vamos dar uma olhada rápida:
docker exec -it mongodb bash
mongosh
Depois teste:
show dbs
use <DB_NAME>
show collections
Boom! Seu servidor MongoDB está rodando perfeitamente!
YEAHHHH!!! 🎉
Você conseguiu! Seu MongoDB na VM da GCP com Docker está no ar.
Espero que tenha gostado deste tutorial.
Curta, compartilhe com seus amigos e lembre-se:
o conhecimento se torna poderoso quando é compartilhado.
Nos vemos no próximo.
Anderson Arruda, encerrando… até mais!
Seja o primeiro a comentar o nosso artigo!