在没有NAT的情况下从不同子网上的EC2连接到RDS

时间:2017-01-31 17:17:03

标签: mysql amazon-web-services amazon-ec2 amazon-rds amazon-vpc

我在没有NAT的一个子网上运行RDS实例,并且在配置了Internet网关的另一个子网上运行EC2实例,两者都位于同一个VPC中。我已将RDS实例配置为不可公开访问。

我在远程EC2(在第二个子网上运行)中使用以下命令连接到RDS实例:

mysql -h xxxx.eu-central-1.rds.amazonaws.com -P 3306 -u root -p

我输入了在配置RDS时设置的正确密码,但是我收到以下错误:

  

无法连接到xxxx.eu-central-1.rds.amazonaws.com上的MySQL服务器

我做错了什么?我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

您很可能需要在分配给RDS服务器的安全组中打开端口3306。特别是,创建允许在端口3306上进入的规则,并为源使用分配给EC2服务器的安全组的ID。

答案 1 :(得分:0)

您的子网和/或PostgreSQL实例的安全组入口规则必须为PostgreSQL打开端口3306。如果您更改了默认端口,则必须使用该端口。

您的EC2实例不应该通过互联网与之通信,只需要在安全组中打开正确的端口。

如果您不允许EC2安全组中的所有出口数据,则需要确保EC2安全组上的出口端口3306已打开到RDS安全组。