Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Como implantar o MongoDB no Heroku

Adrienne Tacke8 min read • Published Jan 28, 2022 • Updated Oct 26, 2022
Atlas
SNIPPET
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty

Posso implantar o MongoDB no Heroku?

Sim! É fácil de configurar e gratuito para usar com o MongoDB Atlas.
À medida que começamos a criar mais aplicativos nativos da nuvem, escolher os serviços e as ferramentas certos pode ser muito difícil. Felizmente, quando se trata de escolher um serviço de banco de dados em nuvem, o MongoDB Atlas pode ser a escolha mais fácil!
Quando emparelhado com Heroku, uma das soluções PaaS mais populares para desenvolvedores, você poderá criar e implantar aplicativos de nuvem totalmente gerenciados em pouco tempo. A melhor parte? O MongoDB Atlas integra-se facilmente com aplicativos Heroku. Tudo o que você precisa fazer é definir a string do cluster do Atlas para uma variável de configuração Heroku. Só isso é necessário!
Se você já está familiarizado com o MongoDB, usar o MongoDB Atlas com seus aplicativos de nuvem é uma escolha natural. O MongoDB Atlas é um serviço de banco de dados em nuvem totalmente gerenciado para MongoDB que automatiza o gerenciamento de clusters MongoDB na nuvem. Oferecendo recursos como backup automatizado, dimensionamento automático, tolerância a falhas multi-AZ e um conjunto completo de ferramentas de gerenciamento e análise, o Atlas é o DBaaS mais sofisticado do mundo e está a apenas alguns cliques de distância.
Para ver como é rápido entrar em operação com o MongoDB Atlas, basta seguir as próximas etapas para configurar seu primeiro cluster gratuito. Em seguida, veja com que rapidez você pode conectar seu novo cluster do Atlas ao seu aplicativo Heroku seguindo as instruções passo a passo mais adiante neste tutorial.

Pré-requisitos

Este tutorial pressupõe o seguinte:
  • Você está familiarizado com o MongoDB e escreveu aplicativos que usam o MongoDB.
  • Você está familiarizado com o Heroku e sabe como implantar aplicativos Heroku. - Você tem o Heroku CLI instalado.
  • Você conhece e tem o Git instalado.
Com essas suposições em mente, vamos começar!

Configurando seu cluster do Atlas em 5 etapas (ou menos):

Etapa 1: criar uma conta Atlas

💡 Se você já criou uma conta MongoDB usando seu endereço de e-mail, pode pular esta etapa! Acesse sua conta.
Você pode se registrar para uma conta do Atlas com seu endereço de e-mail ou conta do Google.
Inscrição no MongoDB Atlas

Etapa 2: crie sua organização e projeto

Após o registro, o Atlas solicitará que você crie uma organização e um projeto onde possa implantar seu cluster.
Crie um cluster no MongoDB Atlas

Etapa 3: implemente seu primeiro cluster

Agora você poderá selecionar entre uma variedade de opções de cluster. Para este tutorial, selecionaremos a opção Clusters compartilhados, que é o cluster da camada grátis do Atlas. Clique em "Criar um cluster" na opção Clusters compartilhados:
Na próxima página, você será solicitado a escolher algumas opções para seu cluster:
Provedor de nuvem e região
Escolha onde você deseja implantar seu cluster. É importante selecionar a região disponível mais próxima do seu aplicativo e, idealmente, a mesma região, a fim de minimizar a latência. No nosso caso, vamos escolher a região N. Virginia (us-east-1), com a AWS como nosso provedor de nuvem (já que estamos implantando no Heroku, e é onde o Heroku hospeda sua infraestrutura):
Seleção de região do provedor de nuvem no MongoDB Atlas
Camada do cluster
Aqui, você verá as camada do cluster disponíveis para a opção de clusters compartilhados. Você pode ver uma comparação de RAM, armazenamento, vCPU e preço base entre os níveis para ajudá-lo a escolher o nível certo. Para nosso tutorial, deixe o nível padrão do M0 Sandbox selecionado:
Seleção de camada do cluster no MongoDB Atlas
Configurações adicionais
Dependendo do nível escolhido, algumas opções adicionais podem estar disponíveis para você. Isso inclui a versão do MongoDB que você deseja implantar e, para clusters M2 e superiores, opções de backup. Para este tutorial, selecione a versão mais recente, MongoDB 4.4:
Configurações adicionais do MongoDB Atlas cluster
Nome do cluster
Por último, você pode dar um nome ao seu cluster. Lembre-se de que, depois de criar seu cluster, você não poderá alterá-lo! Aqui, nomearemos nosso cluster leaflix-east para nos ajudar a saber qual projeto e região esse cluster suportará:
Nome do MongoDB Atlas cluster
É isso ai! Certifique-se de revisar suas opções uma última vez antes de clicar no botão "Criar cluster".
Crie um cluster no MongoDB Atlas

