Database

Aurora Serverless PostgreSQL: Despliegue On-Demand

Cuando migré la infraestructura de datos para una organización sanitaria pública con picos de tráfico impredecibles, reducir el coste operativo en un 40% durante las horas valle fue posible gracias a Aurora Serverless PostgreSQL. Este motor elimina la necesidad de dimensionar manualmente las instancias de database. Se adapta de forma dinámica a la carga real de la aplicación. Pagas solo por los recursos consumidos, lo que lo convierte en la solución ideal para cargas de trabajo variables, entornos de desarrollo y aplicaciones con picos de tráfico no predecibles. Crear un cluster PostgreSQL funcional toma segundos, sin aprovisionar servidores subyacentes. En esta guía, te mostraré el proceso exacto de creación, conexión y ajuste de un database Amazon Aurora Serverless PostgreSQL. Verás cómo aprovechar la escalabilidad automática para optimizar costes y mejorar la eficiencia operativa. Antes de comenzar, asegúrate de contar con una cuenta AWS activa y permisos para crear recursos RDS y VPC.

Requisitos Previos / Entorno de Prueba

  • Una cuenta AWS activa con facturación configurada.
  • Permisos IAM para crear y gestionar recursos RDS (Amazon Relational Database Service) y VPC (Virtual Private Cloud).
  • AWS CLI instalado y configurado con credenciales válidas. Opcional, pero imprescindible si buscas infraestructura como código.
  • Un cliente PostgreSQL como psql instalado en tu sistema para validar la conexión.
  • Conocimientos básicos de PostgreSQL y redes en AWS.

Creación del Cluster Aurora Serverless PostgreSQL

Desplegar un cluster Aurora Serverless PostgreSQL desde la consola AWS requiere pocos pasos. También puedes automatizar el proceso con AWS CLI o Terraform, pero la consola ofrece visibilidad inmediata sobre cada parámetro.

Acceso y Configuración desde la Consola

Accede a la consola AWS. En la barra de búsqueda superior, escribe «RDS» y selecciona el servicio RDS. Dentro de la consola RDS, haz clic en «Databases» en el panel izquierdo y luego en «Create database». Configura los siguientes parámetros críticos:

  1. Database creation method: Selecciona «Standard create».
  2. Engine type: Selecciona «Amazon Aurora».
  3. Aurora edition: Elige «Amazon Aurora PostgreSQL-Compatible Edition». Selecciona la versión PostgreSQL 14.7 o superior para aprovechar las últimas mejoras de rendimiento.
  4. Capacity settings: Selecciona «Serverless». Aquí está la clave del servicio.
  5. DB cluster identifier: Asigna un nombre al cluster, por ejemplo aurora-serverless-pg-prod.
  6. Credentials settings: Define el usuario administrador (por defecto postgres) y una contraseña robusta. Guarda estas credenciales en un gestor de secretos.
  7. Capacity configuration: Define la capacidad mínima y máxima en ACU (Aurora Capacity Units). Para entornos de desarrollo, configura 0.5 ACU mínimo y 2 ACU máximo. Esto limita el techo de gasto.
  8. Connectivity: Configura el VPC y el Security group. Restringe el acceso solo a tu IP o a la subred de tu aplicación.
  9. Additional configuration: Activa el monitorizado avanzado y configura los backups automatizados con un retention period de al menos 7 días.

Revisa la configuración y haz clic en «Create database». El aprovisionamiento tardará unos minutos.

Automatización con AWS CLI

Si prefieres evitar pasos manuales, puedes desplegar el cluster directamente desde tu terminal. Este enfoque garantiza repetibilidad. Ejecuta el siguiente comando para crear un cluster serverless con límites de ACU definidos:

aws rds create-db-cluster \n    --db-cluster-identifier aurora-serverless-pg-prod \n    --engine aurora-postgresql \n    --engine-version 14.7 \n    --master-username postgres \n    --master-user-password TuPasswordSegura123! \n    --scaling-configuration MinCapacity=0.5,MaxCapacity=2,AutoPause=true,SecondsUntilAutoPause=300

Este comando crea la estructura lógica. Después necesitarás crear la instancia del cluster asociada con create-db-instance.

Conexión y Validación del Motor

Una vez que el estado del cluster pase a «Available», necesitas el endpoint para conectarte.

Obtención del Endpoint y Ajuste de Red

En la consola RDS, selecciona el cluster aurora-serverless-pg-prod. En la pestaña «Connectivity & security», copia el Writer endpoint. Verifica que el Security group asociado permita tráfico entrante en el puerto 5432 desde tu dirección IP. Sin esta regla Inbound, la conexión será rechazada.

Conexión mediante psql

Abre un terminal y ejecuta el comando de conexión sustituyendo los valores por los tuyos:

