Conexão a uma instância de conjunto de réplicas usando Mongo Shell (rede pública)
Nos cenários a seguir, você pode acessar uma instância do DDS da Internet vinculando um EIP à instância.
Cenário 1: suas aplicações são implementadas em um ECS e não estão na mesma região que a instância do DDS.
Cenário 2: suas aplicações são implementadas em um servidor de nuvem fornecido por outros fornecedores.
Esta seção descreve como usar o Mongo Shell para se conectar a uma instância do conjunto de réplicas por meio de um EIP.
Você pode se conectar a uma instância usando uma conexão SSL ou uma conexão não criptografada. A conexão SSL é criptografada e mais segura. Para melhorar a segurança da transmissão de dados, conecte-se a instâncias usando SSL.
Pré-requisitos
- Para obter detalhes sobre como criar e fazer logon em um ECS, consulte Compra de um ECS e Logon em um ECS.
- Vincule um EIP à instância de conjunto de réplicas e configure regras de grupo de segurança para garantir que a instância de conjunto de réplicas possa ser acessada a partir de um ECS.
- Instale o cliente de MongoDB no ECS.
Para obter detalhes sobre como instalar um cliente de MongoDB, consulte Como instalar um cliente de MongoDB?
A versão do cliente de MongoDB instalado deve ser a mesma que a versão da instância.
Conexão SSL
Se você se conectar a uma instância por meio da conexão SSL, ative SSL primeiro. Caso contrário, um erro é relatado. Para obter detalhes sobre como ativar SSL, consulte Ativação e desativação de SSL.
- Faça logon no console de gerenciamento.
- Clique em no canto superior esquerdo e selecione uma região e um projeto.
- Clique em no canto superior esquerdo da página e escolha Databases > Document Database Service.
- Na página Instances, clique no nome da instância.
- No painel de navegação à esquerda, escolha Connections.
- Na área Basic Information, clique em ao lado do campo SSL.
- Carregue o certificado raiz para o ECS a ser conectado à instância.
A seguir, descrevemos como fazer upload do certificado para um ECS do Linux e Window:
- No Linux, execute o seguinte comando:
scp<IDENTITY_FILE><REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>
- IDENTITY_FILE é o diretório onde o certificado raiz reside. A permissão de acesso ao arquivo é 600.
- REMOTE_USER é o usuário do sistema operacional ECS.
- REMOTE_ADDRESS é o endereço do ECS.
- REMOTE_DIR é o diretório do ECS no qual o certificado raiz é carregado.
- No Windows, carregue o certificado raiz usando uma ferramenta de conexão remota.
- No Linux, execute o seguinte comando:
- Conecte-se à instância no diretório em que o cliente de MongoDB está localizado.
Método 1: utilizar um endereço de conexão de rede pública
Exemplo de comando:
./mongo "<Public network connection address>" --ssl --sslCAFile<FILE_PATH> --sslAllowInvalidHostnames
Descrição do parâmetro:
- Public Network Connection Address: na página Instances, clique na instância para navegar até a página Basic Information. No painel de navegação à esquerda, escolha Connections. Clique na guia Public Connection e obtenha o endereço de conexão de rede pública.
Figura 3 Obter o endereço de conexão de rede pública
O formato do endereço de conexão pública é o seguinte. O nome de usuário do banco de dados rwuser e o banco de dados de autenticação admin não podem ser alterados.
mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin
Preste atenção aos seguintes parâmetros no endereço de conexão de rede pública:
Tabela 1 Descrição do parâmetro Parâmetro
Descrição
rwuser
Nome da conta, ou seja, o nome de usuário do banco de dados.
<password>
Senha da conta do banco de dados. Substitua-a pela senha atual.
Se a senha contiver sinais de arroba (@), pontos de exclamação (!) ou sinais de porcentagem (%), substitua-os por códigos de URL hexadecimais (ASCII) %40, %21 e %25, respectivamente.
Por exemplo, se a senha for ****@ %***!, o código de URL correspondente será **** %40%25*** %21.
192.168.xx.xx:8635
O EIP e a porta vinculados ao nó da instância do conjunto de réplicas.
authSource=admin
O banco de dados de autenticação do usuário rwuser deve ser admin. authSource=admin é corrigido no comando.
- FILE_PATH é o caminho para armazenar o certificado raiz.
- --sslAllowInvalidHostnames: o certificado do conjunto de réplicas é gerado usando o endereço IP de gerenciamento interno para garantir que a comunicação interna não ocupe recursos como o endereço IP do usuário e a largura de banda. --sslAllowInvalidHostnames é necessário para a conexão SSL por meio de uma rede pública.
Exemplo de comando:
./mongo "mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin" --ssl --sslCAFile/tmp/ca.crt --sslAllowInvalidHostnames- Se você se conectar a uma instância por meio de um endereço HA público, adicione aspas duplas antes e depois das informações de conexão.
- Para melhorar o desempenho de leitura e gravação e evitar que erros sejam relatados quando os dados são gravados do cliente após uma alternância primária/em espera. Para obter detalhes sobre como se conectar a uma instância no modo HA, consulte Conexão a uma instância de conjunto de réplicas para separação de leitura e gravação e alta disponibilidade.
Método 2: usar um EIP
Exemplo de comando:
./mongo --host <DB_HOST> --port <DB_PORT> -u <DB_USER> -p --authenticationDatabaseadmin --ssl --sslCAFile<FILE_PATH> --sslAllowInvalidHostnames
Descrição do parâmetro:
- DB_HOST é o EIP vinculado ao nó da instância a ser conectada.
Na página Instances, clique na instância para ir para a página Basic Information. Escolha Connections> Public Connection e obtenha o EIP do nó correspondente.
- DB_PORT é a porta do banco de dados. O número de porta padrão é 8635.
Você pode clicar na instância para ir para a página Basic Information. No painel de navegação à esquerda, escolha Connections. Na página exibida, clique na guia Public Connection e obtenha a porta no campo Database Port na área Basic Information.
Figura 4 Obter a porta
- DB_USER é o usuário do banco de dados. O valor padrão é rwuser.
- FILE_PATH é o caminho para armazenar o certificado raiz.
- --sslAllowInvalidHostnames: o certificado do conjunto de réplicas é gerado usando o endereço IP de gerenciamento interno para garantir que a comunicação interna não ocupe recursos como o endereço IP do usuário e a largura de banda. --sslAllowInvalidHostnames é necessário para a conexão SSL por meio de uma rede pública.
Digite a senha da conta do banco de dados quando solicitado:
Enter password:
Exemplo de comando:
./mongo --host 192.168.xx.xx --port 8635 -u rwuser -p --authenticationDatabase admin --ssl --sslCAFile /tmp/ca.crt --sslAllowInvalidHostnames
- Public Network Connection Address: na página Instances, clique na instância para navegar até a página Basic Information. No painel de navegação à esquerda, escolha Connections. Clique na guia Public Connection e obtenha o endereço de conexão de rede pública.
- Verifique o resultado da conexão. Se as informações a seguir forem exibidas, a conexão será bem-sucedida.
- O nó primário do conjunto de réplicas está conectado.
replica:PRIMARY>
- O nó em espera do conjunto de réplicas está conectado.
replica:SECONDARY>
- O nó primário do conjunto de réplicas está conectado.
Conexão não criptografada
Se você se conectar a uma instância por meio de uma conexão não criptografada, desative SSL primeiro. Caso contrário, um erro é relatado. Para obter detalhes sobre como desabilitar SSL, consulte Ativação e desativação de SSL.
- Efetue logon no ECS.
- Conecte-se a uma instância do DDS.
Método 1: utilizar um endereço de conexão de rede pública
Exemplo de comando:
./mongo "<Public network address>"
Public Network Connection Address: na página Instances, clique na instância para navegar até a página Basic Information. No painel de navegação à esquerda, escolha Connections. Clique na guia Public Connection e obtenha o endereço de conexão de rede pública.
Figura 5 Obter o endereço de conexão de rede pública
O formato do endereço de conexão pública é o seguinte. O nome de usuário do banco de dados rwuser e o banco de dados de autenticação admin não podem ser alterados.
mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin
Preste atenção aos seguintes parâmetros no endereço de conexão pública:
Tabela 2 Descrição do parâmetro Parâmetro
Descrição
rwuser
Nome da conta, ou seja, o nome de usuário do banco de dados.
<password>
Senha da conta do banco de dados. Substitua-a pela senha atual.
Se a senha contiver sinais de arroba (@), pontos de exclamação (!) ou sinais de porcentagem (%), substitua-os por códigos de URL hexadecimais (ASCII) %40, %21 e %25, respectivamente.
Por exemplo, se a senha for ****@ %***!, o código de URL correspondente será **** %40%25*** %21.
192.168.xx.xx:8635
O EIP e a porta vinculados ao nó da instância do conjunto de réplicas.
authSource=admin
O banco de dados de autenticação do usuário rwuser deve ser admin. authSource=admin é corrigido no comando.
Exemplo de comando:
./mongo "mongodb://rwuser:<password>@192.168.xx.xx:8635/test?authSource=admin"
- Se você se conectar a uma instância por meio de um endereço HA público, adicione aspas duplas antes e depois das informações de conexão.
- Para melhorar o desempenho de leitura e gravação e impedir que erros sejam relatados quando os dados são gravados do cliente após uma alternância primária/em espera, é aconselhável conectar-se a uma instância usando o endereço de conexão HA. Para obter detalhes, consulte Conexão a uma instância de conjunto de réplicas para separação de leitura e gravação e alta disponibilidade.
Método 2: usar um EIP
Exemplo de comando:
./mongo --host <DB_HOST> --port <DB_PORT> -u <DB_USER> -p --authenticationDatabase admin
Descrição do parâmetro:
- DB_HOST é o EIP vinculado ao nó da instância a ser conectada.
Na página Instances, clique na instância para ir para a página Basic Information. Escolha Connections> Public Connection e obtenha o EIP do nó correspondente.
- DB_PORT é a porta do banco de dados. O número de porta padrão é 8635.
Você pode clicar na instância para ir para a página Basic Information. No painel de navegação à esquerda, escolha Connections. Na página exibida, clique na guia Public Connection e obtenha a porta no campo Database Port na área Basic Information.
Figura 6 Obter a porta
- DB_USER é o usuário do banco de dados. O valor padrão é rwuser.
Digite a senha da conta do banco de dados quando solicitado:
Enter password:
Exemplo de comando:
./mongo --host 192.168.xx.xx --port 8635 -u rwuser -p --authenticationDatabase admin
- Verifique o resultado da conexão. Se as informações a seguir forem exibidas, a conexão será bem-sucedida.
- O nó primário do conjunto de réplicas está conectado.
replica:PRIMARY>
- O nó em espera do conjunto de réplicas está conectado.
replica:SECONDARY>
- O nó primário do conjunto de réplicas está conectado.