Communications link failure between Glue and AWS RDS

1

I am trying to extract data from AWS RDS using AWS Glue. This RDS is using mariaDB engine and is in different account and VPC. When I am testing the Glue connection it is showing successful. Also my Glue crawler can crawl the data successfully. But when I am running a glue job with same connection, I am getting a Communications link failure error.

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

I have created a VPC with 1 public and 1 private subnet. I created a NAT Gateway in the public subnet and allocated an elastic IP to it. This elastic IP has been added to the inbound rules of the RDS security group. Then I edited route table associated with my private subnet and added destination 0.0.0.0/0 and target - Nat Gateway(created in public subnet). In my Glue Connection, I have mentioned The VPC, private subnet, and the security group.

This configuration was working well, and I have been able to extract the data from the RDS for one month.. But although test connection and crawler works Glue job fails.

3 Risposte
0

I am experiencing with this same one and this is a critical issue with my production pipeline. Urgently seeking assistance for resolution.

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
	at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
	at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:342)
	at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:167)
	at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350)
	at com.mysql.cj.NativeSession.connect(NativeSession.java:157)
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:953)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:823)
	... 30 more
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
	at sun.security.ssl.Alert.createSSLException(Alert.java:131)
	at sun.security.ssl.Alert.createSSLException(Alert.java:117)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:318)
	at sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293)
	at sun.security.ssl.TransportContext.dispatch(TransportContext.java:185)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:152)
	at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1401)
	at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1309)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:440)
	at com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:317)
	at com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188)
	at com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:97)
	at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:333)
	... 35 more
con risposta 2 mesi fa
profile picture
ESPERTO
verificato un mese fa
0

Did you find any Solution @anquachdev?

aj
con risposta 2 mesi fa
0
  • Note that Glue will only use private IP addresses from the subnet you have configured, so you will be required to make sure that these private IPs have access to the data store

So the EC2 instance you used to test the connection, make sure you were able to connect from its private IP address to the external database

  • Additionally, the security group used in the connection should have a self-referencing rule to allow connectivity between the Glue workers

https://repost.aws/questions/QUQxpEKTr8Sde7wRupmXT8iA/aws-glue-an-error-occurred-while-calling-o95-getdynamicframe-communications-link-failure#ANCh2bbMexSWiInPZs_kJDhg

con risposta 9 giorni fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande