I have an RDS instance running on one subnet without NAT, and an EC2 instance running on another subnet with an Internet Gateway configured, both located in the same VPC. I have configured the RDS instance to not be publicly accessible.
I am using the following command in my remote EC2 (running on the second subnet) to connect to the RDS instance:
mysql -h xxxx.eu-central-1.rds.amazonaws.com -P 3306 -u root -p
I have entered the correct password which I have set when configuring the RDS, but I get the following error:
ERROR 2003 (HY000): Can't connect to MySQL server on 'XXX.eu-central-1.rds.amazonaws.com' (110)
I've checked, it's not a name resolution problem. The ec2 converts the endpoint to the correct internal ip.
Here are my settings:
RDS
VPC: the same as the EC2
AVAILABILITY ZONE: eu-central-1b
SUBNET: in the RDS panel I can see all the subnets, yet I can see that there is one less available ip in the private subnet of zone b
SECURITY GROUP: private security group (no outbound rules, and in the inbound, single rule with the mysql port and the public security group as the source)
PUBLICLY ACCESSIBLE: no
MULTI AZ: no
EC2
VPC: the same as the RDS
AVAILABILITY ZONE: eu-central-1b
SUBNET: public subnet of zone b
SECURITY GROUP: public security group (all ports from any source as the inbound rule, and ssh, http and https ports from any source as the outbound rule)
I can access the EC2 instance using http and ssh. It works as expected.
VPC
VPC: both RDS and EC2 uses the same
SUBNETS: one public and one private for each AZ, 4 in total
DHCP: the default one (domain-name = eu-central-1.compute.internal
domain-name-servers = AmazonProvidedDNS
)
ROUTE TABLES: for the public subnets, route to local
(automatically) and to the internet getaway, for the private, only the local
(automatically)
ACLs: public: allow all
both in the inbound and in the outbound. private: allow all
on the inbound only. There is also a line with the id *
with deny all
, on both ACLs, both on inbound and on outbound, but I'm pretty sure that is suppose to be there, I can't delete it.
What am I doing wrong? Am I missing something?
SECURITY GROUP: private security group (no outbound rules, and in the inbound, single rule with the mysql port and the public security group as the source)
). Is there any difference between DB security groups and RDS security groups?(110)
meansConnection timed out
. That is allmost certainly security group related, assuming these two machines are in the same VPC.