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回答
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
回答済み 2ヶ月前
profile picture
エキスパート
レビュー済み 1ヶ月前
0

Did you find any Solution @anquachdev?

aj
回答済み 2ヶ月前
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

回答済み 9日前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