psql -h aurora-serverless-pg-prod.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -U postgres -p 5432 -d postgres

Introduce la contraseña cuando el sistema la solicite. Una conexión exitosa mostrará el prompt de psql:

psql (14.7)
Type "help" for help.

postgres=>

Ejecuta una consulta de validación para confirmar la versión del motor:

SELECT version();

El resultado confirmará la versión de PostgreSQL desplegada.

Escalabilidad y Optimización de Costes

La verdadera ventaja de Aurora Serverless no es solo aprovisionar rápido, sino ajustar los recursos en tiempo real según la demanda, pagando por segundo de consumo.

Monitorización y Pruebas de Estrés

En la consola RDS, dentro de la pestaña «Monitoring» del cluster, encontrarás métricas de CPU, memoria y ACU consumidas. Observa estos gráficos durante un pico de tráfico. Verás cómo el sistema añade ACU sin intervención manual. Para validar que tu configuración responde a picos reales, simula una carga intensiva utilizando pgbench:

pgbench -h <endpoint> -U postgres -c 50 -j 4 -T 300 postgres

Durante la ejecución, monitoriza la métrica «ServerlessDatabaseCapacity» en CloudWatch. Verás cómo las ACU ascienden desde el mínimo configurado hasta absorber la demanda de las 50 conexiones concurrentes. Una vez finalizado el test, el sistema reducirá gradualmente la capacidad hasta el mínimo definido o pausará el cluster si el timeout de inactividad se alcanza.

Ajuste del Timeout de Inactividad

Aurora Serverless pausa el cluster si no recibe tráfico durante un periodo definido. Configurar este timeout reduce drásticamente la factura. En la consola RDS, modifica el cluster y ajusta el «Seconds until auto-pause» en la sección de capacidad. Un valor de 300 segundos funciona bien para entornos de desarrollo. Para producción, evalúa si la latencia de reactivación es aceptable.

Cuando configuré este timeout para un ente sanitario con 2.000 endpoints, el ahorro mensual superó el 35%, porque los entornos de análisis permanecían inactivos fuera de horario de consulta. Lee también: Automatización de infraestructura con Ansible

Puedes consultar la documentación oficial sobre los límites y comportamiento de escalado en AWS Aurora Serverless.

Errores Comunes y Resolución de Problemas

  • Error de conexión: «Connection timed out» o «Connection refused»
  • Causa: El Security group bloquea el tráfico entrante.
  • Solución: Añade una regla Inbound en el Security group permitiendo TCP puerto 5432 desde tu IP.
  • Error de autenticación: «Password authentication failed»
  • Causa: Credenciales incorrectas.
  • Solución: Verifica usuario y contraseña. Si es necesario, restablece la contraseña del master user desde la consola RDS modificando el cluster.
  • El cluster no escala automáticamente
  • Causa: El límite máximo de ACU está configurado demasiado bajo, o el pico de carga no es suficiente para disparar el escalado.
  • Solución: Sube el valor de ACU máximo en la configuración de capacidad. Simula carga con pgbench para observar el comportamiento.
  • Latencia alta tras un periodo de inactividad
  • Causa: El cluster se ha pausado completamente y necesita tiempo de reactivación (cold start).
  • Solución: Reduce el tiempo de auto-pause o establece una capacidad mínima de 1 ACU si la aplicación no tolera latencias iniciales de 20-30 segundos.

Conclusiones con Puntos Clave Operativos

Aurora Serverless PostgreSQL ajusta la capacidad de cómputo al vuelo, eliminando el sobredimensionamiento típico de las instancias de database tradicionales. Pagas por segundo de uso real. La configuración inicial toma minutos, y la gestión operativa se reduce a definir los límites de ACU y los Security groups. Los puntos clave operativos que debes retener:

  • Define rangos de ACU ajustados a la realidad de tu carga de trabajo para evitar sorpresas en la facturación.
  • Configura el auto-pause en entornos no productivos para cortar costes en horas inactivas.
  • Asegura los Security groups restringiendo el acceso al puerto 5432 solo a las IPs estrictamente necesarias, cumpliendo con los principios de mínimos privilegios.

Todavía no tengo una respuesta definitiva sobre si el serverless sustituirá por completo a las instancias provisionadas en entornos OLTP de alto rendimiento constante, pero para cargas impredecibles, es la opción más eficiente hoy mismo.

Comparte este artículo:

Escrito por

Rosario Giordano

Rosario Giordano es administrador de sistemas y consultor de TI especializado en c iberseguridad y cloud, con más de 20 años de experiencia en la gestión de infraestructuras Linux empresariales. Sus áreas de especialización incluyen el hardening de SSH, plataformas Kubernetes , bases de datos PostgreSQL, virtualización con VMware/Proxmox y el cumplimiento de los marcos de seguridad NIS2 e ISO 27001.