Como escolher um VPS para banco de dados
Um banco de dados no seu próprio VPS significa preço previsível e acesso total às configurações: você instala a versão que quiser, ativa extensões e monta os backups do seu jeito. Os bancos gerenciados na nuvem são mais cômodos, mas custam várias vezes mais pela mesma quantidade de memória. Se você está disposto a cuidar das atualizações e dos backups, um servidor para o banco se paga rápido.
Memória vale mais que núcleos
Os bancos de dados mantêm os dados quentes na memória RAM: o PostgreSQL, em shared_buffers e no cache do sistema de arquivos; o MySQL e o MariaDB, no buffer pool do InnoDB; o Redis, por inteiro. Enquanto o conjunto de trabalho cabe na memória, as consultas respondem em milissegundos; quando deixa de caber, cada consulta vai ao disco e a velocidade cai dezenas de vezes. Por isso, primeiro estime o volume de dados ativos e pegue memória com folga:
- até 5 GB de dados — blog, loja pequena, backend de bot: 2 GB de RAM bastam;
- 10–30 GB — CRM, loja virtual com catálogo, analytics: a partir de 4 GB, melhor 8 GB;
- mais de 50 GB ou centenas de consultas por segundo — a partir de 16 GB e núcleos dedicados.
Núcleos servem para consultas paralelas e relatórios pesados. Para a carga web típica, 2 núcleos são suficientes, e a tabela acima vem ordenada por padrão pelo preço do gigabyte de memória — o parâmetro principal para um banco.
Disco: só NVMe
O banco faz o tempo todo pequenas leituras e gravações aleatórias, e o log de transações exige gravação síncrona rápida. Em HDD e em SSD SATA baratos e compartilhados, isso vira lentidão e «travadas» a cada checkpoint. Escolha planos com NVMe e reserve três vezes o volume atual de dados: índices, logs WAL ou binlog, arquivos temporários de ordenação e backups locais ocupam tanto quanto as próprias tabelas.
PostgreSQL, MySQL ou Redis
- PostgreSQL — a escolha universal para projetos novos: transações rigorosas, JSON, busca de texto completo, extensões como PostGIS. Mais sobre os requisitos na página VPS para PostgreSQL.
- MySQL e MariaDB — o padrão para WordPress, Bitrix e a maioria dos CMS; em volumes pequenos consomem menos memória. Veja VPS para MySQL.
- Redis — cache, filas e sessões; tudo fica na memória, então é o volume dela que define o plano. Veja VPS para Redis.
Segurança e backups
Nunca exponha a porta do banco na internet: PostgreSQL (5432), MySQL (3306) e Redis (6379) devem escutar apenas em 127.0.0.1 ou na rede privada. Se a aplicação está em outro servidor, conecte os dois via WireGuard ou túnel SSH. Bancos expostos são encontrados por scanners em poucas horas, e os dados acabam criptografados por ransomware.
Backup no mesmo servidor não é backup. Configure um dump diário (pg_dump, mysqldump) ou o arquivamento contínuo do log e copie-o para outro lugar: um armazenamento de objetos ou um VPS separado para backups. Uma vez por mês, confira se dá mesmo para restaurar a partir da cópia.
Onde hospedar
Coloque o banco no mesmo data center da aplicação: cada 30–50 ms extras de rede se multiplicam pelo número de consultas por página. Se você armazena dados pessoais de cidadãos russos, a lei 152-FZ exige que o banco fique na Rússia — para isso existe a seleção VPS na Rússia.