Guia aprofundado
Simulador de escala de banco de dados e IOPS: quando o custo do banco gerenciado supera a receita por usuário
Análise executiva do setor
O banco de dados gerenciado é a parte da infraestrutura que as pessoas mais querem esquecer e que as esquece de volta quando a fatura chega. Ele começa como uma instância pequena e um disco pequeno. Depois os usuários crescem, os recursos acrescentam consultas, as tabelas se enchem de histórico e o plano que era barato vira a maior linha da conta. Ao contrário dos servidores web, os bancos de dados não escalam acrescentando máquinas idênticas e baratas. Eles escalam migrando para instâncias maiores, acrescentando vazão provisionada e copiando tudo para réplicas, e cada um desses passos multiplica o custo.
A estrutura do problema é que o custo sobe em degraus enquanto a receita cresce de forma suave. Os tamanhos de instância dobram: de duas para quatro, oito e dezesseis vCPUs, com o preço aproximadamente dobrando a cada vez. O armazenamento e os IOPS são cobrados à parte e as réplicas multiplicam todos eles. A receita por usuário não dobra quando a sua instância dobra. Um negócio confortavelmente lucrativo com 30.000 usuários pode descobrir que o tamanho seguinte elimina o ganho dos 10.000 usuários seguintes.
O modelo de dominó acompanha a cadeia. Os usuários e os IOPS por mil usuários definem a demanda de pico sobre a camada de armazenamento. Os requisitos de computação decidem o tamanho da instância, que por sua vez define a conta junto com as réplicas, o armazenamento e a vazão provisionada. A conta se torna uma parcela da receita, que por fim decide o lucro. Uma consulta mal indexada pode alterar a primeira caixa por um fator de três sem qualquer mudança no número de usuários, e é por isso que o ajuste de consultas costuma ser a maneira mais barata de reduzir todas as caixas seguintes.
O iceberg separa a instância que todos enxergam dos extras que tornam a conta maior do que o esperado. Visíveis ficam a instância primária e o armazenamento. Abaixo da linha d'água estão as réplicas, que repetem a computação e o armazenamento, os IOPS provisionados acima da linha de base que um disco inclui, os backups mantidos por semanas e o tráfego que replica dados entre zonas. Cada um é cobrado sob um título diferente, de modo que são fáceis de subestimar no planejamento. Use o simulador para testar como a sua própria arquitetura se comporta à medida que os usuários crescem e em que ponto o banco de dados deixa de ser viável.
Fórmulas e metodologia
O modelo é um único mês. A demanda de IOPS no pico é os milhares de usuários multiplicados pelos IOPS por mil e por um fator de pico de 2,5. A computação necessária é de 0,0005 vCPU por usuário, arredondada para cima até um tamanho de instância em potência de dois, com mínimo de dois. Cada réplica repete a instância primária, o armazenamento e os IOPS provisionados. Os IOPS provisionados são cobrados acima de uma linha de base de 3.000. Armazenamento, backups e replicação entre zonas se somam ao total, e os demais custos são 40% da receita.
- IOPS no pico
- I = usuários ÷ 1000 × IOPS por 1000 × 2,5
- Operações por segundo que a camada de armazenamento precisa sustentar no pico.
- Tamanho da instância
- V = 2^teto(log₂(max(2, usuários × 0,0005)))
- vCPUs no primário, que existem em tamanhos de potência de dois.
- Conta do banco de dados
- D = (1 + réplicas) × (V × preço + custo de IOPS + armazenamento) + backups + entre zonas
- Computação, vazão e armazenamento repetidos em cada nó, mais backups e replicação.
- IOPS provisionados
- max(0, I − 3000) × $0,10 por nó
- Vazão acima do que o disco inclui, cobrada em cada nó.
- Lucro líquido
- Líquido = receita × (1 − 40%) − D
- O resultado mensal. O ponto de ruptura é onde ele chega a zero.
Elasticidade em cascata
As réplicas e os IOPS por usuário são as variáveis mais elásticas, pois cada uma se multiplica em todos os nós. A receita por usuário escala toda a margem. Os usuários alteram o resultado tanto pela receita quanto pela passagem a uma instância maior, de modo que o crescimento não é uma vitória gratuita.
Três estudos de caso reais
Início com recursos próprios
Um produto pequeno com um banco de dados mínimo
Um produto jovem tem três mil usuários, uma única réplica e poucos dados por usuário. A receita por usuário é alta e a instância tem o tamanho mínimo. Carregue o caso para ver que o banco de dados é desprezível no início e como uma receita alta por usuário dá espaço para crescer.
Médio porte em expansão
Uma grande base de usuários com consultas eficientes
Um produto com trezentos mil usuários mantém baixos os IOPS por usuário com indexação e cache e opera duas réplicas. A conta é grande em termos absolutos, mas representa uma parcela modesta da receita. Carregue o caso para ver a escala funcionando quando as consultas estão ajustadas.
Crise de cisne negro
Consultas pesadas e réplicas demais
Um produto com uma grande base de usuários e baixa receita por usuário executa consultas sem índice, cinco réplicas e muitos dados armazenados por usuário. Os IOPS provisionados e as réplicas multiplicam todos os custos. Carregue o caso para ver a conta do banco de dados superar a receita e qual alavanca recupera o mês.
Matriz de referências do setor
| Métrica | Zona de perigo | Média do setor | Elite dos 10% melhores |
|---|---|---|---|
| Custo do banco de dados como parcela da receita | Acima de 35% | 8–15% | Abaixo de 6% |
| Custo do banco de dados por usuário ativo por mês | Acima de $0,25 | $0,05–0,12 | Abaixo de $0,04 |
| Réplicas para um SaaS típico | Mais de 3 sem necessidade clara de leitura | 1–2 | 1 standby mais réplicas de leitura direcionadas |
| Parcela dos IOPS provisionados realmente usada no pico | Abaixo de 30% | 50–70% | 70–85% |
| Retenção de backups | Meses de snapshots completos | 7–14 dias | Retenção em camadas com arquivamento |
Variáveis e alavancas
Usuários ativos
Usuários que geram carga no banco de dados em um mês típico.
Alavanca: Não suponha que mais usuários signifiquem sempre uma margem melhor; confira se a receita por usuário ainda cobre o próximo tamanho de instância.
Receita por usuário por mês
Receita mensal média que você obtém de um usuário ativo.
Alavanca: Aumente a receita por usuário com níveis de preço, porque o custo do banco de dados por usuário cresce com o uso e o armazenamento.
IOPS relevantes no pico por 1.000 usuários
Média de operações de leitura e de escrita por segundo geradas por cada mil usuários. O desenho das consultas e a indexação são o que mais a alteram.
Alavanca: Adicione os índices que faltam, coloque em cache as leituras mais frequentes e agrupe as escritas; reduzir os IOPS muitas vezes evita tanto discos maiores quanto instâncias maiores.
Preço por vCPU por mês
O que o seu banco de dados gerenciado cobra por vCPU por mês na classe de instância que você usa.
Alavanca: Compare famílias de instâncias e assuma capacidade reservada quando a sua carga for previsível.
Réplicas de leitura e standbys
Cópias extras do banco de dados para leitura ou para failover. Cada uma repete o custo de computação, de armazenamento e de IOPS.
Alavanca: Questione cada réplica: mantenha um standby para failover e acrescente réplicas de leitura somente quando as leituras realmente precisarem delas.
Dados armazenados por usuário (GB)
Média de gigabytes de armazenamento de banco de dados que cada usuário acrescenta, incluindo índices.
Alavanca: Arquive linhas antigas em armazenamento mais barato, defina limites de retenção e comprima colunas grandes.
Como usar este simulador
- 1Comece pela predefinição realista ou informe seus usuários, a receita por usuário e os detalhes da sua instância atual.
- 2Leia as cinco caixas do dominó para ver se a demanda de IOPS ou o tamanho da instância ficam vermelhos primeiro.
- 3Pressione Encontrar meu ponto de ruptura para ver a carga ou o número de réplicas que elimina o lucro.
- 4Compare a estrutura atual com o plano de ajustes no gráfico de 24 meses.
- 5Revise as consultas lentas e as réplicas sem uso a cada trimestre, antes do próximo degrau de instância.
Erros a evitar
- Supor que o custo do banco de dados cresce em proporção aos usuários, quando ele cresce em degraus e se multiplica com as réplicas.
- Provisionar IOPS muito acima do que a carga de trabalho usa, porque a configuração foi copiada de um sistema maior.
- Manter réplicas de leitura que nenhuma consulta usa, pagando duas ou três vezes por computação e armazenamento.
- Aumentar a instância antes de olhar as consultas lentas e os índices ausentes que criaram a carga.
Perguntas frequentes
O que são IOPS e por que são cobrados?
IOPS significa operações de entrada e saída por segundo: quantas leituras e escritas a camada de armazenamento realiza. Algumas camadas de armazenamento incluem uma linha de base e cobram pela vazão provisionada acima dela. Verifique as regras atuais do seu provedor.
Quando devo adicionar uma réplica de leitura?
Quando as leituras claramente dominam e o primário é o gargalo, ou quando você precisa de latência geográfica ou de failover. Adicionar réplicas por hábito multiplica a conta inteira.
Por que o custo dá saltos em certas quantidades de usuários?
As instâncias existem em tamanhos fixos, então cruzar um limite leva você ao tamanho seguinte, com preço aproximadamente dobrado. O modelo usa tamanhos em potência de dois para mostrar esses saltos.
Uma instância maior é melhor do que mais réplicas?
Para escritas, um primário maior costuma ser a resposta. Para leituras, ajudam réplicas ou cache. A combinação certa depende da carga de trabalho, então meça antes de escalar.
Como encontro a quantidade de usuários em que o banco de dados se torna inviável?
Pressione Encontrar meu ponto de ruptura. A ferramenta move cada entrada em direção ao seu pior extremo e informa o valor em que o lucro mensal chega a zero.
Qual é a precisão disto?
É um modelo educacional com preços ilustrativos, e não uma cotação ou aconselhamento de engenharia. Substitua as constantes pelos preços atuais do seu provedor e pela carga que você mediu.
Este é um modelo educacional de planejamento, com premissas declaradas. Não constitui aconselhamento financeiro, tributário ou jurídico. Substitua os dados pelos seus próprios números e confirme decisões importantes com um profissional qualificado.