Issue in AWS Target Group health check that points to RDS MySQL(IP Target), Creates COUNT_HANDSHAKE_ERRORS in MySQL


Background: I have created private link to access RDS MySQL present in one AWS Account (Account-B) from another AWS Account (Account-A). so, in AWS account (Account-B), I have created a target group with IP target type and added IP address of RDS MySQL Instance. and attached that target group with a network load balancer and endpoint services.

Issue: I am able to access the RDS MySQL from another AWS Account(Account-A), in the AWS Account-B target group, to check the target health it is sending requests to RDS MySQL instance and somehow the MySQL captures all the request as invalid and increasing count in the table performance_schema.host_cache for the fields 'COUNT_HANDSHAKE_ERRORS' and 'SUM_CONNECT_ERRORS'.

once the value in the field SUM_CONNECT_ERRORS reaches 100 then MySQL is blocking the request from Account-A.

My Observation: If a request to MySQL goes through python mysql.connector package then MySQL is not creating any issue, but if request goes to MySQL from Target group's health check process, then MySQL considered that as 'COUNT_HANDSHAKE_ERRORS'.

I am able to make the health check alone to point wrong port and work, but i am curious to find the root cause for this issue or is it AWS fault on the health check process? Kindly help me to resolve this issue.

1 Answer


I have answered similar questions in the past.

The cause is a health check from NLB.
"COUNT_HANDSHAKE_ERRORS" gradually increases as NLB health checks are performed regularly.
Then RDS will deny access from NLB.
As a solution, try running the "FLUSH HOSTS;" command.
Execute this command to reset the connection error count.

profile picture
answered 15 days ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions