Separar la base de datos del servidor web es una práctica fundamental en arquitectura de aplicaciones. AWS RDS permite crear instancias de bases de datos administradas que incluyen copias de seguridad, actualizaciones automáticas y encriptación de disco, liberándote de tareas operativas que consumirían horas de trabajo manual.
¿Qué es AWS RDS y por qué usarlo en producción?
RDS (Relational Database Service) es el servicio de bases de datos relacionales administradas de Amazon. Su principal ventaja es que reduce el esfuerzo operativo: AWS se encarga de las copias de seguridad, los parches de seguridad y las actualizaciones del motor de base de datos [0:06]. Internamente, RDS crea una instancia de cómputo EC2 etiquetada como DB, pero esta es completamente administrada por Amazon, lo que significa que no necesitas acceder al sistema operativo del servidor.
Para acceder al servicio, basta con buscar "RDS" en la consola de AWS y entrar al dashboard, donde se visualizan todas las instancias creadas y sus parámetros de configuración [0:26].
¿Cómo crear una instancia con Standard Create?
Al hacer clic en DB Instances y luego en Create database, aparecen dos modos de creación [0:42]:
- Standard Create: permite configurar cada parámetro manualmente.
- Easy Create: toma valores por defecto y simplifica el proceso.
En el modo estándar se selecciona el motor (en este caso PostgreSQL con Aurora), la versión del motor y el tipo de entorno. Las opciones de entorno son:
- Producción: crea varias instancias con alta disponibilidad, ideales para tráfico elevado.
- Dev/Test: pensado para desarrollo y pruebas con costos más bajos.
La recomendación es dimensionar la base de datos según la cantidad de usuarios esperados y monitorear el rendimiento para evitar sobrecostos [1:12].
¿Qué parámetros de seguridad y conectividad configurar?
La llave de encriptación protege el disco duro de la instancia, impidiendo que los datos sean leídos incluso si el servidor es comprometido [1:40]. En almacenamiento, la opción IO Optimized equilibra las operaciones de entrada y salida para un rendimiento adecuado [1:55].
En la sección de conectividad es donde se define quién puede acceder a la base de datos [2:40]:
- Se vincula directamente a una instancia EC2 específica (por ejemplo, Python Server).
- La base de datos no se expone públicamente, lo que significa que aunque alguien obtenga usuario y contraseña, no podrá conectarse si no proviene de la instancia autorizada.
- El VPC y los grupos de seguridad se heredan de la configuración de la EC2.
La zona de disponibilidad determina la ubicación física del servidor. Si se configuran réplicas, la base de datos se distribuye en múltiples zonas para mantener disponibilidad ante catástrofes naturales [3:07].
¿Cómo crear una instancia gratuita con Free Tier?
Para entornos de desarrollo, es más práctico usar Easy Create con la opción Free Tier, que ofrece un año de uso gratuito con una instancia de 2 CPUs y 1 GB de RAM [4:12]. Los pasos son:
- Seleccionar PostgreSQL como motor.
- Nombrar la instancia (por ejemplo, platsi-database).
- Configurar usuario y contraseña segura (sin arrobas, slash ni comillas).
- Vincular la instancia EC2 correspondiente.
La base de datos no estará disponible de inmediato. Su estado pasará por creación, luego backup y finalmente quedará activa [4:55].
¿Cómo conectarse desde EC2 a la base de datos RDS?
Una vez que la instancia muestra el estado disponible, se obtiene el endpoint desde el panel de detalles de RDS [5:30]. Desde la terminal de la instancia EC2, el comando de conexión es:
bash
psql -h <endpoint> -U postgres postgres
Tras ingresar la contraseña, se confirma la conexión exitosa. Luego se crea la base de datos del proyecto:
sql
CREATE DATABASE rds_platsi OWNER postgres;
Finalmente, se actualiza el archivo .env con la nueva cadena de conexión [6:10]:
postgresql://postgres:<contraseña>@<endpoint>:5432/rds-platsi
Para verificar que todo funciona, se ejecutan las migraciones contra la nueva base de datos. Si se completan correctamente, la aplicación ya está conectada a una instancia administrada por AWS [6:48].
Con la base de datos en RDS, el servidor web queda liberado de esa carga. Como reto, intenta desinstalar PostgreSQL del servidor EC2 y comparte en los comentarios qué comandos utilizaste.