Ir para o conteúdo

Como soluciono falhas de conectividade de endpoints do AWS DMS?

10 minuto de leitura
0

Não consigo me conectar aos meus endpoints do AWS Database Migration Service (AWS DMS) e minha conexão de teste falha. Quero solucionar problemas de conectividade.

Resolução

Ao testar a conexão da sua instância de replicação com o endpoint de origem ou de destino, é possível ter problemas de conectividade ou problemas de banco de dados nativo.

Se houver um problema de conexão entre a instância de replicação e a origem ou o destino, você receberá erros semelhantes aos seguintes:

  • "Application-Status: 1020912, Application-Message: Failed to connect Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HYT00 NativeError: 0 Message: [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired ODBC general error."
  • "Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]timeout expired ODBC general error."
  • "Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider ODBC general error., Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HY000 NativeError: 2005 Message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Unknown MySQL server host 'mysql1.xxxxx.us-east-1.rds.amazonaws.com' (22) ODBC general error."

Se a falha ocorrer devido a problemas no banco de dados nativo, como erros de permissão ou autenticação do banco de dados, você receberá um erro semelhante ao seguinte:

"Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]FATAL: password authentication failed for user "dmsuser" ODBC general error."

Observação: é uma prática recomendada testar a conexão da instância de replicação do AWS DMS com os endpoints depois que você criar os endpoints de origem e destino. Realize o teste antes de iniciar a tarefa de migração do AWS DMS.

Resolver problemas de conectividade dos recursos hospedados na AWS

Verifique se é possível estabelecer uma conexão entre o banco de dados de origem ou destino e a instância de replicação. De acordo com seu caso de uso e da infraestrutura de rede, conecte seu banco de dados de origem ou destino a uma instância de replicação em uma sub-rede pública ou privada. Para mais informações, consulte Configurar uma rede para uma instância de replicação.

Observação: as versões 3.4.7 e posteriores do AWS DMS exigem que você configure o AWS DMS para usar endpoints da Amazon Virtual Private Cloud (Amazon VPC). Outra alternativa é você usar rotas públicas para todos os seus endpoints de origem e destino que interagem com determinados serviços da AWS.

Verificar a configuração da instância de replicação

Em sua instância de replicação, confirme se sua configuração inclui as seguintes regras:

  • Uma Regra de saída para o endereço IP com a porta do banco de dados de origem ou destino no grupo de segurança. Por padrão, a Regra de saída de um grupo de segurança permite todo o tráfego. Os grupos de segurança são stateful, então é possível manter a Regra de entrada padrão.
  • Uma Regra de saída para o endereço IP com a porta do banco de dados de origem ou destino na lista de controle de acesso (ACL) à rede. Por padrão, a Regra de saída de uma ACL da rede permite todo o tráfego.
  • Uma Regra de entrada para o endereço IP com as portas efêmeras do banco de dados de origem ou destino na ACL da rede. Por padrão, a Regra de entrada de uma ACL da rede permite todo o tráfego.

Verificar a configuração do banco de dados de origem ou destino

No banco de dados de origem ou destino, confirme se a configuração inclui as seguintes regras:

  • Uma Regra de entrada para o endereço IP da instância de replicação ou o bloco CIDR do grupo de sub-redes da instância de replicação. A Regra de entrada deve incluir a porta do banco de dados de origem ou de destino no grupo de segurança. Os grupos de segurança são stateful, então é possível manter a Regra de saída padrão.
  • Uma Regra de entrada para o endereço IP da instância de replicação ou o bloco CIDR do grupo de sub-redes da instância de replicação. A Regra de entrada deve incluir a porta do banco de dados de origem ou de destino na ACL da rede. Confirme se não há nenhuma regra de negação explícita para o endereço IP e porta.
  • Uma Regra de saída para o endereço IP ou o bloco CIDR do grupo de sub-redes da instância de replicação com portas efêmeras na ACL da rede. Por padrão, a Regra de saída de uma ACL da rede permite todo o tráfego.

Como prática recomendada, configure sua rede para permitir o bloco CIDR do grupo de sub-redes da instância de replicação. O endereço IP da instância de replicação muda durante um evento de failover ou substituição do host.

Determinar os endereços IP e o bloco CIDR de um grupo de sub-redes

Para configurar regras de entrada e saída, determine os endereços IP e o bloco CIDR do grupo de sub-redes. É possível usar o console do AWS DMS ou a AWS Command Line Interface (AWS CLI).

Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Console do AWS DMS

Conclua as etapas a seguir:

  1. Abra o console do AWS DMS.
  2. No painel de navegação, selecione Instâncias de replicação.
  3. Selecione sua instância de replicação.
  4. Em Detalhes, copie o endereço IP público, o endereço IP privado e o grupo de sub-redes de replicação da sua instância de replicação.
  5. Em Grupo de sub-redes de replicação, selecione o link para acessar a página do grupo de sub-redes. Copie o nome de cada sub-rede do grupo de sub-redes.
  6. Para verificar o bloco CIDR de cada sub-rede, abra o console da Amazon VPC.
  7. Na guia Sub-redes, pesquise as sub-redes. Para cada sub-rede, anote o bloco CIDR.

AWS CLI

Para determinar o bloco CIDR de cada sub-rede, execute o comando describe-subnets da AWS CLI:

aws ec2 describe-subnets --filters Name=subnet-id,Values="$(aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].ReplicationSubnetGroup.Subnets[*].SubnetIdentifier" --output text | sed -e 's/\t/,/g')" --query "Subnets[*].{SubnetId:SubnetId,CidrBlock:CidrBlock}" --output table