Etapa 4: crie um usuário de banco de dados para seu cluster

O Atlas exige que os clientes se autentiquem como usuários do MongoDB database para acessar clusters, portanto, vamos criar um rapidamente para seu cluster.
Adicionar usuário de banco de dados no MongoDB Atlas
Como você pode ver no GIF acima, criar um usuário de banco de dados é simples. Primeiro, navegue até a seção "Acesso ao banco de dados" (localizada em "Segurança" na barra de navegação à esquerda). Clique em “Criar um novo usuário de banco de dados”. Um prompt aparecerá onde você poderá escolher o método de autenticação desse usuário e os privilégios de usuário de banco de dados.
Selecione o método de autenticação "Senha" e forneça a esse usuário um nome de usuário e uma senha. Por conveniência, você pode até gerar automaticamente uma senha segura diretamente no Atlas, o que é altamente recomendável.
💡 Depois de gerar automaticamente sua senha, clique em Copiar e armazene-a em um local seguro por enquanto. Precisaremos dela mais tarde ao nos conectarmos ao nosso cluster!
Escolha uma função integrada para este usuário. Neste tutorial, estou escolhendo "Administrador do Atlas", que concede a maioria dos privilégios.
Por fim, clique no botão "Adicionar usuário". Você criou o primeiro usuário de banco de dados do seu cluster!

Etapa 5: conceda aos endereços IP autorizados acesso ao seu cluster

A última etapa da configuração do cluster é escolher quais endereços IP têm permissão para acessá-lo. Para entrar em operação rapidamente, defina seu cluster para permitir acesso de qualquer lugar:
Permitir acesso de qualquer lugar no MongoDB Atlas
Parabéns! Você acabou de configurar seu cluster Atlas com sucesso!
💡 Observação: você provavelmente não deseja permitir esse tipo de acesso em um ambiente de produção. Em vez disso, você deve identificar os endereços IP exatos nos quais você sabe que seu aplicativo será hospedado e definir explicitamente quais endereços IP, ou intervalos de IP, devem ter acesso ao seu cluster. Depois de configurar seu aplicativo Heroku, siga as etapas na seção "Configurando endereços IP do Heroku no Atlas" abaixo para ver como adicionar os endereços IP adequados ao seu aplicativo Heroku.

Configurando o Heroku para apontar para o MongoDB Atlas cluster usando variáveis de configuração

A configuração rápida do nosso cluster do Atlas foi bastante empolgante, mas acreditamos que você achará esta seção ainda mais emocionante!
Os aplicativos no Heroku por meio do Atlas são simples de configurar. Tudo o que você precisa fazer é criar uma variável de configuração no nível do aplicativo que contenha a string de conexão do cluster. Uma vez configurado, você pode acessar com segurança essa variável de configuração em seu aplicativo!
Veja como fazer isso:

Etapa 1: faça login no CLI do Heroku

1heroku login
Esse comando abre seu navegador na página de login do Heroku. Se você já estiver conectado, basta clicar no botão "Entrar". Alternativamente, você pode usar o sinalizador -i para fazer login por meio da linha de comando.

Etapa 2: clonar aplicativo de demonstração

