Why real-world DynamoDB usage scenarios often lead to unexpected expenses em , Eu cobri como cargas de trabalho imprevisíveis levam a custos imprevisíveis no DynamoDB. Meu último post sobre DynamoDB Custos Agora vamos mais fundo.Uma vez que você entendeu os fundamentos, como o nutty , ou os custos excessivos em torno do tamanho do item, replicação e cache ... você perceberá que os custos do DynamoDB não são apenas sobre o volume de leitura / escrita - é muito mais nuanciado no mundo real. 7.5x inflation of on-demand compared to reserved Round ‘em up! Um milhão escreve por segundo a 100 bytes não está na mesma galáxia que um milhão escreve a 5KB. Por que? Porque o DynamoDB mede os custos em pedaços arredondados de 1KB para escrever (e 4KB para ler). Escrever um item de 1.2KB? Você é cobrado por 2KB. Ler um item de 4.5KB com consistência forte? Você é cobrado por 8KB. Você não está apenas pagando pelo que você usa, você está pagando por arredondar. Lembre-se deste personagem em Superman III tomando 1⁄2 centavo de cada salário? É o mesmo negócio (e sim, $ 85,789,90 foi muito dinheiro em 1983) ... Wasted capacity is unavoidable at scale, but it becomes very real, very fast when you cross that boundary on every single operation. And don’t forget that hard cap of 400KB per item. That’s not a pricing issue directly, but it’s something that has motivated DynamoDB customers to look at alternatives. Nossa O que não conta são algumas das minas do mundo real – como o fato de que uma escrita resolvida em conflito (como atualizações simultâneas em várias regiões) ainda lhe custa por cada tentativa, mesmo que só vença a última escrita. Ou quando você constrói sua própria lógica de expiração do TTL, talvez puxando um monte de itens em uma varredura, verificando timestamps no código do aplicativo ou emitindo apagões. Agora você pode assistir on-demand. Cálculo de Custo DynamoDB DynamoDB custa webinars As tabelas globais são uma dor global Então você quer baixa latência para usuários em todo o mundo? tabelas globais são a maneira mais fácil de fazer isso. Alguns podem até dizer que é “baterias-inclusive”. Cada escrita é duplicada em regiões adicionais. Escreva um item de 3.5KB e replicá-lo para 4 regiões? Agora você está pagando por 4 x 4KB (arredondado, é claro). Não se esqueça de lidar com a transferência de rede inter-região. Isso é mais um hit em preços premium. E desculpe, você não pode reservar esses textos replicados também. You’re paying for that speed, several times over, and the bill scales linearly with your regional growth. Isso piora quando várias regiões escrevem para o mesmo item ao mesmo tempo. DynamoDB resolve o conflito (a última escrita ganha), mas você ainda paga por cada tentativa. Nós usamos preços conservadores para os EUA-Leste, mas quanto mais exótico a região, mais provavelmente os custos serão mais altos. So have a think about that batteries-included global tables replication cost, and please remember, it’s ! por mesa DAX caching com uma captura Now do you want even tighter read latency, especially for your latency-sensitive P99? DynamoDB Accelerator (DAX) helps, but it adds overhead, both operational and financial. Clusters need to be sized right, hit ratios tuned, and failover cases handled in your application. Miss the cache, pay for the read. Fail to update the cache, risk stale data. As instâncias do DAX são cobradas por hora, a uma taxa fixa, e mais uma vez, sem opções de instância reservadas como você pode estar acostumado. Nosso calculador de custos DynamoDB permite que você simule as taxas de sucesso do cache, tamanhos de conjuntos de dados, tipos de instâncias e nós. Ele não irá prever a eficiência do cache, mas ajudará você a pegar esses gotchas do cache. Motor de recomendação de milhões de dólares Um grande serviço de streaming construiu um motor de recomendação global com o DynamoDB. Trabalhos de lote diários geram recomendações novas e as escrevem em uma única tabela de 1PB, replicada em 6 regiões. Eles otimizaram para latência e escritos locais. O custo? Cada escrever para a tabela base mais 5 escritos replicados. Cada interação do usuário desencadeou uma escrita (ver histórico, feedback, preferências). E graças a esse ciclo de atualização diária, eles estavam reescrevendo a tabela – se algo mudou ou não. They used provision capacity, scaling up for anticipated traffic spikes, but still struggled with latency. Cache hit rates were too low to make Redis or DAX cost-effective. A carga de trabalho base sozinha custou dezenas de milhões por ano, e o total dobrou depois de acomodar picos em picos de tráfego e processos de carga de lote. Para muitas equipes, isso é mais do que a receita do próprio produto! Depois de mudar para o nosso modelo de preços baseado em capacidade providenciada (não faturamento por operação), o ScyllaDB foi capaz de comprimir significativamente seus dados armazenados, ao mesmo tempo que melhorou a compressão de rede entre AZs e regiões. Eles tiveram a liberdade de fazer isso em qualquer nuvem (ou até mesmo no local). Eles cortaram seus custos, melhoraram o desempenho e removeram a necessidade de sobreprovisionamento para picos. Another case of caching to survive Uma empresa adtech usando o DynamoDB entrou na complexidade do cache da maneira mais difícil. Eles implantaram 48 nós DAX em 4 regiões para atingir seus objetivos de latência P99. Their writes (246 bytes/item) were wasting 75% of the write unit billed. Their analytics workload tanked live traffic during spikes. And perhaps worst of all, auto-scaling triggers just weren’t fast enough, resulting in request throttling and application failures. O custo total do DynamoDB e DAX foi de centenas de milhares por ano. ScyllaDB offered a much simpler solution. Built-in row caching used instance memory at no extra cost with no external caching layer to maintain. They also ran their analytics and OLTP workloads side by side using with no hit to performance. Priorização do trabalho Ainda melhor, a expiração da sessão baseada em TTL foi processada automaticamente sem lógica de leitura/eliminação adicional. Assista ao vídeo do custo do DynamoDB If you missed the webinar, be sure to check out the – especialmente onde Guilherme cobre todas essas cargas de trabalho do mundo real em detalhes. DynamoDB Custo de Vídeo Os custos do DynamoDB são não-lineares e são moldados por padrões de uso, não apenas pela transmissão. Tabelas globais, tamanho do item, resolução de conflitos, aquecimento de cache e muito mais podem transformar o uso “razoável” em um pesadelo de 7 dígitos. DAX e auto-escalagem não são mágicos; eles precisam de ajuste e ainda custam dinheiro significativo para ficar certo. Nosso calculador de custos DynamoDB ajuda a modelar esses custos ocultos e comparar configurações diferentes, mesmo que você não esteja usando ScyllaDB. E finalmente, se você é uma equipe com custos e desempenho imprevisíveis usando o DynamoDB, faça a transição para o ScyllaDB e desfrute dos benefícios de preços previsíveis, eficiência incorporada e mais controle sobre sua arquitetura de banco de dados. . chat with us here Sobre o Tim Koopmans Tim tem suas mãos em todas as formas de engenharia durante as últimas duas décadas com uma inclinação para a confiabilidade e segurança. Em 2013, ele fundou a Flood IO; uma plataforma de teste de desempenho distribuído.Depois que foi adquirido, ele gostou de escalar o produto, negócio e equipe antes de passar para outros esforços relacionados ao desempenho.