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

Configurazione di Django e PostgreSQL su due diverse istanze EC2

SOSTEGNO AMAZON

Quindi ho finito per parlare anche con i ragazzi di Amazon dopo la risposta di David Wolever. Nel caso qualcuno di voi si imbattesse di nuovo in questo post. Il solo utilizzo dell'IP del server interno non è sufficiente, è comunque un buon inizio. Se stai eseguendo Ubuntu per la tua istanza Postgresql (preferibilmente Natty Narwhal), assicurati di modificare i file pg_hba.conf e postgresql.conf.

Di solito puoi trovare questi due file in:/etc/postgresql/8.4/main/(pg_hba.conf o postgresql.conf)

Intendiamoci, stiamo usando Postgresql 8.4 nel nostro stack, si è rivelata la versione più coerente e solida di Postgresql da girare su Natty Narwhal durante i nostri test.

Per diverse versioni di Postgresql (9.1, 9.0 ecc..) la directory in cui puoi trovare questi due file non è la stessa di quella sopra elencata. Assicurati di conoscere la directory corretta per questi file.

PASSAGGIO 1

Vai ad Amazon Management Console e assicurati che entrambe le istanze rientrino nello stesso gruppo di sicurezza. Postgresql e Django usano 5432 e 8000 per impostazione predefinita, quindi assicurati di avere queste due porte aperte!

PASSAGGIO 2

(Esegui questa operazione sul terminale nell'istanza postgresql)

sudo vim postgresql.conf

Premi "i" sulla tastiera per iniziare ad apportare modifiche. Usa il tasto freccia giù fino a trovare

LISTEN_ADDRESSES:'localhost'

Elimina l'hashtag in primo piano e, invece di 'localhost', aggiungi l'IP privato della tua istanza postgresql (puoi trovare l'ip privato sulla tua console di gestione EC2) e tu devi aggiungere anche 127.0.0.1.

ESEMPIO:

LISTEN_ADDRESSES:'ip privato, 127.0.0.1'

Assicurati di separare l'ip privato e l'indirizzo dell'host locale con una virgola e di lasciare tutto sotto una virgoletta.

Dopo aver apportato le modifiche, premi ESC e premi ZZ (due volte in maiuscolo per salvare le modifiche)

PASSAGGIO 3

sudo vim pg_hba.conf

Usa il tasto freccia giù finché non trovi qualcosa che assomiglia a questo:

           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

Ancora una volta, premi "i" sulla tastiera e apporta le modifiche esattamente come ho fatto sopra.

Noterai sotto IPv6, ho django_db e django_login, cambialo con il nome del tuo database postgresql e il tuo login utente che usi rispettivamente per il tuo database postgresql.

Dopo aver apportato le modifiche, premi ESC e premi ZZ (due volte in maiuscolo per salvare le modifiche)

PASSAGGIO 4 (Ciao quasi fatto!)

Riavvia il server postgresql usando questo comando nel terminale:

sudo /etc/init.d/postgresql restart

Congratulazioni! Il server è attivo e funzionante, tuttavia c'è un ultimo passaggio.

PASSAGGIO 5

Avvia la tua istanza Django EC2, vai su settings.py e cerca questo:

 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.
 }

In 'HOST':' ', cambialo in 'HOST':'qualunque sia l'IP privato dell'istanza Postgresql'

Salva le modifiche. Apri un terminale e trova la directory in cui si trova il tuo file manage.py. Una volta che sei in quella directory, esegui il seguente comando:./manage.py syncdb

Questi creeranno tutte le tabelle necessarie per i modelli che hai creato in Django. Congratulazioni, hai creato correttamente un collegamento tra la tua istanza del database e la tua istanza Django.

Se hai domande, sarò più che felice di aiutarti! Lascia un commento qui sotto e ti risponderò al più presto! :)