Para continuar este tutorial, criei um aplicativo Node de demonstração que usa o MongoDB Atlas e é um aplicativo que gostaria de implantar no Heroku. Clone-o e navegue até seu diretório:
1git clone https://github.com/adriennetacke/mongodb-atlas-heroku-leaflix-demo.git
2
3cd mongodb-atlas-heroku-leaflix-demo

Etapa 3: criar o aplicativo no Heroku

1heroku create leaflix
Como você pode ver, eu nomeei o meu leaflix.

Obtenha sua string de conexão do cluster Atlas

Volte para o painel do seu cluster do Atlas, pois precisaremos pegar nossa string de conexão.
Clique no botão "Conectar".
Escolha a opção "Conectar seu aplicativo".
Aqui, você verá a string de conexão de que precisaremos para nos conectar ao nosso cluster. Copie a string de conexão.
Cole a string em um editor; precisaremos modificá-la um pouco antes de podermos defini-la como uma variável de configuração do Heroku.
Como você pode ver, o Atlas adicionou o nome de usuário do usuário do banco de dados que criamos anteriormente. Para concluir a string de conexão e torná-la válida, substitua a <senha> por sua senha de usuário do banco de dados e <dbname> por sample_mflix, que é o conjunto de dados de amostra que nosso aplicativo de demonstração usará.
💡 Se você não tiver a senha do usuário de banco de dados à mão, gere uma nova automaticamente e use-a em sua string de conexão. Lembre-se de atualizá-la se você gerá-la automaticamente de novo! Você pode encontrar a senha acessando Acesso ao banco de dados > clicando em "Editar" no usuário de banco de dados desejado > Editar senha > Gerar senha segura automaticamente

Defina uma variável de configuração MONGODB_URI

Agora que formamos adequadamente nossa string de conexão, é hora de armazená-la em uma variável de configuração do Heroku. Vamos definir nossa string de conexão como uma variável de configuração chamada MONGODB_URI:
1heroku config:set MONGODB_URI="mongodb+srv://yourUsername:yourPassword@yourClusterName.n9z04.mongodb.net/sample_mflix?retryWrites=true&w=majority"
Algumas coisas importantes a serem observadas:
  • Este comando é uma linha inteira.
  • Como o formato de nossa string de conexão contém caracteres especiais, é necessário colocá-la entre aspas.
Você só precisa fazer isso! Agora você adicionou corretamente a string de conexão do seu cluster do Atlas como uma variável de configuração do Heroku, o que significa que você pode acessar essa string com segurança quando o aplicativo for implantado no Heroku.
💡 Você também pode adicionar esta variável de configuração através da aba "Configurações" do seu aplicativo no dashboard do Heroku. Vá para seus aplicativos > leaflix > Configurações. Na seção Variáveis de configuração, clique no botão "Revelar variáveis de configuração" e adicione sua variável de configuração lá.
Painel de configuração do Heroku
A última etapa é modificar o código do seu aplicativo para acessar essas variáveis.

Conectando seu aplicativo ao MongoDB Atlas cluster usando valores de variáveis de configuração do Heroku

Em nosso aplicativo de demonstração, você verá que codificamos a string de conexão do cluster do Atlas. Devemos refatorar nosso código para usar a variável de configuração do Heroku que criamos anteriormente.
As variáveis de configuração são expostas ao código do seu aplicativo como variáveis de ambiente. O acesso a essas variáveis depende da linguagem do seu aplicativo; por exemplo, você usaria chamadas System.getenv('key') em Java ou chamadas ENV['key'] em Ruby.
Sabendo disso, e sabendo que nosso aplicativo está escrito em Node, podemos acessar nosso cluster do Atlas através da propriedade process.env, disponibilizada para nós em Node.js. No arquivo server.js, altere a constante uri para isto:
1const uri = process.env.MONGODB_URI;
É isso ai! Como adicionamos nossa string de conexão do cluster do Atlas como uma variável de configuração do Heroku, nosso aplicativo poderá acessá-la com segurança depois de implantada.
Salve esse arquivo, confirme essa alteração e implante seu código no Heroku.
1git commit -am "fix: refactor hard coded connection string to Heroku config var"
2
3git push heroku master
Seu aplicativo agora está implantado! Você pode verificar se pelo menos uma instância do Leaflix está em execução usando este comando:
1heroku ps:scale web=1
Se você vir uma mensagem que diz Scaling dynos... done, now running web at 1:Free, saberá que pelo menos uma instância está ativa e em execução.
Finalmente, vá visitar seu aplicativo. Você pode fazer isso com este comando útil:
1heroku open
Se tudo estiver bem, você verá algo assim:
Aplicativo Leaflix
Quando você clicar no botão "Precisar dar risada?", nosso aplicativo escolherá aleatoriamente um filme que tenha o gênero "Comédia" no campo de gêneros. Isso vem diretamente do nosso cluster do Atlas e usa o conjunto de dadossample_mflix.

