Configuración de Bases de Datos con Django y AWS RDS
Clase 28 de 32 • Curso de Django
Resumen
Preparar una aplicación para producción requiere asegurar que el entorno de desarrollo sea compatible con el entorno de producción. Aquí exploramos cómo configurar una base de datos PostgreSQL local y en AWS para asegurar una transición fluida.
¿Por qué cambiar de base de datos para producción?
El entorno de producción puede tener muchos usuarios simultáneos, lo que exige una base de datos capaz de manejar múltiples conexiones de manera eficiente. SQLite, aunque útil para desarrollo, no es ideal para producción. PostgreSQL, por otro lado, ofrece la capacidad necesaria para manejar estas demandas.
¿Cómo configurar PostgreSQL localmente?
-
Modificar configuración en Django:
- Abrir el archivo
settings.py
en el proyecto. - Buscar la sección de configuración de la base de datos y reemplazar SQLite con PostgreSQL.
- Ejemplo de configuración:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '', } }
- Abrir el archivo
-
Verificar conexión:
- Ejecutar
psql -h localhost
para asegurarse de que PostgreSQL está instalado y configurado correctamente. - Crear y migrar la base de datos con
python manage.py migrate
.
- Ejecutar
¿Qué errores pueden surgir al configurar PostgreSQL?
Un error común es la falta de la librería psycopg2
. Este problema se soluciona instalando la librería necesaria:
pip install psycopg2-binary
Esta librería permite a Django comunicarse con PostgreSQL de manera eficiente.
¿Cómo configurar PostgreSQL en AWS?
-
Crear una instancia en AWS RDS:
- Iniciar sesión en AWS y buscar RDS.
- Crear una instancia de base de datos PostgreSQL usando la capa gratuita.
- Configurar el nombre de la base de datos, usuario y contraseña.
-
Configurar reglas de seguridad:
- Acceder a los grupos de seguridad y editar las reglas de ingreso y egreso para permitir el tráfico desde la IP local.
-
Conectar Django a AWS RDS:
- Modificar el archivo
settings.py
para incluir las credenciales de AWS RDS. - Ejemplo:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': 'mydatabase.amazonaws.com', 'PORT': '5432', } }
- Asegurarse de no incluir credenciales sensibles en el repositorio.
- Modificar el archivo
¿Cómo manejar las credenciales de manera segura?
Es crucial no almacenar las credenciales en el archivo settings.py
para evitar comprometer la seguridad del proyecto. Utilizar variables de entorno o servicios de gestión de secretos es la mejor práctica para mantener la seguridad de la información sensible.