Why real-world DynamoDB usage scenarios often lead to unexpected expenses В Я рассказал о том, как непредсказуемые нагрузки приводят к непредсказуемым затратам в DynamoDB. Мой последний пост о DynamoDB Cost Теперь давайте пойдем глубже. как только вы поймете основы, такие как орехи , или чрезмерные затраты на размер элемента, репликацию и кеширование ... вы поймете, что затраты на DynamoDB не только на объем чтения / написания - это намного более нюансировано в реальном мире. 7.5x inflation of on-demand compared to reserved Круглый «Вверх!» Миллион записей в секунду при 100 байтах не находится в той же галактике, что и миллион записей при 5 КБ. Почему? Потому что DynamoDB измеряет затраты в закругленных кусочках 1 КБ для записей (и 4 КБ для прочтений). Написание предмета 1.2 КБ? Вы начисляете за 2 КБ. Чтение предмета 4.5 КБ с сильной последовательностью? Вы получаете плату за 8 КБ. Вы не просто платите за то, что используете, вы платите за завершение. Помните, что этот персонаж в Супермене III берет 1⁄2 цента от каждой зарплаты? Это та же сделка (и да, $85,789,90 были большими деньгами в 1983) ... Упущенная емкость неизбежна в масштабе, но она становится очень реальной, очень быстро, когда вы пересекаете эту границу при каждой операции.И не забывайте, что жесткая граница 400 КБ на пункт. Наши позволяет вам моделировать все это. Что это не учитывает, это некоторые реальные мины - например, тот факт, что разрешенное конфликтное письмо (например, одновременные обновления в нескольких регионах) все еще стоит вас за каждую попытку, даже если выигрывает только последняя запись. или когда вы строите свою собственную логику истечения срока действия TTL, возможно, вытягиваете кучу предметов в сканировании, проверяете временные знаки в коде приложений или выдаете удаления. которые вы можете посмотреть по запросу. Калькулятор затрат DynamoDB DynamoDB стоимость вебинаров Глобальные столы – это глобальная боль Так что вы хотите низкую задержку для пользователей по всему миру? Глобальные таблицы являются самым простым способом сделать это. Некоторые могут даже сказать, что это «включенные батареи». Каждое письмо дублируется по дополнительным регионам. Напишите пункт 3,5 КБ и дублируйте его в 4 региона? Теперь вы платите за 4 x 4 КБ (закругленный, конечно). Не забудьте воспользоваться межрегиональной сетью. Это еще один хит по премиальной цене. И, к сожалению, вы также не можете зарезервировать эти дублированные письма. Вы платите за эту скорость, в несколько раз, и счет скалируется линейно с вашим региональным ростом. Это ухудшается, когда несколько регионов одновременно пишут в один и тот же пункт. DynamoDB решает конфликт (последняя запись выигрывает), но вы все еще платите за каждую попытку. Мы используем консервативные цены для США-Восток, но чем более экзотический регион, тем более вероятно, что стоимость будет выше. Так что подумайте о том, что батареи включают в себя глобальные таблицы репликации стоимости, и пожалуйста, помните, это ! По столу Кэширование DAX с помощью catch Теперь вы хотите еще более плотную задержку чтения, особенно для вашего чувствительного к задержке P99? Ускоритель DynamoDB (DAX) помогает, но он добавляет оверхед, как операционный, так и финансовый. Кластеры должны быть размещены правильно, коэффициенты ударов настроены, а случаи сбоев обрабатываются в вашем приложении. Пропустить кеш, заплатить за чтение. Не обновить кеш, рискуйте остановить данные. Инстанции DAX взимаются за час, по фиксированной ставке, и снова, без резервных вариантов инстанций, как вы, возможно, привыкли. Наш калькулятор затрат DynamoDB позволяет вам симулировать коэффициенты ударов кэша, размеры наборов данных, типы инстанций и узлы. Он не предскажет эффективность кэша, но он поможет вам поймать эти кэши. Мотор мультимиллионных рекомендаций Ежедневные партии рабочих мест генерируют свежие рекомендации и записывают их в одну таблицу 1PB, воспроизведенную в 6 регионах. Они оптимизировали для задержки и местных записей. Стоимость? Каждая запись в базовую таблицу плюс 5 повторяющихся записей. Каждое взаимодействие с пользователем вызывало запись (просмотр истории, обратная связь, предпочтения).И благодаря этому ежедневному циклу обновления они переписывали таблицу – вне зависимости от того, что-то изменилось или нет. Они использовали провизионную мощность, масштабируя ожидаемые пики трафика, но все же боролись с задержкой. Результат: Базовая рабочая нагрузка стоила десятки миллионов в год, а общая сумма удвоилась после размещения пиков в пиках движения и процессах грузовой нагрузки. Для многих команд это больше, чем доход от самого продукта! После того, как они перешли на нашу модель ценообразования, основанную на предусмотренной емкости (не на оплату за операцию), ScyllaDB смогла значительно сжать свои хранимые данные, а также улучшить сетевое сжатие между АЗ и регионами.Они имели свободу делать это в любом облаке (или даже на месте).Они сократили свои расходы, улучшили производительность и устранили необходимость перераспределения для пиков. Еще один случай кашля для выживания Компания adtech, использующая DynamoDB, попала в сложность кеш-памяти.Они развернули 48 узлов DAX в 4 регионах, чтобы достичь своих целей задержки P99.Каждый узел адаптирован к рабочей нагрузке этого региона (после многих испытаний и ошибок). Их письма (246 байт/этикет) тратили 75% начисленной единицы письма. их аналитическая рабочая нагрузка заряжала живым трафиком во время пиков. И, возможно, хуже всего, автоматические скалирующие триггеры просто не были достаточно быстрыми, что привело к отключению запросов и неудачам приложений. Общая стоимость DynamoDB и DAX составляла сотни тысяч в год. ScyllaDB предложил намного более простое решение. Встроенное кеширование ряда использовало память инстанций без дополнительных затрат без внешнего кэширующего слоя для поддержания. Без удара по исполнению. Приоритет рабочей нагрузки Еще лучше, что срок действия сеанса, основанного на TTL, был обработан автоматически без дополнительной логики чтения / удаления. Смотреть видео DynamoDB Cost Если вы пропустили вебинар, обязательно ознакомьтесь с – особенно там, где Гильерме подробно охватывает все эти реальные рабочие нагрузки. DynamoDB стоит видео Стоимость DynamoDB нелинейна и формируется паттернами использования, а не только пропускной способностью. Глобальные таблицы, размеры элементов, разрешение конфликтов, подзарядка кэша и многое другое могут превратить «разумное» использование в 7-значный кошмар. DAX и автоскалирование не являются магией; они нуждаются в настройке и по-прежнему стоят значительных денег, чтобы правильно поступить. Наш калькулятор затрат DynamoDB помогает моделировать эти скрытые затраты и сравнивать различные настройки, даже если вы не используете ScyllaDB. И, наконец, если вы команда с непредсказуемыми затратами и производительностью, используя DynamoDB, переключитесь на ScyllaDB и наслаждайтесь преимуществами предсказуемого ценообразования, встроенной эффективности и большего контроля над архитектурой базы данных. . Чат с нами здесь О компании Tim Koopmans В течение последних нескольких десятилетий Тим занимался всеми видами инженерии, стремясь к надежности и безопасности.В 2013 году он основал Flood IO; распределенную платформу для тестирования производительности.После приобретения он наслаждался масштабированием продукта, бизнеса и команды, прежде чем перейти к другим усилиям, связанным с производительностью.