¿Por qué falla mi conexión de prueba de AWS Glue?
Quiero solucionar un error en una conexión de prueba en AWS Glue.
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de errores para la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Para solucionar el error de la conexión de prueba en AWS Glue, comprueba las conexiones de red y autenticación.
Problemas de red
Comprobación de la conectividad con los almacenes de datos de JDBC
AWS Glue crea interfaces de red elásticas con direcciones IP privadas en la subred de la conexión. Los datos almacenados fuera de Amazon Virtual Private Cloud (Amazon VPC) requieren que la tabla de enrutamiento de la subred incluya una puerta de enlace de NAT en una subred pública. De lo contrario, se agotará el tiempo de espera de la conexión.
Nota: Los datos que se almacenan fuera de Amazon VPC son un almacén de datos local o un recurso de Amazon Relational Database Service (Amazon RDS) con un nombre de host público.
Comprueba que los grupos de seguridad de la conexión y la lista de control de acceso de la red (ACL de la red) permitan el tráfico a los datos almacenados en la VPC. A continuación, utiliza el runbook AWSSupport-TroubleshootGlueConnection en AWS Systems Manager. Para obtener más información, consulta ¿Cómo puedo solucionar los errores de una conexión de AWS Glue que tiene un origen de JDBC?
Si la conexión requiere una puerta de enlace de NAT o acceso a AWS Secrets Manager y AWS Security Token Service (AWS STS), adjunta los puntos de enlace. Para obtener más información, consulta Conexión a los datos.
Comprobación de los grupos de seguridad de la conexión
Uno de los grupos de seguridad asociados a la conexión debe tener una regla de entrada que haga referencia a sí misma y que esté abierta a todos los puertos TCP. Uno de los grupos de seguridad debe estar abierto a todo el tráfico de salida. Puedes usar una regla que haga referencia a sí misma para restringir el tráfico de salida a la VPC. Para obtener más información, consulta Configuración de Amazon VPC para conexiones de JDBC a almacenes de datos de Amazon RDS desde AWS Glue.
Comprobación de la cantidad de direcciones IP libres
La cantidad de direcciones IP libres en la subred debe ser mayor que la cantidad de trabajadores especificados para el trabajo. Esto permite a AWS Glue crear interfaces de red en la subred especificada.
Comprobación de que la subred pueda acceder a Amazon S3
Proporciona un punto de enlace de Amazon Simple Storage Service (Amazon S3) o una ruta a una puerta de enlace de NAT en la tabla de enrutamiento de la subred. Para obtener más información, consulta Error: Could not find S3 endpoint or NAT Gateway for subnetId in VPC (No se ha podido encontrar el punto de enlace de S3 o la puerta de enlace de NAT para el ID de subred en la VPC).
Comprobación de si tienes un punto de enlace de VPC de AWS KMS
Para cifrar las conexiones con Catálogo de datos de AWS Glue, asegúrate de tener una ruta a AWS Key Management Service (AWS KMS). Por ejemplo, la ruta puede ser un punto de enlace de la interfaz de la VPC de AWS KMS. Para obtener más información, consulta Conexión a AWS KMS a través de un punto de enlace de VPC.
Comprueba si la conexión de AWS Glue y la base de datos utilizan VPC diferentes
La conexión de prueba falla y se produce un error de tiempo de espera si se cumplen las siguientes condiciones:
- La base de datos no es de acceso público.
- Has adjuntado un trabajo de AWS Glue a una conexión que usa una VPC diferente sin emparejamiento de VPC.
Para resolver un error de conexión de prueba, crea una VPC de AWS Glue dedicada y configura el emparejamiento de VPC asociado a sus otras VPC.
Comprobación de la conectividad con el almacén de datos local
Para comprobar la conexión de AWS Glue a una base de datos local que se conecta a una instancia de Amazon Elastic Compute Cloud (Amazon EC2), ejecuta los siguientes comandos:
$ telnet hostname port $ nc -zv hostname port $ dig hostname $ traceroute -AnT -p IP port
Comprueba la VPN y las configuraciones de VPC, subred, grupo de seguridad y ACL de la red. Asegúrate de que las configuraciones no bloqueen la conectividad de la VPC a la base de datos local ni generen problemas de firewall desde la base de datos local. Para obtener más información, consulta How to access and analyze on-premises data stores using AWS Glue (Cómo acceder a almacenes de datos locales y analizarlos con AWS Glue).
Problemas de autenticación
Selección del rol de IAM correcto
El rol de AWS Identity and Access Management (IAM) que selecciones para la conexión de prueba debe tener una relación de confianza con AWS Glue. Selecciona un rol vinculado a un servicio que tenga la política AWSGlueServiceRole adjunta para crear la relación de confianza.
Comprobación del rol de IAM de la conexión
Si has cifrado la contraseña de conexión con AWS KMS, confirma si el rol de IAM de la conexión permite la acción kms:Decrypt en el caso de la clave. Para obtener más información, consulta Configuración del cifrado en AWS Glue.
Comprobación de los registros de conexión
Comprueba los registros para ver si hay mensajes de error. Puedes encontrar los registros de las conexiones de prueba en Registros de Amazon CloudWatch en /aws-glue/testconnection/output.
Comprobación de la configuración de SSL
Si el almacén de datos requiere conectividad SSL para el usuario especificado, selecciona Requerir conexión SSL al crear la conexión en la consola. Selecciona esta opción únicamente si el almacén de datos admite SSL.
Comprueba el nombre de usuario y la contraseña de JDBC
Los usuarios deben tener permisos suficientes para acceder al almacén de datos de Java Database Connectivity (JDBC). Por ejemplo, los rastreadores de AWS Glue requieren el permiso SELECT. Un trabajo que escribe en un almacén de datos requiere los permisos INSERT, UPDATE y DELETE.
Comprobación de la sintaxis de la URL de JDBC
Los requisitos de sintaxis varían según el motor de la base de datos. Para obtener más información, consulta Propiedades de las conexiones JDBC de AWS Glue y revisa los ejemplos en la URL de JDBC.
Consejos adicionales
Comprobación del tipo de conexión
Asegúrate de seleccionar el tipo de conexión correcto. Si seleccionas Amazon RDS o Amazon Redshift en Tipo de conexión, AWS Glue rellenará automáticamente la VPC, la subred y el grupo de seguridad.
La característica de conexión de prueba solo funciona para las versiones 5.x de MySQL. El controlador JDBC integrado de AWS Glue no es compatible con la versión 8 de MySQL. Si pruebas la conexión con una versión de MySQL posterior a la 5.x, es posible que aparezca un error de tiempo de espera de conexión. Utiliza tu conexión de AWS Glue para conectarte a la versión 8 de MySQL. Introduce el controlador Java Archive (JAR) compatible para la versión 8 de MySQL y versiones posteriores para usar la conexión en un trabajo de extracción, transformación y carga (ETL). A continuación, carga el archivo JAR en tu trabajo. Para obtener más información, consulta Tipos de conexión y opciones para ETL en AWS Glue para Apache Spark.
Verificación de que el DNS no esté causando los problemas
Para verificar que el DNS no esté causando los problemas, utiliza la dirección IP pública o privada del almacén de datos como URL de JDBC para la conexión de AWS Glue. Desactiva el campo Requerir conexión SSL porque ya no se usa un nombre de dominio.
Comprobación de si el controlador es incompatible
Proporciona el controlador correcto como un archivo JAR adicional en las propiedades del trabajo, junto con el nombre de la conexión fallida. Si especificas el nombre de la conexión como propiedad del trabajo, AWS Glue usará la configuración de red de la conexión, por ejemplo, la VPC y las subredes. Crea el DataFrame de Spark con el archivo JAR en las propiedades del trabajo para anular los controladores de almacén de datos de AWS Glue predeterminados.
También puedes convertir el DataFrame en un DynamicFrame de AWS Glue. Para obtener más información, consulta fromDF.
Comprobación de si el almacén de datos de JDBC es de acceso público
Usa MySQL Workbench y la URL de JDBC para conectarte al almacén de datos. Como alternativa, inicia una instancia de Amazon EC2 que tenga acceso SSH a la misma subred y a los mismos grupos de seguridad que utilizas para la conexión. Luego, usa SSH para conectarte a la instancia y ejecuta el siguiente comando para probar la conectividad:
dig hostname$ nc -zv hostname port
Información relacionada
Vídeos relacionados


Contenido relevante
preguntada hace 9 meses
preguntada hace 9 meses
preguntada hace un año
preguntada hace 8 meses