Há um momento específico em que um banco de dados gerenciado deixa de ser conveniente e vira uma parede. Você quer uma extensão que o nível não oferece. Você quer ver o plano de consulta real e ajustar o work_mem. Você quer um superusuário. Um serviço gerenciado é um ótimo padrão até o momento em que você precisa ser dono da coisa — e aí um VPS com root completo é a resposta honesta.
Esta página é sobre rodar seu próprio PostgreSQL ou Redis do jeito certo, e ser claro sobre onde uma máquina compartilhada é a escolha certa e onde não é.
O que um banco de dados realmente precisa
Bancos de dados se importam com duas coisas que um servidor de jogos não: memória para o conjunto de trabalho e I/O de disco. O formato aproximado:
- Um app — uma instância Postgres (ou Redis) mais um serviço de backend. O conjunto de trabalho costuma ser 1,7-2 GB. O Small (US$8) dá conta sem drama.
- Alguns apps, ou concorrência real de produção — mais conexões, caches maiores, jobs em segundo plano. O Medium (US$12) dá a folga.
- Outras máquinas precisam alcançá-lo — você quer um endereço estável e roteável, então um plano com IPv4 dedicado (Small-IP US$16 e acima). Mais sobre isso abaixo.
O Redis é ainda mais leve — é limitado por memória, então dimensione o plano pelo seu conjunto de dados mais overhead e pronto. O Postgres é o que recompensa um pouco de tuning.
O motivo real de fazer self-hosting: controle
É aqui que um VPS ganha seu lugar. Na sua própria máquina você tem:
- O
postgresql.confinteiro —shared_buffers,work_mem,max_connections, configurações de WAL, tudo, ajustado à sua carga em vez dos padrões de um fornecedor. - Qualquer extensão.
pgvectorpara embeddings e busca semântica,PostGISpara geoespacial,TimescaleDBpara séries temporais,pg_cron,pg_stat_statements— instale o que precisar. Níveis gerenciados frequentemente restringem a lista de extensões ou a colocam atrás de um plano mais alto. - Superusuário e o SO por baixo. Você pode mover o diretório de dados, ajustar o kernel, rodar
pg_dumpno seu próprio horário e configurar replicação por streaming para outra máquina se quiser.
Se nada disso importa para você, um banco gerenciado é genuinamente bom e você deveria usá-lo. Esta página é para o caso em que importa.
Onde uma máquina compartilhada é a ferramenta errada
Sendo direto: um VPS de vCPU compartilhado não foi feito para OLTP pesado — centenas de transações por segundo com escritas críticas de latência. Essa carga vive ou morre no I/O de disco garantido e num clock estável, e planos compartilhados não prometem nenhum. Se é o seu caso, você quer hardware dedicado, e preferimos te dizer agora a ver sua latência p99 envergonhar nós dois.
Para o caso muito mais comum — um banco atrás de um app, uma ferramenta interna, um armazenamento de analytics, um cache — um plano compartilhado é exatamente certo.
Backups não são opcionais
Self-hosting significa que backups são seu trabalho, e a única regra é: faça-os antes de precisar deles. Para o Postgres, pg_dump num cron para backups lógicos, ou arquivamento de WAL para recuperação a um ponto no tempo em qualquer coisa que você realmente valorize. Envie os dumps para fora da máquina — para armazenamento de objetos ou outro servidor — para que um disco morto não leve os backups junto. Teste uma restauração pelo menos uma vez. Um backup que você nunca restaurou é uma esperança, não um backup.
Deixando outros servidores conectarem
Se o banco só serve um app na mesma máquina, vincule-o ao localhost e pronto — nada a expor. No momento em que outra máquina precisa entrar, duas coisas mudam:
- Você precisa de um endereço estável e roteável — isso é um plano com IPv4 dedicado (Small-IP US$16, Medium-IP US$20). Planos NAT compartilham um endereço, o que é bom para saída mas não para ser um banco ao qual outros servidores discam.
- Você o protege por firewall com força. Abra a 5432 (ou 6379) só para os IPs específicos que precisam, nunca para
0.0.0.0/0, e exija TLS. Uma porta Postgres aberta na internet pública é encontrada em minutos.
Escolhendo o plano
| Configuração | Plano |
|---|---|
| Banco atrás de um app, só localhost | Small (US$8) |
| Alguns apps / concorrência de produção | Medium (US$12) |
| Outros servidores precisam conectar | Small-IP (US$16) / Medium-IP (US$20) |
| OLTP pesado, centenas de TPS | hardware dedicado, não um VPS compartilhado |
A maioria dos bancos self-hosted começa no Small e cresce para o Medium ou um plano com IP dedicado à medida que assumem mais apps ou clientes externos.
Por que aqui
Root completo significa que é seu banco, do começo ao fim — cada linha de config, cada extensão, seu próprio horário de backup, nenhum nível decidindo o que você pode instalar. O pagamento é em cripto (USDC ou USDT em Base, Ethereum ou Polygon), sem KYC, sem documentos. Root em cerca de 60 segundos após o pagamento, e você pode ter o Postgres aceitando conexões alguns minutos depois.
O resumo honesto: faça self-hosting quando quer controle — extensões, tuning, superusuário — e quando sua carga é moderada. Para o banco de um app pequeno a médio, um plano compartilhado é a ferramenta certa. Para centenas de TPS de OLTP crítico de latência, não é, e vamos dizer isso. Pronto? Escolha um plano.
Comentários
Nenhum comentário ainda. Seja o primeiro.