Por que o Postgres RDS não funcionou para nós

Críticas ao Postgres gerenciado da Amazon (RDS e Aurora) se concentram em desempenho ruim e custos inesperadamente altos baseados em I/O para cargas de trabalho analíticas e de séries temporais que são modestas pelos padrões atuais. Os comentários argumentam que o Postgres de uso geral pode lidar com dezenas de milhões a bilhões de linhas com eficiência quando auto-hospedado em armazenamento local rápido ou estendido com ferramentas como TimescaleDB ou Citus, e que bancos de dados colunares ou especializados em séries temporais (por exemplo, ClickHouse, InfluxDB) muitas vezes são uma opção melhor. O tema mais amplo é uma reavaliação dos trade-offs de bancos de dados na nuvem: pagar um prêmio por serviços gerenciados e elasticidade versus operar configurações mais baratas e rápidas em bare metal, VPSs ou provedores gerenciados alternativos.

Custos e desempenho do RDS / AWS

  • Muitos veem o problema central como sendo a configuração do RDS e do EBS, não o Postgres em si.
  • O RDS é descrito como significativamente mais caro do que EC2 ou bare metal, especialmente para IOPS provisionadas; alguns citam diferenças de custo de uma ordem de grandeza em relação ao on-premises.
  • Os créditos de largura de banda do EBS e o desempenho “até” em tamanhos menores de instância são criticados por serem opacos e fáceis de surpreender.
  • O Aurora é relatado como mais rápido e mais previsível do que o RDS puro, mas pode ficar muito caro devido à cobrança por I/O; alguns dizem que ele é adotado בעיקרamente pelo modelo de HA/replicação, não por desempenho bruto.

Tamanho do conjunto de dados e capacidade do Postgres

  • A tabela de séries temporais de 20M de linhas citada como “grande” é amplamente descartada como pequena.
  • Vários კომენტadores mencionam operar com bilhões a trilhões de linhas em Postgres/Timescale/Aurora, o que sugere que os problemas do artigo provavelmente decorrem de mau design, indexação ou configuração, e não de limites inerentes do Postgres.

Escolhendo o mecanismo de banco de dados certo

  • Há forte resistência ao uso de Postgres genérico para varreduras analíticas pesadas em tabelas inteiras; sistemas colunares ou OLAP (ClickHouse, DuckDB, Redshift, Snowflake) são recomendados.
  • Para séries temporais, são sugeridos sistemas especializados (TimescaleDB, ClickHouse, InfluxDB, Prometheus); os trade-offs:
    • Timescale: SQL completo e joins relacionais, compressão colunar, bom para analytics.
    • ClickHouse: compressão e velocidade muito altas para analytics; vários mencionam migrar dados de séries temporais para lá e manter metadados no Postgres.
  • Alguns argumentam que começar com Postgres como uma ferramenta generalista faz sentido, e depois descarregar para bancos especializados quando os gargalos ficarem claros.

Alta disponibilidade e operações

  • Um lado afirma que o Postgres ainda não tem uma boa história de HA.
  • Outros argumentam que a HA é “excelente” se você entende os trade-offs: replicação em streaming (um único primário), Patroni/pg_auto_failover, Citus/Timescale e Aurora são citados.
  • Surgem preocupações sobre o peso operacional de manter seu próprio Postgres versus terceirizar upgrades, backups e failover para serviços gerenciados.

Infraestrutura em nuvem vs. auto-hospedada

  • Vários comentários descrevem economias significativas e melhor desempenho ao migrar de RDS/AWS para Postgres auto-hospedado em EC2, VPS, bare metal ou colo com NVMe local.
  • Contra-argumento: serviços gerenciados continuam atraentes para equipes que priorizam menor sobrecarga operacional e HA embutida em vez de custo bruto.

Debates sobre backend de armazenamento (EBS, SSD, ZFS)

  • Vários argumentam que bancos de dados relacionais são inerentemente mais lentos no EBS devido à maior latência em comparação com SSD local; alguns afirmam diferenças de desempenho de cerca de 10x.
  • Outros observam que camadas mais altas do EBS podem se aproximar da latência de SSD, mas com custo maior.
  • O ZFS é debatido: alguns alertam sobre bugs históricos de corrupção; outros insistem que seu histórico é forte em comparação com alternativas, com a maioria dos problemas decorrendo de hardware ruim.

Meta-discussão sobre o artigo

  • Alguns veem a história como evidência de má liderança técnica ou de escolha errada de ferramentas, e não como uma condenação fundamental do Postgres.
  • Outros ampliam a crítica para a precificação e a complexidade da AWS.
  • Há certo ceticismo sobre submissões repetidas e irritação com imagens genéricas de “hero” do Medium, mas esses são comentários secundários.