Guía de despliegue

PostgreSQL en VPS: base de datos fiable y controlada

Desplegar en un VPS Cloud →

Tutorial

PostgreSQL en VPS: base de datos fiable y controlada

Bases de datos4 min de lectura7 pasos

PostgreSQL suele ser la base de datos de confianza de las aplicaciones de negocio, las API y las herramientas de análisis. En un VPS ServOrbit, usted controla la versión, el almacenamiento, las copias de seguridad y los accesos en lugar de pagar una base de datos gestionada por GB. Esta guía se centra en las decisiones que importan: persistencia, usuarios, red y restauración.

Contenido· Por qué autoalojar PostgreSQL en un VPS1/5
  1. 01Por qué autoalojar PostgreSQL en un VPS
  2. 02Los beneficios concretos de un PostgreSQL autoalojado
  3. 03Requisitos de hardware y software
  4. 04Desplegar PostgreSQL con Docker en producción
  5. 05La documentación oficial

Por qué autoalojar PostgreSQL en un VPS

Las bases de datos gestionadas (RDS, Cloud SQL) facturan por GB almacenado, por IOPS y por conexiones, y a menudo limitan las extensiones disponibles. Al desplegar PostgreSQL en su propio VPS, activa pg_stat_statements, PostGIS, pgvector o TimescaleDB sin restricción, elige su versión exacta (15, 16, 17) y mantiene sus datos en una jurisdicción que usted controla. Un VPS con disco SSD ofrece latencias de I/O muy bajas, ideales para las cargas transaccionales de una aplicación en producción. Paga una tarifa fija y previsible, y decide usted solo su estrategia de replicación, de cifrado y de retención de las copias de seguridad.

Los beneficios concretos de un PostgreSQL autoalojado

  • Coste fijo y previsible: sin facturación por GB, por IOPS ni por número de conexiones activas.
  • Extensiones libres: pgvector para la IA, PostGIS para lo geoespacial, TimescaleDB para las series temporales.
  • Control total de las copias de seguridad: pg_dump planificado, pg_basebackup o replicación física hacia un segundo VPS.
  • Ajuste fino de postgresql.conf (shared_buffers, work_mem, WAL), imposible en la mayoría de las ofertas gestionadas.
  • Soberanía de los datos: sus datos permanecen en una infraestructura que usted elige.
  • Acceso de superusuario real para auditar, perfilar y optimizar sin abrir un ticket de soporte.

Requisitos de hardware y software

Para una instancia PostgreSQL de desarrollo o un proyecto pequeño en producción, prevea un VPS con 2 vCPU, 4 GB de RAM y 40 GB de SSD NVMe: PostgreSQL aprovecha la memoria para su caché de páginas. Para una carga más sostenida (varios cientos de conexiones o conjuntos de datos de varias decenas de GB), apunte a 4 vCPU y 8 GB de RAM. En cuanto al software: Ubuntu 22.04 o 24.04 LTS, Docker Engine y el plugin Docker Compose v2, un nombre de dominio que apunte al VPS (p. ej.: db.mondomaine.com) si expone el acceso remoto, y un cortafuegos ufw configurado para dejar pasar solo lo estrictamente necesario. Reserve también un volumen Docker dedicado para PGDATA con el fin de desacoplar los datos del contenedor.

Desplegar PostgreSQL con Docker en producción

  1. Preparar el VPS y el cortafuegos

    Conéctese por SSH, actualice el sistema con apt update && apt upgrade -y e instale Docker mediante curl -fsSL https://get.docker.com | sh. Bloquee el puerto 5432 desde el exterior con ufw deny 5432: la base de datos nunca debe estar expuesta directamente a Internet.

  2. Escribir el docker-compose.yml

    Cree un servicio postgres:17, monte un volumen con nombre en /var/lib/postgresql/data y defina POSTGRES_PASSWORD, POSTGRES_DB y POSTGRES_USER mediante un archivo .env que nunca se suba al repositorio. Añada shm_size: 256mb para las ordenaciones voluminosas y un healthcheck con pg_isready.

  3. Lanzar e inicializar la base de datos

    Arranque con docker compose up -d, compruebe los logs con docker compose logs -f postgres y después conéctese con docker compose exec postgres psql -U app -d mabase. Cree sus roles de aplicación con privilegios mínimos en lugar de utilizar el superusuario.

  4. Exponer el acceso mediante un túnel o un proxy TLS

    Para un acceso remoto seguro, nunca abra 5432 en claro: utilice un túnel SSH (ssh -L 5432:localhost:5432) o coloque pgbouncer detrás de un reverse proxy. Active el SSL del lado de PostgreSQL con un certificado Let's Encrypt montado en el contenedor (ssl = on en postgresql.conf).

  5. Ajustar la configuración

    Ajuste shared_buffers a alrededor del 25% de la RAM, effective_cache_size al 50-75% y work_mem según sus consultas. Active pg_stat_statements para identificar las consultas lentas. Utilice la herramienta PGTune como punto de partida.

  6. Automatizar las copias de seguridad

    Programe un pg_dump diario mediante una tarea cron en el host, comprima en formato custom .dump y copie los archivos hacia un almacenamiento externo. Pruebe regularmente la restauración con pg_restore: una copia de seguridad no probada no existe.

  7. Conectarse por primera vez

    pgAdmin no está publicado en Internet: abra un túnel desde su equipo (ssh -L 5050:127.0.0.1:5050 root@<IP>) y después http://127.0.0.1:5050, e inicie sesión con [email protected] y la contraseña facilitada. A continuación añada su servidor («Add New Server») con el host db, el puerto 5432, el usuario postgres y esa misma contraseña.

Para alta disponibilidad, despliegue un segundo VPS en replicación física por streaming (primary_conninfo + slot de replicación). Obtiene un standby caliente listo para tomar el relevo, y puede derivar hacia él sus consultas de lectura pesadas (hot_standby = on) para aliviar el primario. Combinado con pgBackRest para copias de seguridad incrementales diferenciales, alcanza un RPO de unos minutos sin depender de un servicio gestionado.

La documentación oficial

Para la configuración avanzada, las opciones propias de la herramienta y los cambios de versión, consulte la documentación oficial de PostgreSQL. Esta guía cubre la puesta en línea en un VPS ServOrbit; la documentación del editor sigue siendo la referencia para los ajustes finos.

Despliegue su PostgreSQL en unos minutos

Lance un VPS Cloud de ServOrbit con plantilla Docker preconfigurada y SSD: el entorno ideal para alojar PostgreSQL sin facturación por GB.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva