
Лучший способ оценить затраты DynamoDB
22 июля 2025 г.Мы создали новый анализатор затрат DynamoDB, который помогает разработчикам понять, сколько их рабочие нагрузки действительно будут стоить
Затраты DynamoDB могут ослепить вас. Команды регулярно сталкиваются с «Билл Шок»: это ощущение, когда вы смотрите на шокирующе высокий счет и понимаете, что вы не обратили достаточно внимания на ваше использование, особенно по ценам по требованию. Подготовленная мощность приносит другой риск: производительность. Если вы не можете точно предсказать емкость, или ваша математика выключена, запросы углубляются. Это тонкий баланс.
ХотяAWS предлагает калькулятор ценообразования DynamoDB, он часто скучает по нюансам реальных рабочих нагрузок (например, взрывающих трафиков или неровных шаблонов доступа, или с использованием глобальных таблиц или кэширования).
Мы хотели чего -то лучшего. В полной прозрачности мы хотели чего -то лучшего, чтобы помочь командам, учитываяScylladb как альтернатива DynamoDBПолем Таким образом, мы создали новый калькулятор затрат DynamoDB, который помогает разработчикам понять, сколько их рабочие нагрузки действительно будут стоить. Несмотря на то, что мы разработали его для команд, сравнивающих DynamoDB с SCYLLADB, мы считаем, что это полезно для тех, кто хочет более точно оценить свои затраты DynamoDB по любой причине. Вы можете увидеть живую версию по адресу:Calculator.scylladb.com
Как мы его построили
Мы хотели создать что -то, что будет работать с клиентом, без необходимости каких -либо компонентов сервера. Это простое одностраничное приложение JavaScript, которое мы в настоящее время проводим на страницах GitHub. Если вы хотите проверить исходный код, не стесняйтесь взглянуть наhttps://github.com/scylladb/calculator
Честно говоря, работа с примерами вhttps://calculator.aws/был немного кошмаром, и когда вы «показываете расчеты», вы получаете эти стены текста:
Я испытывал желание принять более короткий подход, например:
Ежемесячная стоимость WCU = wcus × price_per_wcu_per_hour × 730 часов в месяц
Но каждый раз, когда я упрощал это, мне было труднее получить паритет между тем, что я рассчитывал, и окончательной ценой в расчете AWS. Иногда разница была связана с округлением, иногда это было связано с смесью зарезервированной пропускной способности и так далее. Поэтому, чтобы облегчить (для меня) отладку, я добросовестно следил за их линией расчетов и пытался повторить это в своей довольно уродливой функции:https://github.com/scylladb/calculator/blob/main/src/calculator.js
Я все еще могу рефактировать это в более мелкие функции. Но сейчас я хотел получить паритет между их и нашим. Вы увидите, что для этих вычислений также есть некоторые сквозные тесты-я использую их для проверки на кучу различных конфигураций. Я, вероятно, также буду расширять это вовремя.
Таким образом, это выполняет работу по требованию, предоставил (и зарезервированные) модели мощности.
Если вы использовали калькулятор AWS, вы знаете, что не можете указать такие вещи, как пик (или ширина пика) по требованию. Я не уверен в их рассуждениях. Я решил, что пользователям будет легче указать как базовый, так и пик для чтения и записей (соответственно) по требованию, так же, как и обеспечиваемая мощность.
Другое дизайнерское решение было представлять трафик с помощью диаграммы. Мне лучше с визуальными эффектами, поэтому, увидев пики и впадины, мне легче понять - и я надеюсь, что это тоже для вас.
Вы также заметите, что при изменении входов параметры запроса URL изменяются, чтобы отразить эти входы. Это предназначено для того, чтобы облегчить обмен и ссылаться на конкретные вариации затрат.
Там есть какая -то другая математика, например, выяснить истинную стоимость глобальных таблиц и понимание полученных затрат на такие вещи, как передача сети или Dynamodb Accelerator (DAX). Однако объяснение всего, что слишком плотно для этого формата. Мы поговорим больше об этом на предстоящем вебинаре (см. Следующий раздел).
Хорошей новостью является то, что вы можете оценить эти затраты в дополнение к вашей рабочей нагрузке, так как они могут быть большими множителями затрат при планировании вашего использования DynamoDB.
Изучите сценарии «что если» для собственных рабочих нагрузок
Анализ затрат в сценариях реального мира
Конечная цель всего этого восхищения и настройки состоит в том, чтобы помочь вам исследовать различные сценарии «что-если» с точки зрения затрат DynamoDB. Чтобы начать, мы делимся воздействием затрат на некоторые из более интересных сценариев пользователей DynamoDB, с которыми мы сталкиваемся в Scylladb.
Мой коллега Gui и я только что собрались вместе, чтобы глубоко погрузиться в то, как такие факторы, как скачок трафика, многоэтажное расширение и введение кэширования (например, DAX), влияют на затраты DynamoDB. Мы исследовали, как несколько (анонимных) команд, с которыми мы работаем, оказались слепыми своими счетами DynamoDB, и различные варианты, которые они рассмотрели для получения затрат под контролем.
Смотрите чат DynamoDB.
О Тиме Купмане
В течение последних нескольких десятилетий Тим имел руки во всех формах инженерии с склонностью к надежности и безопасности. В 2013 году он основал наводнение; распределенная платформа тестирования производительности. После того, как он был приобретен, он наслаждался масштабированием продукта, бизнеса и команды, прежде чем перейти к другим усилиям, связанным с производительностью.
Оригинал