APOYO AMAZONICO
Así que terminé hablando con los chicos de Amazon después de la respuesta de David Wolever. Por si a alguno de vosotros os volvéis a encontrar con este post. Usar solo la IP del servidor interno no es suficiente, sin embargo, es un buen comienzo. Si está ejecutando Ubuntu para su instancia de Postgresql (preferiblemente Natty Narwhal), asegúrese de editar los archivos pg_hba.conf y postgresql.conf.
Por lo general, puede encontrar esos dos archivos en:/etc/postgresql/8.4/main/(pg_hba.conf o postgresql.conf)
Eso sí, estamos usando Postgresql 8.4 en nuestra pila, demostró ser la versión más consistente y sólida de Postgresql para ejecutar en Natty Narwhal durante nuestras pruebas.
Para diferentes versiones de Postgresql (9.1, 9.0, etc.), el directorio en el que puede encontrar estos dos archivos no es el mismo que se indica arriba. Asegúrese de conocer el directorio adecuado para estos archivos.
PASO 1
Vaya a la Consola de administración de Amazon y asegúrese de que ambas instancias estén en el mismo grupo de seguridad. Postgresql y Django usan 5432 y 8000 de manera predeterminada, ¡así que asegúrese de tener esos dos puertos abiertos!
PASO 2
(Haga esto en la terminal en la instancia de postgresql)
sudo vim postgresql.conf
Presione "i" en su teclado para comenzar a hacer cambios. Use la tecla de flecha hacia abajo hasta que encuentre
LISTEN_ADDRESSES:'localhost'
Deshágase de la etiqueta hash en el frente y, en lugar de 'localhost', agregue la IP privada de su instancia de postgresql (puede encontrar la IP privada en su consola de administración de EC2) y también debe agregar 127.0.0.1.
EJEMPLO:
LISTEN_ADDRESSES:'ip privada, 127.0.0.1'
Asegúrese de separar la IP privada y la dirección del host local con una coma y déjelo todo bajo una comilla.
Una vez que haya realizado los cambios, presione ESC y presione ZZ (dos veces en mayúsculas para guardar los cambios)
PASO 3
sudo vim pg_hba.conf
Usa la flecha hacia abajo hasta que encuentres algo parecido a esto:
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
Una vez más, presione 'i' en su teclado y realice los cambios exactamente como lo hice arriba.
Notará que en IPv6, tengo django_db y django_login, cámbielo por el nombre de su base de datos postgresql y el inicio de sesión de usuario que usa para su base de datos postgresql respectivamente.
Una vez que haya realizado los cambios, presione ESC y presione ZZ (dos veces en mayúsculas para guardar los cambios)
PASO 4 (¡Casi terminado Hi5!)
Reinicie el servidor postgresql usando este comando en la terminal:
sudo /etc/init.d/postgresql reinicio
¡Felicitaciones! El servidor está en funcionamiento, sin embargo, queda un último paso.
PASO 5
Inicie su instancia de Django EC2, vaya a su configuración.py y busque esto:
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.
}
En 'HOST':' ' , cámbielo a 'HOST':'cualquiera que sea la IP privada de la instancia de Postgresql'
Guarde los cambios. Abra una terminal y busque el directorio donde se encuentra su archivo manage.py. Una vez que esté en ese directorio, ejecute el siguiente comando:./manage.py syncdb
Estos crearán todas las tablas necesarias para los modelos que creó en Django. Felicitaciones, ha creado con éxito un enlace entre su instancia de base de datos y su instancia de Django.
Si tienes alguna pregunta, ¡estaré más que feliz de ayudarte! ¡Deja un comentario a continuación y te responderé lo antes posible! :)