O MongoDB Atlas é fácil e gratuito de configurar e implantar o MongoDB no Heroku. O MongoDB Atlas é comumente referido como a plataforma de aplicativos de dados multinuvem. É um serviço de banco de dados integrado de dados e nuvem que simplifica e acelera a forma como os usuários constroem com dados.
Quando você começa a criar aplicativos nativos da nuvem mais complexos, selecionar as ferramentas e serviços adequados tende a ser bastante complicado. No entanto, esse não é o caso ao escolher o melhor serviço de banco de dados em nuvem, pois o MongoDB Atlas é sua melhor solução.
Por outro lado, Heroku é uma plataforma como serviço (PaaS) que fornece aos desenvolvedores a capacidade de executar, construir, manipular e operar aplicativos na nuvem. Heroku suporta uma infinidade de linguagens de programação.
Este guia de artigos ilustrará como implantar o MongoDB no Heroku. Estaremos usando a versão do MongoDB Atlas, pois ela se integra facilmente com a maioria dos aplicativos Heroku. Esse processo pode parecer complexo no começo, mas você perceberá que nada é complicado quando mergulhar fundo nele. Tudo o que é necessário é definir sua string de conexão do cluster MongoDB Atlas para uma variável de configuração Heroku conhecida, e você está pronto para ir.
A edição Atlas é um serviço MongoDB em nuvem totalmente gerenciado que automatiza o gerenciamento de cluster MongoDB na nuvem. Ele oferece aos usuários dimensionamento automático, backups automatizados, gerenciamento de conjunto completo, ferramentas analíticas e uma falha de tolerância multi-AZ. O MongoDB Atlas está entre os DBaaS mais sofisticados.
Siga as etapas fornecidas aqui para saber como ativar o MongoDB e executá-lo rapidamente. Você também poderá ver como conectar o cluster MongoDB Atlas aos aplicativos Heroku seguindo o guia detalhado fornecido neste artigo.
Como implantar o MongoDB no Heroku
Este guia de artigos pressupõe que você tenha os seguintes pré-requisitos:
- Você conhece bem o MongoDB e escreveu aplicativos MongoDB
- Você conhece o Heroku e já implantou aplicativos Heroku antes
- Você instalou a CLI do Heroku
- Você conhece o Git e o instalou.
Com os pré-requisitos mencionados, vamos aprender mais sobre o assunto discutido acima.
Configurando o cluster do MongoDB Atlas
Primeiro, veremos como configurar o MongoDB Atlas Cluster em menos de cinco etapas.
Etapa 1:criando uma conta do MongoDB Atlas
Observação: Se você já criou uma conta do MongoDB com seu endereço de e-mail, pule o processo de registro e faça login na sua conta.
Registrar-se para uma nova conta do MongoDB Atlas é muito fácil. Você pode optar por usar seu endereço de e-mail ou sua conta do Google para se registrar.
O processo é totalmente gratuito; portanto, você não precisa se preocupar com cobranças adicionais.
Siga este link para se registrar gratuitamente para uma conta do MongoDB Atlas. Basta preencher seus dados e clicar no botão “Começar gratuitamente” para obter sua conta Atlas gratuita.
Depois de ter uma conta Atlas, vá para a próxima etapa
Etapa 2:criando seu projeto e organização
O MongoDB Atlas, por padrão, solicitará que você crie uma organização e um projeto após concluir o processo de registro. Preencha rapidamente os detalhes necessários para concluir este processo e passar para a próxima etapa. A organização e o projeto serão usados para implantar seu cluster no futuro.
Etapa 3:implantar o cluster
Nesta fase, você selecionará um cluster de várias opções de cluster. Para este guia de artigos, usaremos a opção “Shared Cluster”, que é a opção de cluster gratuita fornecida pelo MongoDB Atlas. Abaixo da opção “Shared Cluster”, clique em “Create”.
Você será solicitado a selecionar algumas opções para seu cluster na próxima página, conforme destacado abaixo:
Provedor de nuvem e região
Aqui você deve escolher onde seu cluster será implantado. É essencial selecionar uma região mais próxima de sua aplicação. Idealmente, você deve selecionar uma região constante para minimizar os problemas relacionados à latência. Estaremos usando esta Região, “N. Virginia (us-east-1)”, com a AWS como nosso provedor de nuvem de origem para este guia. Selecionamos a AWS como nosso provedor de nuvem, pois estaremos implantando no Heroku e hospedando sua infraestrutura na AWS.
Nível de cluster
Nesta subseção, você verá as camadas de cluster disponíveis para a opção de cluster que escolhemos, neste caso, as opções de cluster compartilhado. Aqui, você verá uma comparação de RAM, armazenamento, preço base de camadas e vCPU. Essas comparações ajudarão você a selecionar o nível correto adequado ao seu projeto. Vamos deixá-lo para o nível padrão “M0 Sandbox” para este guia.
Configurações adicionais
Esta seção depende do nível que você escolher. Você pode obter algumas configurações adicionais dependendo da camada selecionada. Essas configurações incluirão opções de backup e versões do MongoDB a serem implantadas. Selecione MongoDB versão 4.4 e deixe a opção de backup desativada.
Nome do cluster
Esta é a última opção. Aqui ajudaria se você nomeasse seu cluster. Vou chamar nosso cluster de “Leafix”. Lembre-se de que você não poderá alterá-lo depois de criar o cluster.
Nota:É aconselhável rever as opções selecionadas e fazer as alterações necessárias antes de criar o cluster usando o botão “Create Cluster”.
Etapa 4:crie um usuário de banco de dados para seu cluster recém-criado
O MongoDB Atlas exige que os clientes se autentiquem como usuários do banco de dados MongoDB para acessar clusters. Siga as etapas fornecidas para criar um usuário de banco de dados para seu cluster.
- Navegue até a seção "Acesso ao banco de dados". Ele está localizado na guia "Segurança" no lado esquerdo.
- Clique na opção “Adicionar um novo usuário do banco de dados”.
- Um prompt será exibido. Insira seu método de autenticação e privilégios de usuário do banco de dados
- Use a “Senha” como método de autenticação e forneça a senha e o nome de usuário.
Observação: É altamente recomendável gerar automaticamente uma senha forte do Atlas para evitar complicações relacionadas à insegurança. Depois de gerar a senha automaticamente, copie e salve-a em um local conveniente para recuperá-la facilmente no futuro. Esta etapa é vital, pois exigiremos a senha durante a conexão com o cluster.
- Conceda o máximo de privilégios ao usuário selecionando a opção “Atlas admin”.
- Quando terminar, clique em “Adicionar usuário” para criar um usuário de banco de dados.
Etapa 5:conceder acesso ao cluster de endereços IP autorizados
Esta é a etapa final ao configurar o cluster do MongoDB Atlas. Esta seção escolherá os endereços IP que nos permitem acessar o cluster Atlas. Para conceder a autorização, siga os passos aqui mencionados:
- Em "Segurança", selecione "Acesso à rede".
- Em seguida, escolha "Adicionar endereço IP".
- Selecione “Permitir acesso de qualquer lugar” e clique no botão “Confirmar” para concluir o processo.
Isso é tudo. Você configurou com sucesso seu cluster do MongoDB Atlas.
Observação :você não deseja permitir esse tipo de acesso ao endereço IP em um ambiente de produção devido a problemas de segurança. Você precisa identificar o endereço IP exato para seu aplicativo e definir explicitamente o intervalo de endereços IP. Esse processo é adaptado para aprimorar a segurança do seu cluster.
Conectando-se ao seu cluster
Para se conectar ao cluster recém-criado, siga este guia:
- Na seção "Armazenamento de dados" na barra de navegação à esquerda, clique em "Clusters".
- Clique na guia "Conectar"
- Escolha a versão do driver e copie apenas a string de conexão
Quando terminar, atualize a string de conexão. Novamente, não deixe de adicionar seu nome de usuário e senha.
Criando uma conta Heroku
Criar uma conta Heroku é muito fácil. Primeiro, visite o site oficial do Heroku e inscreva-se como fizemos no MongoDB Atlas. Depois de concluir sua conta Heroku, prossiga e instale a CLI do Heroku.
Instalar a CLI do Heroku
É vital garantir que você tenha o Git instalado em seu sistema operacional Linux, pois a CLI do Heroku requer o Git. Git é um sistema de controle de versão popular comumente usado pela maioria dos desenvolvedores. Instalar o Git é muito fácil. Abra seu terminal e execute o comando abaixo:
sudo apt-get install git-all
Saída:
Esse comando instalará o Git em seu sistema operacional Linux. Depois disso, execute este outro comando para instalar o Heroku no seu sistema operacional Linux:
sudo snap install --classic heroku
Saída:
Dê tempo ao terminal para executar o comando e instale o Heroku completamente.
Faça login e crie um novo aplicativo no site Heroku
Acreditamos que você está acompanhando o artigo de perto e criou uma conta Heroku. Em caso afirmativo, abra seu painel Heroku. Insira os detalhes que você usou para criar sua conta Heroku para fazer login no seu painel. Depois de fazer login, vá para a próxima etapa para criar um novo aplicativo:
- Navegue para heroku.com/apps
- Selecione Novo>Criar novo aplicativo>Escolher região>Criar aplicativo.
- Seja paciente enquanto o aplicativo é criado.
- Quando o processo terminar, você será redirecionado ao seu painel. Selecione a seção "Implantar"
Conectando o aplicativo Heroku a repositórios locais
Siga os guias de implantação fornecidos na seção de implantação deste artigo que você selecionou anteriormente.
Ainda assim, faça login no Heroku na seção “Implantar” que selecionamos anteriormente.
Execute os seguintes comandos (também especificados na seção Deploy) para se conectar ao Heroku e criar um novo Dyno a partir do diretório raiz do servidor/projeto:
Observação: Os colchetes angulares “<> ” usado nos exemplos abaixo denotam os valores de identificador/parâmetro/argumento fornecidos pelo usuário. Ao executar os comandos, você deve deixá-los de fora.
# Adicione o controle remoto Heroku
heroku git:remote -a <name-of-the-newly-created-app>
# Dê uma olhada nos controles remotos disponíveis.
# A conexão com o novo repositório remoto ‘heroku’ deve estar visível.
git remote -v
# Na ramificação de desenvolvimento, confirme o trabalho mais recente.
git add . git commit -m 'Write a clear, meaningful commit message here.' git push origin <development-branch-name>
# As ramificações devem ser verificadas na ramificação mestre.
git checkout master
# As atualizações da ramificação de desenvolvimento são mescladas.
git merge <development-branch-name> git push heroku master
Configurando o Heroku para se conectar ao MongoDB Atlas Cluster usando variáveis de configuração
Nós nos divertimos muito configurando rapidamente nosso cluster Atlas, mas achamos que você vai gostar ainda mais desta seção!
Os aplicativos Heroku que são suportados pelo Atlas são fáceis de construir. Construa uma var de configuração no nível do aplicativo que contém a string de conexão do seu cluster. Você pode acessar com segurança essa var de configuração em seu aplicativo depois de configurado!
É assim que se faz:
Etapa 1:abra a CLI do Heroku e faça login.
heroku login
Este comando leva você à página de login do Heroku no seu navegador da web. Clique no botão "Log in" se você já estiver logado. Você também pode usar o sinalizador -i para fazer login a partir da linha de comando.
Etapa 2:fazer uma cópia do meu aplicativo de demonstração
Construí um protótipo de aplicativo Node que usa o MongoDB Atlas e gostaria de publicar no Heroku para continuar esta lição. Clone-o e vá para o seguinte diretório:
git clone https://github.com/adriennetacke/mongodb-atlas-heroku-leaflix-demo.git cd mongodb-atlas-heroku-leaflix-demo
Saída:
Etapa 3:crie um aplicativo Heroku
heroku create leaflix
Saída:
Como você pode ver, dei um nome ao meu leaflix.
Obtenha sua string de conexão do Atlas Cluster
Por favor, retorne ao painel do seu cluster Atlas para recuperar nossa string de conexão.
- Selecione "Conectar" no menu suspenso.
- Selecione "Conectar seu aplicativo" no menu suspenso.
A string de conexão que precisaremos para conectar ao nosso cluster será encontrada aqui. Anote a cadeia de conexão.
Cole a string de conexão em um editor; faremos algumas alterações antes de atribuí-lo a uma variável de configuração do Heroku.
A Atlas incluiu facilmente o nome de usuário do banco de dados que criamos anteriormente, como você pode ver. Substitua a “senha” pela senha do usuário do banco de dados pessoal e “dbname” por “sample_mflix”, que é o conjunto de dados de amostra que nosso aplicativo de demonstração usará para completar a string de conexão e torná-la válida.
Observação:se você não tiver a senha do usuário do banco de dados, gere uma automaticamente e use-a na string de conexão. Se você gerar automaticamente novamente, lembre-se de atualizá-lo! Vá para Acesso ao banco de dados> Clique em “Editar” no usuário do banco de dados para o qual você deseja encontrar a senha> Redefinir sua senha> Gerar automaticamente outra senha segura.
Criar uma variável de configuração MONGODB_URI
Agora que a criamos corretamente, é hora de salvar nossa string de conexão em uma variável de configuração do Heroku. Defina a variável de configuração MONGODB_URI para nossa string de conexão:
heroku config:set MONGODB_URI="mongodb+srv://yourUsername:[email protected]/sample_mflix?retryWrites=true&w=majority"
Aqui estão alguns pontos-chave a serem lembrados:
- Este comando consiste em apenas uma linha.
- Como o formato da nossa string de conexão contém caracteres especiais, ela deve ser colocada entre aspas.
É simples assim! Você adicionou com sucesso a string de conexão do seu cluster Atlas a uma variável de configuração Heroku, permitindo que você a acesse com segurança depois que seu aplicativo for implantado no Heroku.
Observação: Você também pode inserir esta var de configuração na guia "Configurações" do Heroku Dashboard para seu aplicativo. Vá para Leaflix> Configurações em seus aplicativos. Clique no botão “Reveal Config Vars” na seção Config Vars e insira sua config var lá.
A etapa final é alterar o código do seu aplicativo para permitir o acesso a essas variáveis.
Usando valores var de configuração do Heroku para conectar seu aplicativo a um cluster do MongoDB Atlas
Você notará que codificamos nossa string de conexão do cluster Atlas em nosso aplicativo de demonstração. Precisamos retrabalhar nosso código para usar a variável de configuração Heroku gerada anteriormente.
As variáveis de ambiente são usadas para expor vars de configuração ao código do seu aplicativo. O idioma escolhido para acessar essas variáveis determinará como você as acessa; por exemplo, em Java, você usaria System.getenv('key') chamadas, e em Ruby, você usaria ENV['key'] chamadas.
Sabendo que nosso aplicativo está escrito em Node, podemos usar a variável process.env no Node.js para conectar ao nosso cluster Atlas. Altere a constante uri no arquivo server.js para:
const uri = process.env.MONGODB_URI;
Isso conclui nossa discussão. Nosso aplicativo acessará com segurança nossa string de conexão do cluster Atlas uma vez implantado porque o adicionamos como uma var de configuração do Heroku.
Salve o arquivo, confirme a modificação e implante no Heroku.
git commit -am "fix: refactor hard-coded connection string to Heroku config var" git push heroku master
Seu aplicativo já foi implantado! Usando este comando, você pode verificar novamente se pelo menos uma instância do Leaflix está em execução:
heroku ps:scale web=1
Você saberá que pelo menos uma instância está em execução se receber um aviso informando:“Scaling dynos… done, running web at 1:Free”.
Por fim, navegue até o site do seu aplicativo. Você pode fazer isso seguindo os passos abaixo:
heroku open
Quando você pressiona o botão "Precisa de uma risada?" botão, nosso software selecionará um filme baseado na categoria “Comédia” na área de gêneros. Se tudo estiver em ordem, você deverá ver algo assim:o conjunto de dados sample_mflix é usado neste exemplo, que vem direto do nosso cluster Atlas.
Configurando endereços IP para Heroku no MongoDB Atlas
Nosso cluster já está operacional e nosso aplicativo já está disponível no Heroku!
Configuramos nosso cluster para aceitar conexões de qualquer endereço IP para nos guiar pelo guia do artigo. Você prefere limitar o acesso ao seu aplicativo apenas, e existem algumas opções no Heroku para fazer isso.
A primeira opção é utilizar um complemento para fornecer ao seu aplicativo um endereço IP de saída estático que você pode usar para restringir o acesso no Atlas. Alguns exemplos podem ser encontrados aqui.
Outra opção é usar o Heroku Private Spaces e usar os IPs de saída estáticos do espaço. Esta é uma escolha mais cara, mas elimina um complemento adicional.
Existem vários documentos e artigos que afirmam que você pode usar intervalos de IP da AWS ou Heroku para fornecer acesso a IPs originários de sua área da AWS ou Heroku Dynos nessas regiões. Embora isso seja concebível, não é aconselhável porque esses intervalos podem ser alterados com o tempo. Então, sugerimos usar uma das duas abordagens listadas acima.
Você pode usar o(s) endereço(s) IP de seu aplicativo para configurar seu firewall no Atlas assim que os tiver.
Remova quaisquer intervalos de IP existentes do seu cluster Atlas e adicione-os à sua lista de permissões. Você pode fazer isso seguindo o procedimento que usamos para “Adicionar endereços IP e excluir os intervalos de IP existentes”.
Isso é tudo! Você implantou com sucesso o MongoDB no Heroku