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

Configuration de Django et PostgreSQL sur deux instances EC2 différentes

SOUTIEN AMAZONE

J'ai donc fini par parler aux gars d'Amazon après la réponse de David Wolever. Juste au cas où l'un d'entre vous reviendrait sur ce post. Utiliser l'IP du serveur interne seul ne suffit pas, c'est cependant un bon début. Si vous exécutez Ubuntu pour votre instance Postgresql (de préférence Natty Narwhal), assurez-vous de modifier les fichiers pg_hba.conf et postgresql.conf.

Vous pouvez généralement trouver ces deux fichiers sur :/etc/postgresql/8.4/main/(pg_hba.conf ou postgresql.conf)

Remarquez que nous utilisons Postgresql 8.4 dans notre pile, il s'est avéré être la version la plus cohérente et la plus solide de Postgresql à exécuter sur Natty Narwhal lors de nos tests.

Pour différentes versions de Postgresql (9.1, 9.0 etc.), le répertoire dans lequel vous pouvez trouver ces deux fichiers n'est pas le même que celui indiqué ci-dessus. Assurez-vous de connaître le répertoire approprié pour ces fichiers.

ÉTAPE 1

Accédez à la console de gestion Amazon et assurez-vous que les deux instances se trouvent sous le même groupe de sécurité. Postgresql et Django utilisent 5432 et 8000 par défaut, alors assurez-vous que ces deux ports sont ouverts !

ÉTAPE 2

(Faites ceci sur le terminal de l'instance postgresql)

sudo vim postgresql.conf

Appuyez sur "i" sur votre clavier pour commencer à apporter des modifications. Utilisez la touche fléchée vers le bas jusqu'à ce que vous trouviez

LISTEN_ADDRESSES :'localhost'

Débarrassez-vous de la balise de hachage à l'avant et au lieu de 'localhost', ajoutez l'adresse IP privée de votre instance postgresql (vous pouvez trouver l'adresse IP privée sur votre console de gestion EC2) et vous devez également ajouter 127.0.0.1.

EXEMPLE :

LISTEN_ADDRESSES :'ip privée, 127.0.0.1'

Assurez-vous de séparer l'adresse IP privée et l'adresse de l'hôte local par une virgule et de tout laisser sous une seule citation.

Une fois que vous avez effectué les modifications, appuyez sur ESC et appuyez sur ZZ (deux fois en majuscule pour enregistrer les modifications)

ÉTAPE 3

sudo vim pg_hba.conf

Utilisez la touche fléchée vers le bas jusqu'à ce que vous trouviez quelque chose qui ressemble à ceci :

           Database administrative login by UNIX sockets
  local   all         postgres                          ident

  # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

  # "local" is for Unix domain socket connections only
  local   all         all                               md5
  # IPv4 local connections:
  host    all         all         127.0.0.1/32          trust
  # IPv6 local connections:
  host    all         all         ::1/128               md5
  local   django_db   django_login                      md5
  host    replication postgres    127.0.0.1/32          md5
  host    replication postgres    ::1/128               md5

Encore une fois, appuyez sur 'i' sur votre clavier et apportez les modifications exactement comme je l'ai fait ci-dessus.

Vous remarquerez que sous IPv6, j'ai django_db et django_login, remplacez-le par le nom de votre base de données postgresql et votre identifiant utilisateur que vous utilisez respectivement pour votre base de données postgresql.

Une fois que vous avez effectué les modifications, appuyez sur ESC et appuyez sur ZZ (deux fois en majuscule pour enregistrer les modifications)

ÉTAPE 4 (Presque terminé Hi5 !)

Redémarrez le serveur postgresql en utilisant cette commande dans le terminal :

sudo /etc/init.d/postgresql redémarrage

Bravo! Le serveur est opérationnel, mais il reste une dernière étape.

ÉTAPE 5

Lancez votre instance Django EC2, accédez à votre settings.py et recherchez ceci :

 DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.postgresql_psycopg2', 
 'NAME': 'django_db', 
 'USER': 'django_login',
 'PASSWORD': 'password', 
 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
 'PORT': '', # Set to empty string for default. Not used with sqlite3.
 }

Sous 'HOST' :' ' , remplacez-le par 'HOST' :'quelle que soit l'adresse IP privée de l'instance Postgresql'

Enregistrez les modifications. Ouvrez un terminal et recherchez le répertoire dans lequel se trouve votre fichier manage.py. Une fois dans ce répertoire, exécutez la commande suivante :./manage.py syncdb

Ceux-ci créeront toutes les tables nécessaires pour les modèles que vous avez créés dans Django. Félicitations, vous avez réussi à créer un lien entre votre instance Database et votre instance Django.

Si vous avez des questions, je serais plus qu'heureux de vous aider! Laissez un commentaire ci-dessous et je vous répondrai dès que possible ! :)