Perguntas frequentes: Opções de cadeia de conexão
Nesta página
- Por que meu cluster tem múltiplas cadeias de conexão?
- O que isso significa para os clusters do Google Cloud ou Azure no modo somente emparelhamento?
- O meu cluster do Azure com peering VNet pode abranger várias regiões?
- Como faço para desativar o modo somente de emparelhamento?
- Como isso afeta o emparelhamento da AWS VPC quando uso o DNS personalizado?
- Como identifico qual cadeia de conexão meu aplicativo usa?
- Preciso atualizar minha cadeia de conexão ao migrar para um provedor de nuvem diferente de um cluster
M0
,M2
ouM5
para outro? - Preciso atualizar minha cadeia de conexão ao migrar para um provedor de nuvem diferente de um cluster dedicado para outro?
O Atlas fornece várias cadeias de conexão. Estas strings permitem que você se conecte aos seus clusters a partir de contextos públicos e privados. O Atlas sempre atribui strings de conexão únicas a clusters para que nenhum cluster compartilhe nome de host ou strings de conexão no Atlas.
Por que meu cluster tem múltiplas cadeias de conexão?
Para se conectar ao Atlas, aponte seus aplicativos para um URI para se comunicar com um cluster. O Atlas cria clusters com mais de um nó ou host. Cada nó tem seu próprio nome de host que se resolve para um endereço IP. O URI, conhecido como uma connection string, ao qual o Atlas se conecta, pode ter mais de um nome de host. Configure o Atlas para aceitar conexões para os hosts de cluster a partir de endereços IP permitidos.
O Atlas protege conexões de endereços IP públicos por meio de autenticação e TLS. Se você quiser se conectar a endereços IP privados, você pode usar:
Essas funcionalidades gerenciam a comunicação em endereços IP internos dentro de redes seguras.
O Atlas fornece mais de uma cadeia de conexão ao usar redes seguras. Cada rede oferece uma string que se resolve para endereços IP diferentes.
Todos os clusters têm uma string de conexão padrão. Isso é resolvido para o cluster:
Endereços IP públicos para conexões de Internet e
Endereços IP privados de VPC para clusters da AWS quando resolvidos a partir de uma VPC emparelhada.
Use essa string para aplicativos que se conectam pela Internet ou que se conectam a clusters emparelhados na AWS.
Os clusters com redes emparelhadas têm uma cadeia de conexão de IP privado para emparelhamento. Essa string é resolvida para endereços IP disponíveis para:
Redes emparelhadas no Azure ou Google Cloud
Clusters emparelhados da AWS com um serviço de DNS personalizado.
Use esta cadeia de conexão com aplicativos conectados:
Em uma rede emparelhada do Azure ou do Google Cloud
Para clusters AWS quando usar a AWS com DNS personalizado.
Os clusters da AWS ou do Azure em regiões com endpoints privados configurados têm uma ou mais connection strings. Cada string é resolvida para o endereço IP privado de uma interface de rede em sua VPC ou VNet que se conecta diretamente a um balancer de carga na VPC ou VNet do Atlas. Use essas connection strings com aplicativos que se conectam a endpoints privados.
O que isso significa para clusters do Google Cloud ou do Azure no modo somente emparelhamento?
Antes de 31 de março de 2020, era necessário habilitar o modo somente emparelhamento para se conectar a bancos de dados em clusters do Azure ou do Google Cloud em rede de mesmo nível. Este modo:
Afetou a resolução global de DNS e
Limitou quaisquer conexões de banco de dados fora da rede com emparelhamento.
Vários horizontes elevam essas restrições e desbloqueiam as seguintes funcionalidades adicionais:
Para aproveitar várias possibilidades, execute as seguintes tarefas:
Atualize as cadeias de conexão existentes do seu aplicativo para usar IP privado para cadeias de conexão de emparelhamento.
Conecte-se usando as strings descritas em Por que meu cluster tem várias cadeias de conexão.
Observação
No momento, você pode continuar se conectando aos seus clusters usando cadeias de conexão habilitadas para emparelhamento existentes. O modo Peering-Only impede o acesso à funcionalidade aprimorada e às limitações reduzidas de vários horizontes. Para usar os novos recursos e remover as limitações antigas, o MongoDB exige que você use as novas cadeias de conexão.
O meu cluster do Azure com o emparelhamento de VNet pode abranger várias regiões?
Sim.
Altere seus aplicativos para se conectarem usando a cadeia de conexão de IP privado para emparelhamento. Essa alteração permite que seus aplicativos se conectem a partir de redes emparelhadas usando a IU ou a API.
Para expandir para mais regiões, desative primeiro o modo somente emparelhamento nos clusters existentes do Azure.
Como faço para desativar o modo somente de emparelhamento?
Para desativar o modo somente emparelhamento usando:
No Atlas, acesse a página Clusters do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Atualize todos os aplicativos para usar IP privado para connection strings de emparelhamento.
Altere quaisquer URLem sua aplicação que use seus clusters do Atlas para usar IP privado para emparelhamento de strings de conexão.
No Atlas, acesse a página Project Settings.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Ao lado do menu Projects, expanda o menu Options e clique em Project Settings.
A página Configurações do projeto é exibida.
Verifique se todos os clusters em seu projeto usam o MongoDB 5.0 ou posterior.
Chame o ponto de extremidade de API get all para retornar todos os clusters e suas versões do MongoDB:
Exemplo
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request GET "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/clusters?pretty=true"
Se for bem-sucedida, a resposta deverá incluir:
{ "results": [{ ... "mongoDBMajorVersion": "5.0", "mongoDBVersion": "5.0.14", ... },{ ... "mongoDBMajorVersion": "5.0", "mongoDBVersion": "5.0.12", ... } ] }
Atualize todos os aplicativos para usar IP privado para connection strings de emparelhamento.
Altere quaisquer URLem sua aplicação que use seus clusters do Atlas para usar IP privado para emparelhamento de strings de conexão.
Desative o modo IP privado nos seus clusters.
Chame o ponto de extremidade da API para desabilitar o modo de IP privado.
Exemplo
Usando curl
, você invocaria este comando:
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request PATCH "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/privateIpMode?pretty=true" \ --data ' { "enabled" : false }'
Altere {GROUP-ID}
para o ID do seu projeto.
Se for bem-sucedido, a resposta exibirá:
1 { 2 "enabled" : false 3 }
Como isso afeta o emparelhamento do AWSVPC quando uso DNS personalizado??
Antes de 31 de março de 2020, os aplicativos implantados na AWS usando serviços de DNS personalizados e com VPC com o Atlas não podiam se conectar por endereços IP privados:
DNS personalizado resolvido para endereços IP públicos.
DNS interno AWS resolvido para endereços IP privados.
Os aplicativos implementados com serviços DNS personalizados na AWS devem usar IP privado para strings de conexão de emparelhamento.
Para mostrar essas strings:
No Atlas, acesse a página Project Settings.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Ao lado do menu Projects, expanda o menu Options e clique em Project Settings.
A página Configurações do projeto é exibida.
Como identifico qual cadeia de conexão meu aplicativo usa?
A estrutura do URI da connection string indica o tipo de string. Se você tiver criado uma conexão de emparelhamento ou um endpoint privado, o Atlas exibirá mais de uma dessas opções para seu uso.
Cadeias de conexão padrão
As cadeias de conexão padrão seguem este formato:
mongodb://xyz456-shard-00-00.ab123.mongodb.net:27017 mongodb+srv://xyz456.ab123.mongodb.net
O ponto antes de ab123
é importante. Os URIs que usam esse formato são resolvidos para endereços IP públicos , exceto quando a conexão é feita de dentro da AWS com o pareamento de VPC configurado.
Importante
Esse formato altera um caractere das cadeias de conexão herdadas: um hífen (-
) após o nome do cluster torna-se um ponto final (.
).
Por exemplo, essa string de conexão legada:
mongodb+srv://xyx456-ab123.mongodb.net
é escrito como esta cadeia de conexão padrão:
mongodb+srv://xyx456.ab123.mongodb.net
Para novos clusters, conjuntos de réplicas e shards não derivam seu nome do nome do cluster. Os novos nomes usam um ID de seis caracteres alfanuméricos.
Cadeias de conexão privadas
As cadeias de conexão privadas seguem este formato:
mongodb://xyx456-shard-00-00-pri.ab123.mongodb.net:27017 mongodb+srv://xyx456-pri.ab123.mongodb.net
O -pri
antes de ab123
é importante. Os URIs que usam esse formato resultam em endereços IP privados acessíveis dentro da rede emparelhada. Se você configurar o emparelhamento de rede para o seu cluster, você deverá usar o novo nome do host ao se conectar ao seu cluster para utilizar o emparelhamento.
Importante
Em novos clusters, conjuntos de réplica e shards não derivam seu nome do nome do cluster. Os novos nomes usam um ID de seis caracteres alfanuméricos.
Strings de conexão do AWS Privatelink
As cadeias de conexão do AWS PrivateLink seguem este formato:
mongodb://pl-0-us-east-1a.ab123.mongodb.net:1024 mongodb+srv://pl-0-us-east-1a.ab123.mongodb.net
Se você habilitar a configuração de pontos de extremidade privados regionalizados, as cadeias de conexão do AWS PrivateLink seguirão este formato:
mongodb://pl-0-us-west-1.ab123.mongodb.net:1024 mongodb+srv://cluster0-pl-0-us-west-1.ab123.mongodb.net
Os URIs que usam esse formato podem ser acessados por meio da VPC da AWS onde alguém tenha configurado o PrivateLink, embora o acesso possa ser transitivo a partir de outras VPCs emparelhadas por vez.
Azure Private Link Connection Strings
As cadeias de conexão do Azure Private Link seguem este formato:
mongodb://pl-0-eastus2.ab123.mongodb.net:1024 mongodb+srv://pl-0-eastus2.ab123.mongodb.net
Se você habilitar a configuração de pontos de extremidade privados regionalizados, as cadeias de conexão do Azure Private Link seguirão este formato:
mongodb://pl-0-eastus2.ab123.mongodb.net:1024 mongodb+srv://cluster0-pl-0-eastus2.ab123.mongodb.net
Os URIsque usam esse formato podem ser acessados por meio da VNet do Azure, onde alguém configurou o Private Link, embora o acesso possa ser transitivo a partir de outras VNets emparelhadas alternadamente.
Cadeia de conexão legada
Antes de 31 de Março de 2020, você escrevia cadeias de conexão do Atlas desta forma:
AWS |
| ||
Azure |
| ||
Google cloud |
|
Se você habilitou o modo Somente Privado, esses nomes de host serão resolvidos para endereços IP de rede emparelhados. Se você desabilitou esse modo, os nomes de host serão resolvidos para endereços IP públicos.
Se o seu aplicativo usar uma cadeia de conexão herdada no modo somente emparelhamento, alterne para IP privado para cadeias de conexão de emparelhamento.
Preciso atualizar minha cadeia de conexão ao migrar para um provedor de nuvem diferente de um cluster M0
, M2
ou M5
para outro?
Se você tiver uma string de conexão legada e quiser alterar os provedores de nuvem, sua string de conexão deverá incluir .gcp
ou .azure
e você deverá realizar uma das seguintes ações:
Mudar para o Google Cloud ou Azure
Saia do Google Cloud ou do Azure
Observação
Qualquer operação pode alterar sua cadeia de conexão. Na IU do Atlas, clique em Connect no seu cluster após a conclusão da atualização de uma cadeia de conexão atualizada.
Preciso atualizar minha cadeia de conexão ao migrar para um provedor de nuvem diferente de um cluster dedicado para outro?
Depende do seguinte:
qual provedor de nuvem seu cluster atual usa
quando você criou o cluster
GCP ou Azure Clusters criados antes de 3 de novembro de 2020
Se você criou seu cluster antes da introdução dos clusters multinuvem em 3 de novembro de 2020, e seu cluster é executado no Google Cloud ou Azure:
Abra o construtor de cluster.
Edite o cluster.
Adicione nós read-only do seu provedor de nuvem de destino.
Observação
Se você estiver usando backups legados, mantenha um nó no seu provedor de nuvem atual e mova o restante para o provedor de nuvem de destino.
Revise e envie as alterações.
Copie a connection string do URI delimitada por vírgula resultante.
Substitua a cadeia de conexão em seu aplicativo por essa nova cadeia de conexão padrão.
Isso permite que seu aplicativo se conecte a nós a partir de vários provedores de nuvem.
Reinicie seu aplicativo.
Certifique-se de que seu aplicativo possa se conectar ao Atlas.
Após a conclusão da primeira alteração, reconfigure seu cluster:
Remova todos os nós elegíveis usando o provedor de cloud original.
Remova os nós read-only do provedor de nuvem de destino.
Adicione o mesmo número de nós elegíveis usando o provedor de nuvem de destino.
Observação
Se você estiver usando backups legados, aguarde até que novos backups sejam feitos e, em seguida, mova o nó restante para o provedor de nuvem de destino.
Revise e envie as alterações.
Copie a connection string do URI delimitada por vírgula resultante.
Substitua a connection string do URI em seu aplicativo por esta nova connection string do URI.
Reinicie seu aplicativo.
Certifique-se de que seu aplicativo possa se conectar ao Atlas.
AWS e Clusters criados após 2 de novembro de 2020
Sua string de conexão não será alterada, e você não terá tempo de inatividade do cluster se alguma das seguintes situações for verdadeira:
Seu cluster é executado no Amazon Web Services.
Seu cluster é executado em qualquer provedor de nuvem , mas foi criado depois de 2 de novembro de 2020.
Para alterar o provedor de nuvem do seu cluster:
Abra o construtor de cluster.
Edite o cluster.
Altere o provedor de nuvem.
Revise e envie as alterações.