Configurando endereços IP do Heroku no MongoDB Atlas

Temos nosso cluster instalado e funcionando e nosso aplicativo está implantado no Heroku!
Para nos guiar neste tutorial, inicialmente configuramos nosso cluster para aceitar conexões de qualquer endereço IP. Idealmente, você gostaria de restringir o acesso apenas ao seu aplicativo, e há algumas maneiras de fazer isso no Heroku.
A primeira maneira é usar um complemento para fornecer um endereço IP de saída estático para seu aplicativo que você pode usar para restringir o acesso no Atlas. Você pode encontrar alguns listados aqui:
Outra forma seria usar os Espaços Privados do Heroku e usar os IPs estáticos de saída para seu espaço. Essa é uma opção mais cara, mas não requer um complemento separado.
Existem alguns documentos e artigos que sugerem que você pode usar intervalos de IP publicados pela AWS ou pelo Heroku para permitir o acesso aos IPs originados na sua região da AWS ou ao Heroku Dynos localizado nessas regiões. Embora isso seja possível, não é recomendado, pois esses intervalos estão sujeitos a alterações ao longo do tempo. Em vez disso, recomendamos um dos dois métodos acima.
Depois de ter o(s) endereço(s) IP do seu aplicativo, você pode usá-lo(s) para configurar o firewall no Atlas.
Acesse seu cluster do Atlas, exclua todas as faixas de IP existentes e adicione-as à sua lista de permissões:
MongoDB Atlas Adicionar Selecionar faixa de IP
É claro que, o tempo todo, você estará se comunicando entre seu aplicativo e o banco de dados do Atlas com segurança por meio da criptografia TLS.

Conclusão

Fizemos muita coisa em um tempo relativamente curto! Recapitulando:
  • Configuramos e implantamos um cluster do Atlas em cinco etapas ou menos.
  • Criamos uma variável de configuração no Heroku para armazenar com segurança nossa string de conexão do Atlas, permitindo-nos conectar o cluster do Atlas ao nosso aplicativo Heroku.
  • Aprendemos que as variáveis de configuração do Heroku são expostas ao código do nosso aplicativo como variáveis de ambiente.
  • Refatoramos a string URI codificada em nosso código para apontar para uma variável process.env.MONGODB_URI.
Tem perguntas adicionais ou um caso de uso específico não abordado aqui? Vá para os fóruns da comunidade de desenvolvedores do MongoDB e inicie uma discussão! Estamos ansiosos para ouvir você.
E para saber mais sobre o MongoDB Atlas, confira esta excelente introdução ao MongoDB Atlas em 10 minutos, feita por Jesse Hall, um colega defensor dos desenvolvedores!

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Conecte com segurança o MongoDB aos clusters Kubernetes oferecidos na nuvem


Sep 09, 2024 | 4 min read
Tutorial

MongoDB Charts incorporando SDK com React


Sep 09, 2024 | 5 min read
Tutorial

É seguro sair? Investigação de dados com o MongoDB


Sep 23, 2022 | 11 min read
Artigo

Usando o Atlas Data Federation para controlar o acesso ao seu nó de análise


Aug 28, 2024 | 9 min read
Sumário