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 do Azure no modo somente de emparelhamento?
- Meu cluster do Azure emparelhado por VNet pode abranger várias regiões?
- Como faço para desativar o modo somente de emparelhamento?
- Como isso afeta o emparelhamento de VPC da AWS quando eu uso 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 do
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 cadeia de conexão, na qual o Atlas se conecta, pode ter mais de um nome de host. Configure o Atlas para aceitar conexões para a hospedagem do cluster a partir de endereços IP permitidos.
O Atlas protege as conexões do endereço IP público por meio de autenticação e TLS. Se 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 umacadeia de conexão padrão. Isso resolve 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 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 em camadas 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 ao usar a AWS com o serviço DNS personalizado.
AWS ou Azure clusters em regiões com pontos de extremidade privados configurados têm uma ou mais cadeias de conexão. Cada string é resolvida para o endereço IP privado de uma interface de rede no VPC ou VNet que se conecta diretamente a um balanceador de carga no VPC ou VNet do Atlas. Use essas cadeias de conexão com aplicativos que se conectam a pontos de extremidade 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 DNS global 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.
Meu cluster do Azure com emparelhamento de rede virtual 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, VáGo para a Clusters página 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 Atlas clusters para usar IP privado para emparelhamento de connection 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.
Verifique se todos os clusters em seu projeto usam o MongoDB 5.0 ou posterior.
Chame o endpoint get all de API 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 Atlas clusters para usar IP privado para emparelhamento de connection strings.
Desative o modo IP privado nos seus clusters.
Chame o ponto de extremidade da API para desabilitar o modo 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 da AWS VPC quando uso DNS personalizado?
Antes de 31 de março de 2020, os aplicativos implantados na AWS usando serviços DNS personalizados e VPCemparelhados com o Atlas não podiam se conectar por endereços IP privados:
DNS personalizado resolvido para endereços IP públicos.
DNS interno da AWS resolvido para endereços IP privados.
Os aplicativos distribuídos com serviços DNS personalizados no 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 cadeia de conexão indica o tipo da string de caracteres. Se você criou uma conexão de emparelhamento ou pontos de extremidade privados, 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 URIestão usando esse formato: resolva para endereços IP públicos, exceto quando se conecta de dentro da AWS com o VPC-peering 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 são resolvidos para endereços IP privados acessíveis dentro da rede emparelhada. Se você configurar o emparelhamento de rede para o cluster, deverá usar o novo nome do host ao se conectar ao 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.
Connection strings doAmazon Web Services 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 URIsque usam esse formato podem ser acessados por meio da AWS VPC, onde alguém configurou o PrivateLink, embora o acesso possa ser transitório de outras VPCsemparelhadas por sua vez.
Strings de conexão do Azure Private Link
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 URIs que usam esse formato podem ser acessados por meio da VNet do Azure em que alguém configurou o Private Link, embora o acesso possa ser transitivo a partir de outras VNets emparelhadas por vez.
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 string 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 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 que os clusters de várias nuvens fossem introduzidos em 3 de novembro de 2020 e seu cluster fosse executado no Google Cloud ou no 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 cadeia de conexão 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 cadeia de conexão URI delimitada por vírgula resultante.
Substitua a cadeia de conexão do URI em seu aplicativo por esta nova cadeia de conexão 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 2 após2020.
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.