Why real-world DynamoDB usage scenarios often lead to unexpected expenses en , He cubierto cómo las cargas de trabajo impredecibles conducen a costes impredecibles en DynamoDB. Mi último post sobre DinamoDB Ahora vamos a profundizar.Una vez que hayas comprendido los básicos, como el nutty , o los costos excesivos en torno al tamaño del elemento, la replicación y la caché ... te darás cuenta de que los costos de DynamoDB no se refieren sólo al volumen de lectura / escritura - es mucho más matizado en el mundo real. 7.5x inflation of on-demand compared to reserved Round ‘em Up! Un millón escribe por segundo a 100 bytes no está en la misma galaxia que un millón escribe a 5KB. ¿Por qué? Debido a que DynamoDB mide los costos en fragmentos redondeados de 1KB para escribir (y 4KB para leer). Escribir un artículo de 1.2KB? ¿Estás facturado por 2KB. ¿Leer un artículo de 4.5KB con fuerte consistencia? ¿Te cobran por 8KB. No estás pagando sólo por lo que usas, estás pagando por arredondar. Recuerda este personaje en Superman III tomando 1⁄2 centavo de cada pago? ¿Es el mismo negocio (y sí, $85,789.90 fue mucho dinero en 1983) ... El desperdicio de capacidad es inevitable a escala, pero se vuelve muy real, muy rápido cuando se cruza ese límite en cada operación.Y no se olvide de que el límite duro de 400KB por artículo. Nuestro te permite modelar todo esto. Lo que no cuenta son algunas de las minas terrestres del mundo real – como el hecho de que una escritura resuelta en conflicto (como actualizaciones simultáneas en múltiples regiones) todavía te cuesta por cada intento, incluso si sólo gana la última escritura. O cuando construyes tu propia lógica de expiración TTL, tal vez arrastrando un montón de elementos en una escaneacin, comprobando los timestamps en el código de la aplicación o emitiendo eliminaciones. que ahora puedes ver a petición. Cálculo de costes de DynamoDB DynamoDB cuesta webinar Las tablas globales son un dolor global ¿Quieres una latencia baja para los usuarios en todo el mundo? las tablas globales son la forma más fácil de hacerlo.Algunos podrían incluso decir que es “baterias incluidas”. Cada escritura se duplica a través de regiones adicionales. Escribe un artículo de 3.5KB y lo replica a 4 regiones? Ahora estás pagando por 4 x 4KB (arrodillado, por supuesto). No te olvides de abordar la transferencia de red interregional. Eso es otro hit en el precio premium. Y lamento, no puedes reservar esos escritos replicados tampoco. Usted está pagando por esa velocidad, varias veces más, y la factura escala linealmente con su crecimiento regional. Se empeora cuando varias regiones escriben al mismo elemento simultáneamente. DynamoDB resuelve el conflicto (la última escritura gana), pero todavía pagas por cada intento. Nuestro calculador de costos le permite modelar todo esto. usamos precios conservadores para EEUU-Est, pero cuanto más exótico sea la región, más probable es que los costos sean más altos. Así que piense en que los costos de replicación de las tablas globales incluidas en las baterías, y por favor recuerde, es ! por mesa DAX caching con una captura Ahora, ¿quieres una latencia de lectura aún más apertada, especialmente para tu P99 sensible a la latencia? DynamoDB Accelerator (DAX) ayuda, pero añade sobrecarga, tanto operativa como financiera. Los clusters deben ser dimensionados correctamente, las proporciones de golpes ajustadas y los casos de fallos manejados en tu aplicación. Incluso después de que lo hayas ajustado, no es gratis. las instancias de DAX se facturan por hora, a una tasa fija, y una vez más, sin opciones de instancia reservadas como podrías estar acostumbrado. Nuestro calculador de costes DynamoDB le permite simular las proporciones de golpes de caché, los tamaños de conjuntos de datos, los tipos de instancias y los nodos. No predecirá la eficiencia de la caché, pero le ayudará a capturar esos gotchas de caché. Motor de recomendación de millones de dólares Un gran servicio de transmisión construyó un motor de recomendación global con DynamoDB. Trabajos de lotes diarios generan recomendaciones nuevas y las escriben en una tabla única de 1PB, replicada en 6 regiones. Se optimizaron para la latencia y los escritos locales. El coste? Cada escritura a la tabla base más 5 escrituras replicadas. Cada interacción del usuario desencadenó una escritura (ver historial, comentarios, preferencias).Y gracias a ese ciclo de refresco diario, estaban reescribiendo la tabla - si algo cambió o no. Utilizaron la capacidad de provisión, escalando para los picos de tráfico esperados, pero todavía luchaban con la latencia. las tasas de golpes de caché eran demasiado bajas para hacer que Redis o DAX sean rentables. La carga de trabajo básica solo cuesta decenas de millones al año, y el total se duplicó después de acomodar los picos en los picos de tráfico y los procesos de carga de lotes. Para muchos equipos, eso es más que los ingresos del producto mismo! Después de cambiar a nuestro modelo de precios basado en la capacidad proporcionada (no la facturación por operación), ScyllaDB pudo comprimir significativamente sus datos almacenados, al tiempo que también mejoró la compresión de la red entre AZs y regiones. Tenían la libertad de hacer esto en cualquier nube (o incluso en el lugar). Recortaron sus costes, mejoraron el rendimiento y eliminaron la necesidad de sobreprovisionar para los picos. Otro caso de caching para sobrevivir Una compañía adtech que utiliza DynamoDB entró en la complejidad de la caché de la manera más difícil. Ellos desplegaron 48 nodos DAX en 4 regiones para alcanzar sus objetivos de latencia P99. Sus escritos (246 bytes / elemento) desperdiciaban el 75% de la unidad de escritura facturada. Su carga de trabajo de análisis cargaba tráfico en vivo durante los picos. Y tal vez lo peor de todo, los desencadenantes de autoescala simplemente no eran lo suficientemente rápidos, lo que resultó en descargas de solicitudes y fallos de aplicaciones. El coste total de DynamoDB y DAX fue de cientos de miles por año. ScyllaDB ofreció una solución mucho más simple. El cache de fila incorporado utilizó la memoria de instancia sin costo adicional sin capa de cache externa para mantener. Sin ningún impacto en el rendimiento. Priorización del trabajo Mejor aún, su expiración de sesión basada en TTL se gestionó automáticamente sin lógica de lectura/eliminación adicional. Ver el vídeo de costes de DynamoDB Si te has perdido el webinar, asegúrate de revisar el – especialmente donde Guilherme cubre todas estas cargas de trabajo del mundo real en detalle. DynamoDB cuesta video Los costos de DynamoDB son no lineales y se forman por los patrones de uso, no sólo por el rendimiento. Las tablas globales, el tamaño del elemento, la resolución de conflictos, el calentamiento de caché y más pueden convertir el uso “razonable” en una pesadilla de 7 cifras. El DAX y el auto-escalado no son mágicos; necesitan ajuste y todavía cuestan dinero significativo para llegar a lo correcto. Nuestro calculador de costes DynamoDB ayuda a modelar estos costes ocultos y comparar diferentes configuraciones, incluso si no está utilizando ScyllaDB. Y finalmente, si usted es un equipo con costes y rendimiento impredecibles usando DynamoDB, cambie a ScyllaDB y disfrute de los beneficios de precios predecibles, eficiencia integrada y más control sobre su arquitectura de base de datos. . Chat con nosotros aquí Más sobre Tim Koopmans Tim ha tenido sus manos en todas las formas de ingeniería durante las últimas dos décadas con una inclinación por la fiabilidad y la seguridad. En 2013 fundó Flood IO; una plataforma de prueba de rendimiento distribuido. Después de que fue adquirida, disfrutó de escalar el producto, el negocio y el equipo antes de pasar a otros esfuerzos relacionados con el rendimiento.