我想为我的项目尝试亚马逊RDS,所以我在亚马逊AWS中创建了微实例。我是AWS的新手,我将我的服务器IP添加到安全组和VPC。我试图从服务器连接:
psql -h digrin.asdada.us-west-2.rds.amazonaws.com -p 5432 -d digrin -U my_username -W
psql: could not connect to server: Connection timed out
Is the server running on host "digrin.asdada.us-west-2.rds.amazonaws.com" (54.71.212.12) and accepting
TCP/IP connections on port 5432?
我可以从localhost登录,所以我多次通过amazon AWS设置,并在我认为可能导致问题的地方添加了服务器的IP。没运气。
然后我尝试从另一台服务器登录,我没有在AWS的任何地方添加IP,我确实连接成功 - 因此我的数据库可用。 所以我认为我的服务器提供商阻止5432端口或其他类似的东西。我和他们一起创建了门票(Scaleway),这就是我得到的:
您好,
请理解我们不提供有关软件管理/防火墙配置的支持。 最后,除非您修改安全组的配置,否则任何端口都不会在网络上锁定任何内容。
我不明白问题出在哪里。有任何想法吗?
答案 0 :(得分:2)
对RDS实例的网络访问由安全组控制,安全组的行为有点像防火墙。可以在安全组中制定规则,以允许该安全组的其他成员彼此连接,这是默认安全组中的默认策略。因此,因为您的RDS实例和您的EC2实例是同一安全组的成员,所以他们可以自由地进行通信,但该组之外的任何其他内容都不能与任何一个主机通信。
实例一次可以是多个安全组的成员,如果有规则允许实例所属的任何安全组中的流量,则允许流量。本着安全的精神,我建议不要打开超过必要的端口,不建议在默认安全组中打开端口,因为这样可以有效地使这些端口在该安全组中的所有实例上都可访问。
因此,要允许访问您的Scaleway主机: