Como montar um servidor PostgreSQL dedicado no Brasil com custo previsível?

Um servidor PostgreSQL dedicado em VPS Runstack no Brasil (datacenter SP01 da OPEN DATACENTER) entrega latência abaixo de 15ms para aplicações brasileiras, custo fixo em real e controle total sobre configuração, extensões e backups. Sem limites de conexão impostos por terceiros.

O problema

Serviços gerenciados de banco (PlanetScale, Supabase Cloud, Neon) cobram por conexão, por compute hora ou têm limites de storage em planos baratos. E tudo em dólar. Bancos em servidores nos EUA adicionam 100ms+ de latência por query.

Como a Runstack resolve

PostgreSQL 16 via Docker em VPS Runstack: você configura `max_connections`, `shared_buffers`, `work_mem` e instala qualquer extensão (pgvector, PostGIS, TimescaleDB). Backup via pg_dump ou WAL streaming. Custo fixo em real.

terminal
# PostgreSQL 16 com Docker (configuração de produção)
cat <<'EOF' > docker-compose.yml
services:
  postgres:
    image: postgres:16
    restart: always
    ports:
      - "127.0.0.1:5432:5432"  # Apenas localhost (não expor ao exterior!)
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: senha-forte-aqui
      POSTGRES_DB: produção
    volumes:
      - pg_data:/var/lib/postgresql/data
      - ./postgresql.conf:/etc/postgresql/postgresql.conf:ro
    command: postgres -c config_file=/etc/postgresql/postgresql.conf
    shm_size: 256m

volumes:
  pg_data:
EOF

# postgresql.conf (tuning básico para 2–4 GB RAM)
cat <<'EOF' > postgresql.conf
max_connections = 100
shared_buffers = 512MB
work_mem = 8MB
maintenance_work_mem = 128MB
effective_cache_size = 1536MB
wal_level = replica
EOF

docker compose up -d

# Backup agendado (cron diário às 3h)
# crontab -e
# 0 3 * * * pg_dump -h localhost -U admin producao | gzip > /backup/pg_$(date +%Y%m%d).sql.gz

Comparativo rápido

AspectoRunstack + PostgreSQLSupabase CloudNeon
Servidor no Brasil✓ SP01, São Paulo✗ EUA (AWS)✗ EUA
Latência (de SP)< 15 ms~120 ms~120 ms
CustoR$ 59-144/mês fixoUSD 25+/mêsUSD 19+/mês
Sem limite conexões✓ (você configura)✗ por plano✗ por plano
Extensões livres✓ qualquer extensão✓ (lista limitada)✓ (lista fixa)
Backup sob controle✓ total✓ (plataforma)✓ (plataforma)

Perguntas frequentes

Sim. Você tem controle total sobre o PostgreSQL. Instale qualquer extensão com `CREATE EXTENSION vector;` ou use imagens Docker com extensões pré-compiladas (`pgvector/pgvector:pg16`, `postgis/postgis:16`).

Não exponha a porta 5432 diretamente. Use túnel SSH (`ssh -L 5432:localhost:5432 root@ip`) ou uma VPN WireGuard. Para acesso de múltiplas apps, use PgBouncer como connection pooler na frente do PostgreSQL.

Para bancos pequenos a médios (< 10 GB, < 50 conexões simultâneas), o Basic (20 GB NVMe) é suficiente. Para bancos grandes ou com queries analíticas pesadas, use o Pro (4 GB RAM, 40 GB NVMe) ou Business.

Configure WAL streaming replication com uma segunda VM Runstack como standby. Use `primary_conninfo` no `recovery.conf` do standby. Para failover automático, use Patroni com Consul ou etcd.

Sim. NVMe oferece latência de I/O muito inferior a HDDs e SSDs SATA tradicionais, o que beneficia diretamente workloads de banco de dados com muitos writes e checkpoints frequentes.

Não quer configurar manualmente?

Seu servidor no ar em menos de 5 minutos com a Runstack. Infraestrutura da OPEN Datacenter, com servidores em São Paulo.