Observação: substitua replication-instance-name pelo nome da sua instância de replicação.

Para determinar os endereços IP da instância de replicação, execute o comando describe-replication-instances:

aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].{ReplicationInstancePublicIpAddresses:ReplicationInstancePublicIpAddresses,ReplicationInstancePrivateIpAddresses:ReplicationInstancePrivateIpAddresses}" --output table

Observação: substitua replication-instance-name pelo nome da sua instância de replicação.

Resolver problemas de conectividade de recursos on-premises

Se você hospedar seu banco de dados de origem ou de destino on-premises, confirme se o banco de dados permite conexões de entrada da instância de replicação do AWS DMS. Para confirmar, consulte o administrador da rede. Além disso, verifique se um firewall não bloqueia a comunicação com o banco de dados de origem ou de destino.

Certifique-se de ter definido corretamente a configuração do DNS. Caso precise de resolução de DNS, use o Amazon Route 53 Resolver. Para obter mais informações sobre como usar um servidor de nomes on-premises para resolver endpoints com o Route 53 Resolver, consulte Usar seu próprio servidor de nomes on-premises. Ou crie uma nova instância do AWS DMS por meio da AWS CLI para usar um servidor de nomes de DNS do cliente (--dns-name-servers) para resolver problemas de DNS. Por padrão, as instâncias do AWS DMS usam nomes DNS que a Amazon fornece para resoluções. Para mais informações, consulte create-replication-instance.

Observação: quando você configura a origem ou o destino para usar DNS personalizado, os endpoints do AWS DMS podem falhar.

Certifique-se de que sua instância do Amazon Elastic Compute Cloud (Amazon EC2) tenha as mesmas configurações de rede da instância de replicação do AWS DMS com problemas de conectividade. Para solucionar problemas de conectividade de rede, execute primeiro o comando a seguir na nova instância do Amazon EC2:

telnet database_IP_address_or_DNS port_number

Observação: substitua database_IP_address_or_DNS pelo endereço IP ou nome de domínio do banco de dados especificado para o endpoint de origem ou destino do AWS DMS. Substitua port_number pelo número da porta do banco de dados especificado para o endpoint de origem ou destino do AWS DMS.

Em seguida, execute o seguinte comando:

nslookup domain_name

Observação: substitua domain_name pelo nome de domínio do banco de dados especificado para o endpoint de origem ou destino do AWS DMS.

Resolver erros de banco de dados nativo

Para resolver erros de banco de dados nativo, confirme se você definiu corretamente as seguintes configurações de endpoint:

  • Username
  • Password
  • ServerName
    Observação: é necessário definir ServerName como o DNS ou endereço IP do banco de dados on-premises ou do endpoint do Amazon Relational Database Service (Amazon RDS).
  • Porta
  • Nome do banco de dados
    Observação: não especifique um nome do banco de dados para origem ou destino do MySQL.

Se você usa o AWS Secrets Manager para especificar qualquer um dos campos anteriores, consulte Utilizar segredos para acessar endpoints do AWS DMS.

Observação: o Secrets Manager não suporta os seguintes caracteres em senhas: ponto e vírgula (;), pontos (.), dois pontos (:), sinais de adição (+) e colchetes ({}).

Para erros de banco de dados nativo relacionados ao banco de dados de origem ou destino, consulte a resolução da documentação específica do banco de dados. Use o código de erro e a mensagem de erro que você recebe no console do AWS DMS.

Ao inserir manualmente suas credenciais para a configuração do endpoint, certifique-se de não incluir colchetes no início e final da senha. Caso contrário, receberá mensagens de erro semelhantes às seguintes:

Exemplo de erro quando o Amazon Redshift é o endpoint de destino

"[SERVER ]E: RetCode: SQL_ERROR SqlState: 28000 NativeError: 10 Message: [Amazon][Amazon Redshift] (10) Error occurred while trying to connect: [SQLState 28000] connection to server at Your workgroup endpoint (IP), port 5439 failed: FATAL: password authentication failed for user Your Username [1022502] (ar_odbc_conn.c:614)"

Exemplo de erro quando o MySQL é o endpoint de destino

"00012920: 2025-05-08T20:27:50:341649 [SERVER ]D: RetCode: SQL_ERROR SqlState: HY000 NativeError: 1045 Message: [MySQL][ODBC 8.0(w) Driver]Access denied for user UserName@IP (using password: YES) [1022502] (ar_odbc_conn.c:614)"

Exemplo de erro quando o SQL Server é o endpoint de destino

"00012920: 2025-05-08T21:15:20:185761 [SERVER ]E: RetCode: SQL_ERROR SqlState: 28000 NativeError: 18456 Message: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user UserName. [1022502] (ar_odbc_conn.c:614)"

Observação: se você usar o PostgreSQL como seu endpoint de destino, poderá usar colchetes.

Para mais informações, verifique erros, rastreamento, alertas ou outros logs do banco de dados de origem ou destino.

Para erros de acesso ao banco de dados, confirme as permissões exigidas pelo AWS DMS para a origem ou destino específicos.

Para mais informações sobre como criptografar conexões de endpoints de origem e destino com SSL, consulte Usando SSL com AWS DMS.

Informações relacionadas

Como faço para solucionar falhas no teste de conexão de endpoint do Amazon S3 ao usar o AWS DMS?

Como posso solucionar falhas e erros de conectividade de uma tarefa do AWS DMS que usa o Amazon Redshift como endpoint de destino?

Como posso solucionar falhas de conectividade entre o AWS DMS e um endpoint de origem do MongoDB?

Migrar bancos de dados do Microsoft SQL Server para a Nuvem AWS