通过 psycopg2 连接到 AWS RDS 数据库

Connect to AWS RDS database via psycopg2

我正在尝试使用 psycopg2 通过 python 脚本从我的计算机连接到我的 RDS 数据库。 python代码:

import psycopg2
from db_credentials import *
import logging

def get_psql_conn():
    conn = psycopg2.connect(dbname=DB_NAME, user=DB_USER, password=DB_PASS, host=DB_HOST)
    logging.info("connected to DB!")
    return conn

我收到以下错误:

psycopg2.OperationalError: could not connect to server: Operation timed out
        Is the server running on host ********* and accepting
        TCP/IP connections on port 5432?

我分配给 RDS 数据库的安全组:
SG 1:


SG 2:


现在我尝试创建一个安全组,允许我的计算机IP访问数据库。
研究组 3:


我可以从我的 ec2 实例连接到数据库,运行 与上面相同的 python 脚本。这似乎与第二个安全组有关,因为当我删除它时,我也无法再从我的 ec2 实例进行连接。然后它会抛出我在尝试从我的计算机连接时遇到的相同错误。


我对RDS和安全组了解甚少,只是跟着网上的教程,但貌似没看懂。


任何帮助是极大的赞赏!谢谢

从 Internet 访问 Amazon RDS 数据库时,需要为数据库配置 Publicly Accessible = Yes

这将为数据库实例分配一个 Public IP 地址。实例的 DNS 名称也将解析为 public IP 地址。

为了 public 只能访问的数据库的良好安全性,请确保安全组只允许从您的个人 IP 地址进行访问。