为什么我的node / Heroku应用程序不能连接到RDS?

时间:2017-02-13 16:14:55

标签: amazon-web-services heroku amazon-rds

我正在从Heroku PostgreSQL迁移到RDS。对于我的RDS,我设置了:

Availability Zone us-east-1e

当我尝试从我的应用程序连接到数据库时,我得到了

2017-02-13T16:11:09.087276+00:00 app[scorebot.1]: Unhandled rejection SequelizeConnectionError: connect ETIMEDOUT ip.ad.re.ss:5432

我可以从家用电脑连接到该IP。那么为什么我不能从Heroku那里做到呢?

1 个答案:

答案 0 :(得分:1)

您应该使用RDS提供的端点DNS名称而不是显式IP地址。该DNS名称可以在AWS内部(Heroku运行的位置)内部解析为不同的IP地址,而不是本地服务器上的远程IP地址。如果您的RDS服务器有故障转移事件,您应该使用该DNS名称,此时IP地址可能会发生变化。

我假设您拥有" Publicly Accessible"因为您可以从本地计算机连接,因此在RDS实例上启用了标志。您还需要检查分配给RDS实例的安全组。如果您只允许安全组中的本地IP地址,则阻止来自Heroku的连接。