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.
# 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.gzComparativo rápido
| Aspecto | Runstack + PostgreSQL | Supabase Cloud | Neon |
|---|---|---|---|
| Servidor no Brasil | ✓ SP01, São Paulo | ✗ EUA (AWS) | ✗ EUA |
| Latência (de SP) | < 15 ms | ~120 ms | ~120 ms |
| Custo | R$ 59-144/mês fixo | USD 25+/mês | USD 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.