Objetivos de aprendizado
Depois de ler este artigo, você vai conseguir:
- Entender os itens que compõem a conta de um PostgreSQL hospedado
- Comparar três modelos de cobrança de provedores conhecidos
- Estimar disco, RAM e custo mensal do seu banco com consultas SQL
O PostgreSQL é open source: ninguém cobra licença para usá-lo. Você paga pela máquina que o mantém ligado, pelo disco onde os dados ficam e, dependendo do provedor, por cada GB que sai da rede e por cada cópia guardada. Por isso a pergunta "quanto custa?" tem respostas que vão de zero a centenas de dólares.
Os preços de terceiros mudam com frequência, por isso este guia mostra como cada provedor monta a conta, não a tabela de preços dele. Os números em dólar deste artigo são hipotéticos, escolhidos para facilitar a conta. Não são preços de nenhum provedor; os valores reais ficam nas páginas oficiais, então confira sempre a página do provedor antes de decidir.
O que entra na conta de um PostgreSQL hospedado?#
Quase toda fatura se divide nos mesmos itens:
- Computação (RAM e CPU): a instância que roda o servidor. Costuma ser o maior item.
- Disco: cobrado por GB provisionado por mês, mesmo que o banco ainda não o ocupe.
- Cópias: backups automáticos e snapshots ocupam armazenamento, e a parte acima da cota incluída é cobrada.
- Alta disponibilidade: uma réplica em espera, pronta para assumir se a principal cair, roda numa segunda máquina.
- Tráfego de saída: dados que saem da rede do provedor, como consultas feitas por uma aplicação hospedada em outro lugar.
Se você ainda está decidindo o motor, o que é PostgreSQL e PostgreSQL vs MySQL ajudam antes de olhar preço.
Como cobram as opções mais comuns?#
Três provedores conhecidos, três formas de cobrar:
| Opção | Modelo | Como a conta se forma |
|---|---|---|
| Supabase Free | camada sem custo | teto de tamanho do banco; pausa após um período sem atividade |
| Supabase Pro | plano + computação | mensalidade com um crédito de computação que cobre a menor instância; disco acima da cota cobrado por GB |
| Supabase Pro + instância maior | plano + computação | mensalidade mais o preço da instância, menos o crédito incluído |
| Neon Free | camada sem custo | teto de armazenamento por projeto; suspende quando fica ocioso |
| Neon Launch | por uso | horas de computação (CU-hora) mais armazenamento por GB-mês |
| Amazon RDS | por hora | tarifa da classe de instância (db.t4g, db.m7g e outras) vezes as horas ligadas; disco gp3 à parte |
Valores atuais: Supabase, Neon e Amazon RDS para PostgreSQL. No RDS, o preço muda por região e por modalidade (Single-AZ ou Multi-AZ). Um mês tem cerca de 730 horas, então a tarifa por hora vezes 730 dá o custo mensal de uma instância sempre ligada.
Cada modelo favorece um perfil. O plano fixo é o mais fácil de prever. A cobrança por hora dá controle fino sobre o tamanho da máquina. A cobrança por uso, com o banco suspenso quando ninguém consulta, é barata para projetos com pouco acesso, mas a primeira consulta depois da pausa espera o banco acordar.
Como estimar o tamanho e o custo do seu banco?#
Comece medindo o que você já tem. Rode no seu banco atual:
-- tamanho total do banco
SELECT pg_size_pretty(pg_database_size(current_database())) AS tamanho;
-- as 5 maiores tabelas, com índices
SELECT relname AS tabela,
pg_size_pretty(pg_total_relation_size(relid)) AS tamanho
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC
LIMIT 5;
-- conexões abertas agora e o limite configurado
SELECT count(*) AS conexoes FROM pg_stat_activity;
SHOW max_connections;Depois projete o disco: tamanho atual, mais o crescimento mensal vezes os meses de horizonte, mais 30% de folga. Um banco de 3 GB que cresce 500 MB por mês chega a 9 GB em um ano e pede uns 12 GB provisionados.
Com esse número, a conta fica concreta. Exemplo hipotético: supondo uma instância a US$ 0,05 por hora e disco a US$ 0,25 por GB-mês, a instância com os 12 GB provisionados custa 0,05 x 730 + 12 x 0,25 = 36,50 + 3,00 = US$ 39,50 por mês, antes de tráfego. Num plano com cota, como o Supabase Pro, some à mensalidade só o disco que passa da cota. Num modelo por uso, como o Neon Launch, multiplique as horas ativas pela tarifa de CU-hora e some o armazenamento. Depois troque os valores hipotéticos pelos da página de preços do provedor.
Quanta RAM o PostgreSQL precisa?#
A RAM decide o desempenho porque o PostgreSQL guarda as páginas mais usadas na memória. Três parâmetros ajudam a dimensionar, segundo a documentação oficial:
- shared_buffers: o cache principal. O padrão costuma ser 128 MB, e a documentação sugere começar com 25% da RAM num servidor dedicado com 1 GB ou mais.
- work_mem: memória por operação de ordenação ou hash, 4 MB por padrão. Uma consulta complexa pode usar várias vezes esse valor, em cada conexão.
- max_connections: o padrão costuma ser 100. Cada conexão é um processo com memória própria, então centenas de conexões ociosas gastam RAM à toa.
A regra prática: os índices e as linhas mais acessadas devem caber na memória. Se a aplicação abre conexões demais, use um pool em vez de comprar uma instância maior. O artigo sobre o erro too many connections mostra como.
Rodar PostgreSQL numa VPS sai mais barato?#
Na fatura, muitas vezes sim: uma VPS pequena custa pouco e roda o PostgreSQL sem problema. Veja faixas em quanto custa uma VPS. A diferença está no trabalho que vem junto:
- Instalar, configurar acesso remoto com TLS e fechar a porta 5432 para a internet.
- Aplicar atualizações de segurança do sistema e do PostgreSQL.
- Agendar
pg_dump, mandar a cópia para fora da máquina e testar a restauração. O passo a passo está em como fazer backup de um banco de dados. - Monitorar disco cheio, que derruba o banco sem aviso.
Se você já domina essas tarefas, a VPS é a opção mais barata por GB de RAM. Se não, o custo real são as horas gastas e o risco de perder dados.
Quais são os custos escondidos?#
- Réplica em espera: no RDS, uma instância em Multi-AZ custa cerca do dobro da Single-AZ por hora, e o disco também sai mais caro.
- CPU acima da linha de base: as instâncias T4g do RDS rodam em modo Unlimited, e o uso acima da linha de base é cobrado à parte, por vCPU-hora.
- Cópias além da cota: no RDS, o armazenamento de backup não é cobrado até um limite ligado ao tamanho do disco provisionado na região, segundo o blog de bancos da AWS; acima disso, há cobrança por GB.
- Tráfego: o Supabase Pro e os planos pagos do Neon incluem uma cota de tráfego de saída e cobram por GB acima dela. Aplicação e banco no mesmo datacenter reduzem o tráfego e a latência.
- Câmbio: quem paga em reais um serviço cobrado em dólar sente a variação da cotação e os impostos sobre compras internacionais.
Para comparar com outros motores, veja quanto custa um banco de dados na nuvem.
Como fazer isso na Square Cloud#
A Square Cloud oferece hospedagem de PostgreSQL a partir do plano Standard, sempre em uma versão recente. É o PostgreSQL nativo, sem extensões. O plano Hobby não inclui bancos. Você cria o banco no painel e ele fica pronto em segundos, no mesmo datacenter das aplicações, com latência média de cerca de 1 ms e TLS obrigatório.
Aqui o preço é o do plano, em reais, sem cobrança por banda ou por requisição (política de uso justo). O Standard custa R$ 44,99, R$ 64,99 ou R$ 84,99 por mês, com 4, 6 ou 8 GB de RAM. Essa RAM é um pool compartilhado entre aplicações e bancos, e cada PostgreSQL usa no mínimo 1024 MB dela. Cada banco aceita até 512 conexões, sem pooler na frente.
Você tira snapshots manuais quando quiser. Todo plano com bancos inclui também um snapshot automático diário: cada um fica guardado por 7 dias, e o mais recente por até 30 dias. Você pode restaurar um snapshot no mesmo banco, em outro do mesmo motor ou num banco novo, ou baixá-lo como .zip. Veja os detalhes em hospedagem de PostgreSQL.
Hospedagem de bancos
MongoDB, PostgreSQL, MySQL e Redis no mesmo datacenter do app
Perguntas frequentes
Dá para hospedar PostgreSQL sem pagar nada?
Existem camadas sem custo com limites apertados: no Supabase, o banco tem teto de tamanho e pausa após um período sem atividade; no Neon, o projeto tem teto de armazenamento e é suspenso quando fica ocioso. Servem para estudo e protótipo, não para produção. Confira os limites atuais na página de cada provedor.
Quanto custa um PostgreSQL pequeno para produção?
Depende do modelo. No Amazon RDS, some a tarifa por hora da menor instância vezes 730 ao disco provisionado; no Supabase, o plano Pro mais o disco acima da cota incluída. Réplicas e tráfego somam por fora. Confira os valores atuais na página de cada provedor.
Quanta RAM o PostgreSQL precisa?
Para começar, 1 GB atende um banco pequeno. A documentação do PostgreSQL sugere dedicar cerca de 25% da RAM ao shared_buffers em servidores dedicados com 1 GB ou mais, e cada conexão aberta consome memória própria.
Alta disponibilidade dobra o preço?
Em geral, chega perto disso. Uma réplica em espera roda numa segunda máquina, com disco próprio: no Amazon RDS, a mesma instância em Multi-AZ costuma custar cerca do dobro da Single-AZ, disco incluído.
Mais em Bancos de dados
Ver todos os 24 artigos- Quanto custa um banco de dados na nuvem?Um banco de dados na nuvem custa de zero a centenas de dólares por mês. Veja o que define o preço: instância, disco, tráfego, snapshots e como estimar o seu.
- Como hospedar um banco de dados (e conectar sua aplicação)Para hospedar um banco de dados, escolha o motor, crie a instância, guarde a string de conexão em variável de ambiente e teste a conexão. Veja o passo a passo.
- O que é Redis e para que serveRedis é um banco de dados em memória que guarda pares chave-valor e estruturas de dados. Veja como funciona, para que serve e quando não usar.
- Como fazer backup do banco de dados (MySQL, PostgreSQL, MongoDB)Faça backup de MySQL, PostgreSQL e MongoDB com mysqldump, pg_dump e mongodump, e restaure o dump. Veja os comandos, como verificar e os erros comuns.