我已经设置了一个带有S3和MySQL RDS文件的Ec2。如果我在本地运行我的节点应用程序,我可以连接到RDS,它工作得很好。但是,当我通过SSH连接到Ec2和npm start
时,它从不连接,连接超时。只有错误是错误连接超时。
我有一个RDS的安全组入站规则的截图。请注意我的桌面有一个IP(这是我通过本地运行应用程序来连接的方式)。
这是我第一次设置Ec2和RDS。有什么看的吗?我知道我不需要所有这些规则,但我错过了什么?我该如何排除故障?还附有EC2的出站SG规则的屏幕截图。
此外,我在Ec2上配置了一个MySQL服务器,可以通过SSH连接到Ec2并从中连接到RDS数据库。如果Ec2连接到RDS,还有另一种简单的方法可以测试吗?
如果第一个TCP规则引用连接到您尝试访问此RDS实例的EC2实例的安全组,则此SG将自动允许流量,并且所有其他规则(笔记本连接除外)都是多余的。
请注意,您需要允许连接到EC2实例的SG上的出站通信以及能够访问RDS。最简单的方法,也许最好的方法是以与在RDS SG中相同的方式引用RDS的SG。
TCP 3306 -> destination: SG-<sg-attached-to-your-rds>
如果问题仍然存在,那么您应该检查NACL配置(如果您的实例与RDS实例不在同一子网中),并允许这些特定类型的流量在这些子网之间进行通信。
我认为最初的问题实际上不是EC2到RDS连接,尽管上面的建议是必不可少的。该应用程序的主页不需要来自数据库的任何数据,但根本没有加载,所以我终于弄清楚这是我的计算机和使用公共IP地址的EC2之间的连接问题。这应该是先前要检查的 - 线索是主页难题和SSH上成功的MySQL连接。
我只需在端口3000的EC2安全组上添加入站规则。它已设置为All Traffic。知道为什么所有交通不起作用?