Por que minha conexão de teste do AWS Glue falha?

8 minuto de leitura
0

Quero solucionar uma falha de conexão de teste no AWS Glue.

Resolução

Verifique os seguintes problemas comuns.

Problemas de rede

  • Verifique a conectividade com os armazenamentos de dados JDBC: o AWS Glue cria interfaces de rede elásticas com endereços IP privados na sub-rede da conexão. Isso significa que o AWS Glue não pode usar a Internet pública para se conectar ao armazenamento de dados.

  • Se o armazenamento de dados estiver fora da Amazon Virtual Private Cloud (Amazon VPC), a tabela de rotas da sub-rede deverá ter uma rota para um gateway NAT em uma sub-rede pública. Caso contrário, a conexão expirará.
    Observação: o armazenamento de dados fora do Amazon VPC pode ser um armazenamento de dados on-premises ou um recurso do Amazon Relational Database Service (Amazon RDS) com um nome de host público.

  • Se o armazenamento de dados estiver no Amazon VPC, confirme se os grupos de segurança da conexão e a lista de controle de acesso à rede (ACL de rede) permitem o tráfego para o armazenamento de dados.

  • Verifique os grupos de segurança da conexão: um dos grupos de segurança associados à conexão deve ter uma regra de entrada autorreferenciada aberta a todas as portas TCP. Da mesma forma, um dos grupos de segurança também deve estar aberto a todo o tráfego de saída. Você pode usar uma regra de autorreferência para restringir o tráfego de saída para o Amazon VPC. Para obter mais informações, consulte Setting up a VPC to connect to JDBC Data Stores.

  • Verifique o número de endereços IP gratuitos: o número de endereços IP livres na sub-rede deve ser maior do que o número de unidades de processamento de dados (DPUs) especificadas para a tarefa. Isso permite que o AWS Glue crie interfaces de rede elásticas na sub-rede especificada.

  • Confirme se a sub-rede pode acessar o Amazon Simple Storage Service (Amazon S3): Forneça um endpoint Amazon S3 ou forneça uma rota para um gateway NAT na tabela de rotas da sua sub-rede. Para obter mais informações, consulte Error: Could not find S3 endpoint or NAT Gateway for subnetId in VPC.

  • Verifique se você tem um endpoint VPC do AWS KMS: se o seu Catálogo de Dados do AWS Glue estiver criptografando conexões, certifique-se de ter uma rota para o AWS KMS. Por exemplo, essa rota pode ser um endpoint da interface VPC do AWS KMS. Para mais informações, consulte Connecting to AWS KMS through a VPC endpoint.

  • Verifique se a conexão do AWS Glue e o banco de dados usam VPCs diferentes: sua conexão de teste falha com um erro de tempo limite quando as seguintes condições são verdadeiras:
    O banco de dados não está acessível ao público.
    O trabalho do AWS Glue é anexado a uma conexão que usa uma VPC diferente sem emparelhamento de VPC.
    Esse problema pode ser resolvido criando uma VPC AWS Glue dedicada e configurando os peerings de VPC correspondentes com suas outras VPCs, conforme necessário. Para obter mais informações, consulte Connect to and run ETL jobs across multiple VPCs using a dedicated AWS Glue VPC.

  • **Verifique a conectividade com o armazenamento de dados on-premises:**se você estiver testando a conexão do AWS Glue com um banco de dados on-premises, é uma prática recomendada conectar-se a uma instância do Amazon Elastic Compute Cloud (Amazon EC2) na mesma VPC, sub-rede e grupo de segurança usados para a conexão. Em seguida, execute os seguintes testes na instância do Amazon EC2. Se você tiver problemas para executar os comandos, verifique sua VPN e as configurações de VPC, sub-rede, grupo de segurança e listas de controle de acesso (ACLs) à rede. Certifique-se de que essas configurações não bloqueiem a conectividade da VPC com seu banco de dados on-premises nem criem problemas de firewall a partir do banco de dados on-premises. Para obter mais informações, consulte How to access and analyze on-premises data stores using AWS Glue.

$ telnet hostname port
$ nc -zv hostname port
$ dig hostname
$ traceroute -AnT -p IP port

