2017-02-13 3 views
0

Ich migriere von Heroku PostgreSQL zu RDS. Für meine RDS, ich gesetzt haben:Warum wird meine Node/Heroku App nicht mit RDS verbunden?

Availability Zone us-east-1e

Wenn ich versuche, obwohl an die DB von meiner App zu verbinden, erhalte ich

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

ich zu dieser IP von meinem Heimcomputer verbinden kann. Warum kann ich es nicht von Heroku aus machen?

Antwort

1

Sie sollten den von RDS bereitgestellten Endpunkt-DNS-Namen anstelle einer expliziten IP-Adresse verwenden. Dieser DNS-Name kann intern in AWS (wo Heroku ausgeführt wird) zu einer anderen IP-Adresse aufgelöst werden als auf dem lokalen Server. Sie sollten diesen DNS-Namen trotzdem für den Fall verwenden, dass Ihr RDS-Server ein Failover-Ereignis hat. An diesem Punkt kann sich die IP-Adresse ändern.

Ich nehme an, dass Sie das Flag "Öffentlich zugänglich" auf der RDS-Instanz aktiviert haben, da Sie eine Verbindung von Ihrem lokalen Computer herstellen können. Sie müssen auch die Sicherheitsgruppe überprüfen, die der RDS-Instanz zugewiesen ist. Wenn Sie nur Ihre lokale IP-Adresse in der Sicherheitsgruppe zulassen, werden Verbindungen von Heroku blockiert.

+0

Ich benutze die DNS 'mysite.us-east-1.rts.amazonaws.com: 5432'. Ich habe 'Publicly Available' aktiviert, daher bin ich mir nicht sicher, warum ich keine Verbindung herstellen kann. – Shamoon

+0

OK, wie sieht Ihre RDS-Sicherheitsgruppe aus? –

Verwandte Themen