尝试使用RDS运行Ec2时,连接超时。我的安全组规则看起来正确吗?

时间:2019-04-03 21:30:58

标签: amazon-web-services amazon-ec2 amazon-rds aws-security-group

我用来自S3的文件和MySQL RDS设置了一个Ec2。如果我在本地运行Node应用程序,则可以连接到RDS,它可以正常运行。但是,当我通过SSH进入Ec2和npm start时,它永远不会连接并且连接超时。唯一的错误是错误连接超时。

我下面有RDS的安全组入站规则的屏幕截图。请注意,我的台式机只有一个IP(通过在本地运行应用程序,我可以通过它进行连接)。

这是我第一次设置Ec2和RDS。有什么看的吗?我知道我不需要所有这些规则,但是我想念的是什么?我该如何排除故障?还随附了EC2出站SG规则的屏幕截图。

此外,我在Ec2上配置了一个MySQL服务器,可以通过SSH进入Ec2并连接到RDS数据库。有没有另一种简单的方法可以测试Ec2是否连接到RDS?

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

如果该第一个TCP规则引用的是您尝试从中访问此RDS实例的E​​C2实例所附加的安全组,则该SG和所有其他规则(从您的笔记本计算机进行的连接除外)将自动允许流量是多余的。

请注意,您需要允许连接到EC2实例的SG上的出站通信,并能够访问RDS。最简单的方法,也许最好的方法是像在RDS SG中一样引用RDS的SG。

TCP 3306 -> destination: SG-<sg-attached-to-your-rds>

如果问题仍然存在,则应检查NACL配置(如果您的实例与RDS实例不在同一子网中),并允许这些子网之间针对这种特定类型的通信进行通信。

答案 1 :(得分:0)

我相信最初的问题实际上并不是EC2到RDS的连接,尽管上述建议很重要。该应用程序的主页不需要数据库中的任何数据,但它根本没有加载,因此我最终发现这是我的计算机与使用公共IP地址的EC2之间的连接问题。这应该早点检查一下-线索可能是主页难题和SSH上成功的MySQL连接。

我只需要在EC2的安全组上为端口3000添加入站规则。该规则已设置为“所有流量”。知道为什么所有流量都不起作用吗?