Problemas de autenticação

  • Escolha o perfil do IAM correto: o perfil do AWS Identity and Access Management (IAM) que você seleciona para a conexão de teste deve ter uma relação de confiança com o AWS Glue. Uma maneira fácil de fazer isso é escolher um perfil vinculado ao serviço que tenha a política AWSGlueServiceRole anexada a ele.
  • Verifique o perfil do IAM da conexão: se a senha da conexão for criptografada com o AWS Key Management Service (AWS KMS), confirme se o perfil do IAM da conexão permite a ação kms:Decrypt para a chave. Para mais informações, consulte Configurar a criptografia no AWS Glue.
  • Verifique os logs de conexão: os logs das conexões de teste estão localizados no Amazon CloudWatch Logs em /aws-glue/testconnection/output. Verifique se há logs para mensagens de erro.
  • Verifique as configurações de SSL: se o armazenamento de dados exigir conectividade SSL para o usuário especificado, certifique-se de selecionar Exigir conexão SSL ao criar a conexão no console. Não selecione essa opção se o armazenamento de dados não oferecer suporte a SSL.
  • Verifique o nome de usuário e a senha do JDBC: o usuário que está acessando o armazenamento de dados do JDBC deve ter permissões de acesso suficientes. Por exemplo, os crawlers do AWS Glue exigem permissões SELECT. Um trabalho que grava em um armazenamento de dados exige as permissões INSERT, UPDATE e DELETE.
  • Verifique a sintaxe do URL do JDBC: os requisitos de sintaxe variam de acordo com o mecanismo do banco de dados. Para obter mais informações, consulte Adding an AWS Glue connection e revise os exemplos em URL do JDBC.

Solução de problemas adicional

  • Verifique o tipo de conexão:

  • certifique-se de escolher o tipo de conexão correto. Quando você escolhe o Amazon RDS ou o Amazon Redshift como Tipo de conexão, o AWS Glue preenche automaticamente a VPC, a sub-rede e o grupo de segurança.

  • Se você precisar se conectar ao MySQL, esteja ciente de que o recurso de conexão de teste funciona somente para as versões do MySQL 5.x. A versão 8 do MySQL não é compatível com o driver JDBC integrado do AWS Glue. Se você testar a conexão em uma versão do MySQL mais recente que a versão 5.x, poderá receber um erro de tempo limite de conexão. No entanto, você ainda pode usar sua conexão do AWS Glue para se conectar ao MySQL versão 8 com uma solução alternativa. Use a conexão em uma tarefa de extração, carregamento e transformação (ETL) fornecendo manualmente o driver JAR compatível para MySQL versão 8 e posterior. Em seguida, carregue esse arquivo JAR em sua tarefa da mesma forma que você carrega qualquer driver JDBC em uma tarefa do Spark. Para obter mais informações, consulte Connection types and options for ETL in AWS Glue.

  • Descarte problemas de DNS: para descartar problemas de DNS, use o endereço IP público ou privado do armazenamento de dados como o URL do JDBC para a conexão do AWS Glue. Ao fazer isso, você deve desmarcar Exigir conexão SSL porque não está mais usando um nome de domínio.

  • Verifique se o driver é incompatível: se a conexão falhar devido a um driver incompatível, forneça o driver correto como um arquivo JAR extra nas propriedades do trabalho, junto com o nome da conexão que falhou. (Quando você especifica o nome da conexão como uma propriedade de trabalho, o AWS Glue usa as configurações de rede da conexão, como a VPC e as sub-redes.) Em seguida, substitua os drivers padrão do armazenamento de dados do AWS Glue criando manualmente o dataframe do Apache Spark usando o arquivo JAR que você forneceu nas propriedades do trabalho. Depois de criar o dataframe, você pode opcionalmente convertê-lo em um DynamicFrame do AWS Glue. Para mais informações, consulte fromDF.

  • Verifique se o armazenamento de dados do JDBC está acessível ao público: conecte-se ao armazenamento de dados usando o MySQL Workbench e o URL do JDBC. Ou execute uma instância do Amazon EC2 que tenha acesso SSH à mesma sub-rede e grupos de segurança usados para a conexão. Em seguida, conecte-se à instância usando SSH e execute os seguintes comandos para testar a conectividade.

$ dig hostname
$ nc -zv hostname port

Informações relacionadas

Defining connections in the AWS Glue Data Catalog

Troubleshooting errors in AWS Glue

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos