PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

django non può connettersi a RDS postgresql

Modifica:

Eseguilo di nuovo e trova un modo più semplice.

Quando stai cercando di utilizzare un database RDS esistente con Django su EC2 o EB, dovrai modificare i gruppi di sicurezza, quindi ottenere i parametri appropriati e impostarli come variabili di ambiente (RDS_*)

1) Crea RDS e abbinali:

Environment variables - RDS console label

RDS_HOSTNAME - Endpoint (this is the hostname)
RDS_PORT - Port
RDS_DB_NAME –  DB Name
RDS_USERNAME –  Username
RDS_PASSWORD – Password you set for your DB

2) Imposta quelli usando, ad esempio, eb setenv

3) Vai alla tua istanza EC2/EB e ottieni il gruppo di sicurezza per quello, ad es. awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf

4) Vai al pannello della tua istanza RDS, scorri verso il basso fino a Gruppi di sicurezza e prendi nota di quale gruppo di sicurezza ha. per esempio. rds-launch-wizard-1 (ab-sdjfalkajsdf39)

5) Seleziona il gruppo di sicurezza RDS e aggiungi una regola Inbound con tipo:PostgreSQL (o qualsiasi db che stai usando) e usando l'istanza EC2 o EB che hai ottenuto nel passaggio 2 come sorgente (awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf ). Il protocollo e l'intervallo di porte dovrebbero essere compilati automaticamente.

6) Salvalo

Questo è tutto.

Originale:

Per chiunque si imbatta in questa domanda:

Quando stai cercando di utilizzare un database RDS esistente con Django su EC2 o EB, dovrai modificare i gruppi di sicurezza, quindi ottenere i parametri appropriati e impostarli come variabili di ambiente (RDS_*)

1) Crea RDS e abbinali:

Environment variables - RDS console label

RDS_HOSTNAME - Endpoint (this is the hostname)
RDS_PORT - Port
RDS_DB_NAME –  DB Name
RDS_USERNAME –  Username
RDS_PASSWORD – Password you set for your DB

2) Imposta quelli usando, ad esempio, eb setenv

3) Vai alla tua istanza EC2/EB e ottieni il gruppo di sicurezza per quello, ad es. awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf e per il sistema di bilanciamento del carico:awseb-e-adsfadsf-stack-AWSEBLoadBalancerSecurityGroup-asdfadsf

4) Vai al pannello della tua istanza RDS, scorri verso il basso fino a Gruppi di sicurezza e prendi nota di quale gruppo di sicurezza ha. per esempio. rds-launch-wizard-1 (ab-sdjfalkajsdf39)

5) Fai clic su Modifica per l'istanza RDS e, nell'impostazione Gruppi di sicurezza al centro, aggiungi il gruppo di sicurezza del sistema di bilanciamento del carico che hai trovato sopra. Dovrebbe avere suggerimenti.

6) Vai alla dashboard di EC2 e scegli i gruppi di sicurezza dal menu a sinistra.

7) Selezionare il gruppo di sicurezza del servizio di bilanciamento del carico e aggiungere una regola in uscita. Il tipo dovrebbe essere il tuo tipo RDS (PostgreSQL) e la destinazione dovrebbe essere personalizzata e il gruppo di sicurezza dell'istanza RDS. Salva.

8) Fai lo stesso per Inbound, usa lo stesso tipo e destinazione RDS

9) Seleziona il gruppo di sicurezza RDS e aggiungi una regola Inbound, simile a 8, ma utilizzando l'istanza EC2 o EB che hai ottenuto nel passaggio 2.

10) Salva, il gioco è fatto. Dovrebbero essere in grado di lavorare insieme ora.

Non sono sicuro al 100% che tutti questi passaggi siano necessari, uno o due potrebbero non esserlo, ma questo ha fatto il lavoro per me.