PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

django ne peut pas se connecter à RDS postgresql

Modifier :

Je viens de parcourir à nouveau cela et j'ai un moyen plus simple.

Lorsque vous essayez d'utiliser une base de données RDS existante avec Django sur EC2 ou EB, vous devrez ajuster les groupes de sécurité, puis obtenir les paramètres appropriés et les définir en tant que variables d'environnement (RDS_*)

1) Créez RDS et associez-les :

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) Définissez ceux en utilisant, par exemple, eb setenv

3) Accédez à votre instance EC2/EB et obtenez le groupe de sécurité pour cela, par exemple. awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf

4) Accédez au panneau de votre instance RDS, faites défiler jusqu'à Groupes de sécurité et notez le groupe de sécurité dont il dispose. par exemple. rds-launch-wizard-1 (ab-sdjfalkajsdf39)

5) Sélectionnez le groupe de sécurité RDS et ajoutez une règle entrante avec le type :PostgreSQL (ou la base de données que vous utilisez) et utilisez l'instance EC2 ou EB que vous avez obtenue à l'étape 2 comme source (awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf ). Le protocole et la plage de ports doivent se remplir automatiquement.

6) Enregistrez-le

C'est tout.

Original :

Pour tous ceux qui tombent sur cette question :

Lorsque vous essayez d'utiliser une base de données RDS existante avec Django sur EC2 ou EB, vous devrez ajuster les groupes de sécurité, puis obtenir les paramètres appropriés et les définir en tant que variables d'environnement (RDS_*)

1) Créez RDS et associez-les :

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) Définissez ceux en utilisant, par exemple, eb setenv

3) Accédez à votre instance EC2/EB et obtenez le groupe de sécurité pour cela, par exemple. awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf et pour l'équilibreur de charge :awseb-e-adsfadsf-stack-AWSEBLoadBalancerSecurityGroup-asdfadsf

4) Accédez au panneau de votre instance RDS, faites défiler jusqu'à Groupes de sécurité et notez le groupe de sécurité dont il dispose. par exemple. rds-launch-wizard-1 (ab-sdjfalkajsdf39)

5) Cliquez sur modifier pour l'instance RDS, et dans le paramètre Groupes de sécurité au milieu, ajoutez le groupe de sécurité de l'équilibreur de charge que vous avez trouvé ci-dessus. Il devrait avoir des suggestions.

6) Accédez au tableau de bord EC2 et choisissez les groupes de sécurité dans le menu de gauche.

7) Sélectionnez le groupe de sécurité de l'équilibreur de charge et ajoutez une règle sortante. Le type doit être votre type RDS (PostgreSQL) et la destination doit être personnalisée et le groupe de sécurité de l'instance RDS. Enregistrer.

8) Faites de même pour Inbound, utilisez le même type RDS et la même destination

9) Sélectionnez le groupe de sécurité RDS et ajoutez une règle entrante, similaire à 8, mais en utilisant l'instance EC2 ou EB que vous avez obtenue à l'étape 2.

10) Sauvegardez, vous avez terminé. Ils devraient pouvoir travailler ensemble maintenant.

Je ne suis pas sûr à 100% que toutes ces étapes soient nécessaires, une ou deux ne le sont peut-être pas, mais cela a fait le travail pour moi.