При использовании ресурсов по требованию плата взимается за каждый запрос приложения на чтение или запись данных, хранимых в таблицах. Указывать, какая пропускная способность операций чтения или записи предположительно потребуется приложению, нет необходимости, поскольку DynamoDB мгновенно адаптируется к изменениям в рабочих нагрузках. На этой странице подробно описано, как рассчитывается стоимость использования основных и дополнительных возможностей DynamoDB. Цены, действительные для регионов AWS в Китае, приведены на соответствующей странице.
Ключевые понятия
Единица запроса на чтение. При расчете стоимости вызовы API для чтения данных из таблицы измеряются в единицах запросов на чтение. DynamoDB поддерживает запросы на чтение строго непротиворечивых данных, потенциально непротиворечивых данных или транзакционных данных. Для запроса на чтение строго непротиворечивых данных размером до 4 КБ требуется одна единица запроса на чтение. Для элементов, размер которых превышает 4 КБ, требуется несколько единиц запросов на чтение. Если размер элементов данных не превышает 4 КБ, для запроса на чтение потенциально непротиворечивых данных требуется половина единицы запроса на чтение, а для запроса на чтение транзакционных данных – две единицы запросов на чтение. Соответственно, для запроса на чтение строго непротиворечивых данных размером 8 КБ требуется две единицы запросов на чтение, для запроса на чтение потенциально непротиворечивых данных размером 8 КБ – одна единица запроса на чтение, а для запроса на чтение транзакционных данных размером 8 КБ – четыре единицы запросов на чтение. Подробные сведения см. в разделе Read Consistency.
Единица запроса на запись. При расчете стоимости вызовы API для записи данных в таблицу измеряются в единицах запросов на запись. Стандартной единицы запроса на запись достаточно для записи элемента размером до 1 КБ. Для элементов, размер которых превышает 1 КБ, требуется несколько единиц запросов на запись. Для записи транзакционных данных требуется две единицы запросов на запись. Например, для запроса на запись 1 КБ данных требуется одна единица запроса на запись, для запроса на запись 3 КБ данных – три единицы, а для запроса на запись 3 КБ транзакционных данных – шесть единиц.
Единица запроса на реплицируемую запись. При использовании глобальных таблиц DynamoDB данные автоматически записываются в несколько регионов AWS, указанных клиентом. Каждая операция записи выполняется в локальном регионе, а также в регионах репликации.
Единица запроса на чтение данных из потоков. Каждый вызов API GetRecords к DynamoDB Streams учитывается как единица запроса на чтение данных из потоков. Одной единицы запроса на чтение данных из потоков достаточно для извлечения данных размером до 1 МБ.
Запросы на чтение или запись транзакционных данных. В DynamoDB чтение или запись транзакционных данных отличаются от стандартного чтения или записи тем, что все операции в составе одной транзакции гарантированно выполняются как единый набор или полностью не выполняются.
Единицы сбора данных об изменениях. DynamoDB может сохранять изменения на уровне элементов в таблицах DynamoDB и реплицировать их в другие сервисы AWS, такие как Потоки данных Amazon Kinesis и AWS Glue. DynamoDB сохраняет такие изменения как делегированные операции, то есть DynamoDB от вашего имени выполнит все действия репликации, избавляя от управления пропускной способностью. DynamoDB начисляет плату за одну единицу сбора данных об изменениях за каждую операцию записи в таблицу (размером до 1 КБ). Для объектов, размер которых превышает 1 КБ, требуются дополнительные единицы сбора данных об изменениях.
Классы таблиц DynamoDB. В DynamoDB представлены два класса таблиц, позволяющие оптимизировать затраты. DynamoDB Standard является классом таблиц по умолчанию, который рекомендуется применять для подавляющего большинства рабочих нагрузок. Класс таблиц DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA) оптимизирован для таблиц, хранящих данные, к которым обращаются нечасто, в ситуациях, когда на хранение приходится основная часть затрат. Для каждого класса таблиц предусмотрены разные цены на хранение данных, а также запросы на чтение и запись. Можно выбрать наиболее выгодный класс таблиц исходя из требований к хранилищу таблицы и моделей получения доступа к данным. Подробные сведения о классах таблиц DynamoDB см. на странице DynamoDB Developer Guide.
Обзор возможностей и тарификации использования DynamoDB
Возможность |
Действие |
Расчетная единица |
|
Основные возможности |
|||
|
Запрос на запись |
Запись данных в таблицу |
Единица запроса на запись |
|
Запрос на чтение |
Чтение данных из таблицы |
Единица запроса на чтение |
Дополнительные возможности |
|||
|
Непрерывное резервное копирование |
Непрерывное поддержание резервных копий за последние 35 дней |
ГБ в месяц |
|
Резервное копирование по требованию |
Создание резервных копий в виде снимков состояния на момент времени |
ГБ в месяц |
|
Восстановление из резервной копии |
Восстановление таблицы из определенного снимка состояния или на указанный момент времени |
Гигабайт |
|
Глобальные таблицы |
Репликация данных для создания таблицы на несколько регионов с несколькими активными серверами |
Единица запроса на реплицируемую запись |
Сбор данных об изменениях для Amazon Kinesis Data Streams | Сбор данных об изменениях на уровне элемента в таблице и репликация изменений в Kinesis Data Streams | Единицы сбора данных об изменениях | |
Сбор данных об изменениях для AWS Glue | Сбор данных об изменениях на уровне элемента в таблице и репликация изменений в AWS Glue | Единицы сбора данных об изменениях | |
Экспорт данных в Amazon S3 | Экспорт резервных копий таблиц DynamoDB на конкретный момент времени в Amazon S3 | ГБ | |
Импорт данных из Amazon S3 | Миграция и загрузка данных из Amazon S3 в новые таблицы DynamoDB | ГБ | |
|
DynamoDB Streams |
Предоставление упорядоченной по времени последовательности изменений в таблице на уровне объектов |
Единица запроса на чтение данных из потоков |
|
Передача исходящих данных |
Передача данных в другие регионы AWS |
ГБ |
Обзор оплаты за интеграцию с DynamoDB
Интеграция |
Действие |
Расчетная единица |
|
|
Интеграция с ускорителем DynamoDB (DAX), сервисом кэширования, совместимым с DynamoDB |
Улучшает соотношение цены и производительности и снижает задержку с миллисекунд до микросекунд |
Час работы узла |
Интеграция с нулевым использованием ETL с сервисом Amazon OpenSearch | Обеспечивает полнотекстовый поиск, векторный поиск, семантический поиск, геопространственный поиск и многое другое без создания конвейеров данных и управления ими | ГБ экспорта | |
Интеграция с нулевым использованием ETL с Amazon Redshift | Обеспечивает аналитику операционных данных без создания конвейеров данных и управления ими | ГБ экспорта |
Цены на DynamoDB
-
• Запросы на чтение и запись
При использовании ресурсов по требованию в таблице DynamoDB плата взимается только за операции чтения и записи, выполненные приложением. Совершать вызовы API можно по мере необходимости, не меняя пропускную способность таблиц. DynamoDB самостоятельно распоряжается аппаратными ресурсами для обеспечения стабильной производительности рабочих нагрузок и низкой задержки. DynamoDB считает каждую операцию записи (размер данных не более 1 КБ) за одну единицу запроса на запись, а каждую операцию записи транзакционных данных аналогичного объема – за две единицы запросов на запись. DynamoDB считает каждую операцию чтения строго непротиворечивых данных (размером не более 4 КБ) за одну единицу запроса на чтение, каждую операцию чтения транзакционных данных – за две единицы запросов на чтение, а каждую операцию чтения потенциально непротиворечивых данных – за половину единицы запроса на чтение. Стоимость запросов на чтение и запись зависит от класса таблиц.
-
• Хранилище данных
Специально выделять хранилище не требуется. DynamoDB непрерывно следит за размером таблиц для расчета стоимости хранилища. DynamoDB измеряет объем данных, подлежащих оплате, путем сложения исходного размера ваших данных с дополнительным объемом, который зависит от включенных вами функций. Подробнее см. в Руководстве для разработчиков по DynamoDB. Цена носителя данных зависит от класса таблиц.
-
• Резервное копирование и восстановление
DynamoDB предусматривает два способа резервного копирования данных таблиц. Непрерывное резервное копирование с восстановлением на момент времени (PITR) обеспечивает постоянное резервное копирование данных таблицы за последние 35 дней. Таблицу можно восстановить до состояния на любую конкретную секунду за предыдущие пять недель. При резервном копировании по требованию создаются снимки состояния таблицы, архивирование которых можно выполнять на более продолжительный период времени для обеспечения соответствия корпоративным стандартам и законодательным требованиям.
Непрерывное резервное копирование с восстановлением на момент времени (PITR)
PITR оплачивается в зависимости от размера каждой таблицы DynamoDB, для которой включена эта возможность (т. е. с учетом объема данных таблицы и локальных вторичных индексов). DynamoDB в течение месяца непрерывно отслеживает размер таблиц, для которых включено PITR, чтобы рассчитать плату за резервное копирование, и продолжает выставлять счет, пока PITR не будет отключено для каждой таблицы.
Резервное копирование по требованию
Резервное копирование по требованию оплачивается в зависимости от объема хранилища, выделяемого для таблицы DynamoDB (т. е. с учетом объема данных таблицы и локальных вторичных индексов). Размер каждой резервной копии определяется на момент запроса на резервное копирование. Общий размер хранилища резервных копий, за который выставляется счет каждый месяц, представляет собой сумму всех резервных копий таблиц DynamoDB. DynamoDB в течение месяца непрерывно следит за размером резервных копий, созданных по требованию, для расчета платы за резервное копирование.
Вы можете использовать DynamoDB или AWS Backup для создания резервных копий по требованию и для управления ими. Подробнее об использовании резервного копирования и восстановления по требованию. AWS Backup поможет централизовать и автоматизировать защиту данных в сервисах AWS. Кроме того, AWS Backup предлагает дополнительные возможности, такие как выполняемое по требованию дублирование резервных копий на другие аккаунты и в другие регионы, недорогое хранение, проставление тегов для резервных копий, а также шифрование резервных копий, которое выполняется независимо от исходных данных, что позволяет сохранить непрерывность соблюдения бизнес-требований и оптимизировать стоимость создания резервных копий. За передачу данных между регионами взимается дополнительная плата. Дополнительную информацию об этих тарифах см. в разделе Цены на AWS Backup.
* Хранилище для «холодного» резервного копирования поддерживается для создания таких резервных копий по требованию, которые управляются исключительно AWS Backup. Вы можете предоставить согласие на использование AWS Backup с помощью Консоли управления AWS.
Резервные копии в хранилище холодного уровня хранятся не менее 90 дней. При удалении резервных копий до истечения 90‑дневного срока начисляется плата за хранение, пропорциональная оставшемуся сроку хранения.Восстановление таблиц
Запрос на восстановление таблицы из резервной копии по требованию или PITR оплачивается в зависимости от общего объема восстановленных данных (данных таблицы, локальных и глобальных вторичных индексов).
* Восстановление из хранилища для «холодного» резервного копирования поддерживается для таких резервных копий по требованию, которые управляются исключительно AWS Backup. Вы можете предоставить согласие на использование AWS Backup с помощью Консоли управления AWS. Хранилище для «холодных» резервных копий не применяется для непрерывных копий с возможностью восстановления на момент времени (PITR).
-
• Глобальные таблицы
При использовании ресурсов по требованию в глобальных таблицах DynamoDB плата начисляется только за те ресурсы, которые приложение использует для каждой реплики таблицы. Запросы на запись в глобальные таблицы измеряются в единицах запросов на реплицируемую запись, а не стандартную. Количество запросов на запись, которое потребовалось для репликации, зависит от версии используемых глобальных таблиц. Дополнительную информацию см. в разделе Best Practices and Requirements for Managing Global Tables. Стоимость запросов на чтение и хранение данных рассчитывается так же, как и для таблиц, которые не являются глобальными. Цена зависит от класса таблиц. Если добавляется реплика таблицы для создания или расширения глобальной таблицы в новых регионах, DynamoDB взимает плату за восстановление таблиц в добавленных регионах в зависимости от размера восстановленных данных в гигабайтах. За межрегиональную репликацию и добавление реплик в таблицы, которые содержат данные, также взимается плата за передачу данных. Подробнее см. в разделе «Передача данных» на этой странице цен.
-
• Сбор данных об изменениях для Amazon Kinesis Data Streams
DynamoDB взимает плату за сбор данных об изменениях для Amazon Kinesis Data Streams, выраженную в единицах сбора данных об изменениях. DynamoDB начисляет плату за одну единицу сбора данных об изменениях за каждую операцию записи (размером до 1 КБ). Вы оплачиваете только те операции записи, которые выполняет приложение, не беспокоясь об управлении пропускной способностью для таблицы.
Также при репликации изменений DynamoDB в поток данных Kinesis применяется плата за использование Kinesis Data Streams. Дополнительную информацию по этой теме можно найти в разделе Цены на Amazon Kinesis Data Streams -
• Пропускная способность для «теплых» данных
По умолчанию значения пропускной способности для «теплых» данных видны для всех таблиц и индексов Amazon DynamoDB. Эти значения автоматически корректируются без дополнительной оплаты, по мере увеличения выделенной пропускной способности или потребления по требованию. Однако если вы решите вручную увеличить эти значения, будет взиматься дополнительная плата.
Когда вы запрашиваете подготовку таблиц или индексов к тёплым данным, устанавливая новые значения пропускной способности для операций чтения и записи, DynamoDB взимает плату на основе разницы между новыми значениями и текущей пропускной способностью для тёплых данных, которую таблица или индекс могут поддерживать. С вас будет взиматься единовременная плата по региональной ставке в размере одной единицы ёмкости чтения (RCU) за каждое увеличение пропускной способности для чтения тёплых данных на одну единицу, и одной единицы ёмкости записи (WCU) за каждое увеличение пропускной способности для записи тёплых данных на одну единицу. Эти сборы распространяются на классы таблиц DynamoDB «Стандарт» и «Стандарт – редкий доступ».
Если вы выполняете подготовку реплики глобальной таблицы для чтения, записи или того и другого к теплым данным, все реплики будут подготовлены для тех же значений пропускной способности теплых данных. Плата будет взиматься в каждом регионе AWS, входящем в конфигурацию глобальной таблицы.
Пример. Предположим, у вас есть таблица DynamoDB «Стандарт» в регионе Восток США (Северная Вирджиния), текущая пропускная способность которой составляет 12 000 единиц чтения в секунду и 4 000 единиц записи в секунду. Если в случае предстоящего пикового события вы ожидаете, что таблица будет потреблять 100 000 единиц чтения в секунду, вы установите это значение в качестве нового значения пропускной способности при чтении в теплом режиме. Вы внесете единовременную плату за дополнительные 88 000 единиц чтения (разница между 100 000 и 12 000) по ставке 11,44 USD (88 000 единиц × 0,00013 USD за RCU). Эта структура оплаты применяется независимо от того, готовите ли вы таблицу или индекс для чтения или записи к теплым данным в классе таблиц DynamoDB «Стандарт» или «Стандарт – редкий доступ». Если эта таблица является частью глобальной таблицы с репликами в трех регионах, включая восток США (Северная Вирджиния), все три реплики будут подготовлены для обеспечения высокой пропускной способности теплых данных до 100 000 единиц чтения в секунду. Помимо платы на востоке США (Северная Вирджиния), вам также будет выставлен счет по соответствующим тарифам в каждом регионе, входящем в конфигурацию глобальной таблицы. -
• Сбор данных об изменениях для AWS Glue
DynamoDB взимает плату за сбор данных об изменениях для AWS Glue, выраженную в единицах сбора данных об изменениях. DynamoDB начисляет плату за одну единицу сбора данных об изменениях за каждую операцию записи (размером до 1 КБ). Вы оплачиваете только те операции записи, которые выполняет приложение, не беспокоясь об управлении пропускной способностью для вашей таблицы.
При репликации изменений из DynamoDB в целевую базу данных AWS Glue применяется плата за использование AWS Glue. Подробнее см. на странице Цены на AWS Glue.
-
• Экспорт данных в Amazon S3
Используйте эту функцию для экспорта данных из непрерывно создаваемых резервных копий DynamoDB (восстановление на момент времени) в Amazon Simple Storage Service (Amazon S3). Поддерживаемые форматы исходящих данных: DynamoDB JSON и Amazon Ion. Можно анализировать экспортированные данные с помощью таких сервисов AWS, как Amazon Athena, Amazon SageMaker и AWS Lake Formation.
Можно выбрать полный или инкрементный экспорт. При использовании полного экспорта плата взимается в зависимости от размера каждой таблицы DynamoDB (данные таблицы и локальные вторичные индексы) в конкретный момент времени, когда была создана резервная копия. При использовании инкрементного экспорта плата взимается в зависимости от размера данных, обрабатываемых из непрерывного резервного копирования для получения выходных данных инкрементного экспорта. Дополнительная плата взимается за хранение экспортированных данных в Amazon S3 и запросы PUT к корзине Amazon S3. Дополнительную информацию об этих тарифах см. в разделе Цены на Amazon S3.
-
• Импорт данных из Amazon S3
Благодаря возможности импорта данных Amazon DynamoDB можно легко и эффективно перемещать данные между таблицами Amazon S3 и DynamoDB без написания кода. Вы можете копировать таблицы в другие регионы и аккаунты AWS, что позволяет переносить данные и создавать новые приложения, помогает обмениваться данными и вести командную работу, а также упрощает аварийное восстановление и планирование непрерывных бизнес-процессов. Стоимость импорта данных зависит от размера несжатых файлов в Amazon S3. Подробнее см. в разделе Импорт из S3. Поддерживаемые форматы входных данных: CSV, DynamoDB JSON и Amazon Ion.
При использовании Amazon S3 также взимается плата за хранение исходных данных и запросы GET к корзине Amazon S3. Дополнительную информацию о тарифах Amazon S3 см. в разделе Цены на Amazon S3.
-
• Интеграция с ускорителем DynamoDB (DAX)
DAX – это сервис кэширования, совместимый с Amazon DynamoDB. Ресурсы DAX оплачиваются на почасовой основе, запуск инстансов DAX не требует принятия долгосрочных обязательств. Стоимость зависит от количества часов работы узла, а также от выбранного пользователем типа инстанса. Каждый частично использованный час работы узла оплачивается как полный. При начислении платы учитывается работа каждого отдельного узла в кластере DAX. Например, если используется кластер DAX с тремя узлами, необходимо будет оплатить работу каждого отдельного узла (то есть всех трех узлов) на почасовой основе.
Плата за передачу данных между Amazon Elastic Compute Cloud (Amazon EC2) и DAX в рамках одной зоны доступности не взимается. При передаче данных между инстансом Amazon EC2 и узлом DAX в разных зонах доступности того же региона AWS применяется стандартная плата за передачу данных Amazon EC2. При этом плата начисляется только за входящий или исходящий трафик инстанса Amazon EC2. Отдельная плата за передачу данных DAX, т. е. за входящий и исходящий трафик узла DAX, не взимается.
Инстансы T3 DAX работают в безлимитном режиме, то есть плата начисляется, если средняя загрузка ЦП в течение суток превышает базовый уровень инстанса. Кредиты ЦП оплачиваются по тарифу 0,096 USD за час работы виртуального ЦП. Цены на кредиты ЦП одинаковы для инстансов T3 любых размеров во всех регионах AWS.
-
• DynamoDB Streams
Оплате подлежит только чтение данных из потоков DynamoDB Streams, измеренное в единицах запросов на чтение. Каждый вызов API GetRecords оплачивается как одна единица запроса на чтение данных из потоков и позволяет извлечь до 1 МБ данных из DynamoDB Streams. Единицы запроса на чтение данных из потоков отличаются от единиц запросов на чтение данных из таблицы DynamoDB. Плата не начисляется за вызовы API GetRecords, которые сервис AWS Lambda выполняет как часть триггеров DynamoDB. Не подлежат оплате и вызовы API GetRecords, выполняемые глобальными таблицами DynamoDB.
-
• Передача данных
Передача входящих и исходящих данных – это передача данных в сервис DynamoDB и из него. За входящий трафик, а также за передачу данных между DynamoDB и другими сервисами AWS в пределах одного региона AWS плата не взимается (то есть цена составляет 0,00 USD за ГБ). Плата за передачу данных между регионами AWS (например, между DynamoDB в регионе Восток США [Сев. Вирджиния) и Amazon EC2 в регионе ЕС (Ирландия)] взимается с обеих сторон передачи. В рамках уровня бесплатного пользования AWS клиенты AWS имеют возможность каждый месяц бесплатно передавать в Интернет 100 ГБ исходящих данных совокупно для всех сервисов и регионов AWS (за исключением Китая и GovCloud). Дополнительную информацию см. в разделе Уровень бесплатного пользования AWS. Если вам необходимо передавать более 500 ТБ данных в месяц, свяжитесь с нами.
Уровень бесплатного пользования DynamoDB
Уровень бесплатного пользования AWS позволяет получить бесплатный практический опыт работы с сервисами AWS. На уровне бесплатного пользования AWS доступны следующие преимущества DynamoDB. Каждое преимущество предоставляется на месяц для каждого региона и каждого аккаунта плательщика.
- 25 ГБ хранилища данных для таблиц, использующих класс таблиц DynamoDB Standard
- 2,5 миллиона запросов на чтение данных из потоков DynamoDB Streams
- 1 ГБ передаваемых данных (15 ГБ в первые 12 месяцев) во всех сервисах и регионах AWS (за исключением Китая и GovCloud)
Примеры расчета стоимости DynamoDB
-
• Простой пример
Это пример расчета стоимости DynamoDB при использовании ресурсов по требованию.
Предположим, новая таблица DynamoDB Standard создана в регионе Восток США (Сев. Вирджиния). Эта таблица предназначена для нового приложения, поэтому неясно, как будет выглядеть трафик в будущем. Для удобства предположим, что при каждом взаимодействии пользователя с приложением выполняется 1 операция записи 1 КБ данных и 1 операция чтения 1 КБ строго непротиворечивых данных.
В течение 10 дней на приложение поступает малый объем данных, в результате чего каждый день в таблице совершается 10 000 операций чтения и 10 000 операций записи. Однако на 11‑й день популярность приложения в социальной сети подскакивает, и в этот день трафик резко увеличивается до 2 500 000 операций чтения и 2 500 000 операций записи. DynamoDB автоматически выполняет масштабирование для обеспечения стабильной работы пользователей. Затем модель трафика приложения стабилизируется, и до конца месяца в среднем выполняется 50 000 операций чтения и 50 000 операций записи каждый день. В таблице ниже кратко описано использование приложения в этом месяце.
Период (дни месяца)
Общее количество операций записи
Общее количество операций чтения
1–10
100 000 операций записи (10 000 операций записи x 10 дней)
100 000 операций чтения (10 000 операций чтения x 10 дней)
11
2 500 000 операций записи
2 500 000 операций чтения
12–30
950 000 операций записи (50 000 операций записи x 19 дней)
950 000 операций чтения (50 000 операций чтения x 19 дней)
Всего за месяц
3 550 000 операций записи
3 550 000 операций чтения
Ежемесячный счет
2,22 USD (0,6250 USD за 1 миллион операций записи x 3,55 миллиона операций записи)
0,44 USD (0,125 USD за 1 миллион операций чтения x 3,55 миллиона операций чтения)
Хранилище данных. Предположим, что по результатам непрерывного отслеживания DynamoDB таблица занимает 25 ГБ хранилища в начале месяца и увеличивается до 29 ГБ к его концу (среднее значение 27 ГБ). Поскольку в качестве класса таблицы выбран DynamoDB «Стандарт», первые 25 ГБ хранящихся данных входят в уровень бесплатного пользования AWS. Остальные 2 ГБ хранилища оплачиваются из расчета 0,25 USD за 1 ГБ. Следовательно, хранение таблицы стоит 0,50 USD в месяц.
Итоговая стоимость за месяц составит 3,16 USD, из которых 2,66 USD начисляются за операции чтения и записи и 0,50 USD – за хранилище данных.
-
• Развернутый пример
Это пример расчета стоимости DynamoDB при использовании ресурсов по требованию.
Предположим, новая таблица DynamoDB Standard создана в регионе Восток США (Сев. Вирджиния). Эта таблица предназначена для нового приложения, поэтому неясно, как будет выглядеть трафик в будущем. Для удобства предположим, что при каждом взаимодействии пользователя с приложением выполняется 1 операция записи 1 КБ данных и 1 операция чтения 1 КБ строго непротиворечивых данных.
В течение семи дней на приложение поступает малый объем данных, в результате чего каждый день в таблице совершается по 1000 операций чтения и записи. Но на восьмой день приложение попадает в поле зрения авторитетного представителя отрасли, и внезапно трафик приложения в этот день подскакивает до 10 000 000 операций записи и чтения. Затем модель трафика приложения стабилизируется, и в течение следующих двух недель в среднем выполняется 150 000 операций чтения и записи в день. После этого трафик начинает постепенно сходить на нет, и в течение следующих семи дней объем падает до 10 000 операций записи и чтения в день.
Наконец приложение внезапно начинает вирусное распространение в социальной сети. В последний день месяца в таблице выполняется 30 000 000 операций записи и чтения. В таблице ниже кратко описано использование приложения в этом месяце.
Период (дни месяца)
Общее количество операций записи
Общее количество операций чтения
1–7
7000 операций записи (1000 операций записи x 7 дней)
7000 операций чтения (1000 операций чтения x 7 дней)
8
10 000 000 операций записи
10 000 000 операций чтения
9–22
2 100 000 операций записи (150 000 операций записи x 14 дней)
2 100 000 операций чтения (150 000 операций чтения x 14 дней)
23–29
70 000 операций записи (10 000 операций записи x 7 дней)
70 000 операций чтения (10 000 операций чтения x 7 дней)
30
30 000 000 операций записи
30 000 000 операций чтения
Всего за месяц
42 177 000 операций записи
42 177 000 операций чтения
Ежемесячный счет
26,36 USD (0,6250 USD за 1 миллион операций записи x 42,177 миллиона операций записи) 5,27 USD (0,125 USD за 1 миллион операций чтения x 42,177 миллиона операций чтения)
Хранилище данных. Предположим, что согласно результатам непрерывного отслеживания размера таблицы она занимает 25 ГБ хранилища в начале месяца и увеличивается до 29 ГБ к его концу (среднее значение 27 ГБ). Поскольку в качестве класса таблицы выбран DynamoDB Standard, первые 25 ГБ хранящихся данных входят в уровень бесплатного пользования AWS. Остальные 2 ГБ хранилища оплачиваются из расчета 0,25 USD за 1 ГБ. Следовательно, хранение таблицы стоит 0,50 USD в месяц.
Резервное копирование и восстановление. Если всего созданные по требованию резервные копии заняли 60 ГБ пространства и хранились в течение 30 дней, то стоимость хранения резервных копий за месяц составит (0,10 USD x 60 ГБ) = 6,00 USD в месяц. При этом в случае удаления 15 ГБ резервных копий по требованию через 10 дней после начала расчетного месяца стоимость хранения составит (0,10 USD x 60 ГБ) – (0,10 USD x 15 ГБ x 20/30) = 5,00 USD за месяц. Далее предположим, что вместе с резервным копированием по требованию также использовалось непрерывное резервное копирование. В среднем размер таблицы составляет 27 ГБ, поэтому стоимость за месяц составит (0,20 USD x 27 ГБ) = 5,40 USD в месяц. Если в конце месяца понадобится восстановить таблицу, стоимость этой операции составит (0,15 USD x 29 ГБ) = 4,35 USD.
Сбор данных об изменениях для Kinesis Data Streams. Теперь предположим, что вы передаете данные в поток данных Kinesis для обработки данных об изменениях с помощью сервисов Amazon Kinesis. DynamoDB начисляет одну единицу сбора данных об изменениях за каждую операцию записи размером до 1 КБ, выполняемую в поток данных Kinesis. Если предположить, что трафик приложения для записи в поток данных Kinesis совпадает с тем, который мы описали ранее в этом примере, за месяц накопится 42 177 000 единиц сбора данных об изменениях. Цена за месяц составит (0,10 USD x 42 177 000/1 000 000) = 4,22 USD.
Экспорт данных в Amazon S3. Допустим, вы хотите экспортировать резервные копии таблиц в Amazon S3 для проведения анализа. Если размер таблицы в конкретный момент времени составляет 29 ГБ, итоговая стоимость экспорта составит: (0,10 USD × 29 ГБ) = 2,90 USD.
Интеграция с ускорителем DynamoDB (DAX). DAX – это сервис кэширования, совместимый с Amazon DynamoDB. Допустим, вы решили, что необходимо увеличить время отклика приложения, и воспользовались ускорителем DynamoDB (DAX). Изучив доступные технические характеристики, пользователь останавливает выбор на кластере инстансов t2.small с тремя узлами. DAX включается на 26‑й день месяца. Стоимость работы DAX составляет 0,12 USD в час (0,04 USD x 3 узла), что в сумме дает 14,40 USD за последние 5 дней месяца (0,12 USD x 120 часов).
Глобальные таблицы. Предположим, что в регионе Запад США (Орегон) необходимо создать реплику таблицы для восстановления после аварии. Предположим, что реплика добавляется в регионе Запад США (Орегон), когда таблица приобретает размер 25 ГБ. В результате плата за восстановление таблицы составляет 3,75 USD (0,15 USD x 25ГБ). Кроме того, при добавлении этой реплики производится передача 25 ГБ данных, как указано в разделе «Передача данных» ниже. Также предположим, что трафик приложения, описанный выше, для глобальной таблицы не меняется. Следовательно, будет использовано 84,35 миллиона единиц запросов на реплицируемую запись (42 177 000 операций записи x 2 региона), как описано в разделе Рекомендации и требования к управлению глобальными таблицами, а стоимость составит 52,72 USD (84,35 миллиона единиц запросов на реплицируемую запись x 0,6250 USD за миллион). Кроме того, в реплицированной таблице в регионе Запад США (Орегон) хранятся дополнительно 27 ГБ данных. Первые 25 ГБ хранящихся данных входят в уровень бесплатного пользования AWS в каждом регионе AWS для таблиц, использующих класс таблиц DynamoDB Standard. Остальные 2 ГБ хранилища оплачиваются из расчета 0,25 USD за 1 ГБ. Следовательно, хранение дополнительной таблицы стоит 0,50 USD в месяц.
DynamoDB Streams. Предположим, пользователь включает DynamoDB Streams и настраивает приложение таким образом, что каждую секунду оно выполняет один запрос на чтение данных из потоков. За месяц оно выполнит 2 592 000 запросов на чтение данных из потоков, первые 2 500 000 запросов на чтение из которых предоставляются в рамках уровня бесплатного пользования AWS. Оплата взимается только за остальные 92 000 запросов на чтение по тарифу 0,02 USD за 100 000 единиц.
Передача данных. Поскольку для развертывания глобальных таблиц выполняется передача данных между регионами AWS, DynamoDB взимает плату за передачу исходящих данных, но не за входящий трафик. Если предположить, что в месяц совершается 42 177 000 операций записи данных и в каждой операции размер данных составляет 1 КБ, то между регионами будет передано 40,22 ГБ данных. При добавлении реплики в регионе Запад США (Орегон) передается еще 25 ГБ данных. За межрегиональную передачу данных будет взиматься плата 5,94 USD (0,09 USD x (41 + 25) ГБ).
Всего за таблицу DynamoDB в одном регионе в месяц взимаются указанные ниже суммы.
- Операции записи: 26,36 USD
- Операции чтения: 5,27 USD
- Хранилище данных: 0,50 USD
- Резервное копирование по требованию: 5,00 USD
- Постоянное резервное копирование (PITR): 5,40 USD
- Восстановление таблицы: 4,35 USD
- Сбор данных об изменениях для Kinesis Data Streams: 4,22 USD
- Экспорт данных в Amazon S3: 2,90 USD Интеграция с ускорителем DynamoDB (DAX), сервисом кэширования, совместимым с Amazon DynamoDB: 14,40 USD
- Потоки DynamoDB: 0,02 USD
Общая стоимость: 68,42 USD
После добавления региона Запад США (Орегон) ежемесячная плата за DynamoDB изменится указанным ниже образом.
- Операции чтения: 5,27 USD
- Хранение данных в регионе Восток США (Северная Вирджиния): 0,50 USD
- Резервное копирование по требованию: 5,00 USD
- Постоянное резервное копирование (PITR): 5,40 USD
- Восстановление таблицы в регионе Восток США (Северная Вирджиния): 4,35 USD
- Сбор данных об изменениях для Kinesis Data Streams: 4,22 USD
- Экспорт данных в Amazon S3: 2,90 USD
- Интеграция с ускорителем DynamoDB (DAX), сервисом кэширования, совместимым с Amazon DynamoDB: 14,40 USD
- Потоки DynamoDB: 0,02 USD
- Восстановление глобальной таблицы в регионе Запад США (Орегон): 3,75 USD
- Запросы на запись в реплицированные глобальные таблицы: 52,72 USD
- Хранение данных в глобальных таблицах в регионе Запад США (Орегон): 0,50 USD
- Передача данных: 5,94 USD
Общая стоимость: 104,97 USD
-
• Пример использования различных классов таблиц
В этом примере мы продемонстрируем, как можно сократить ежемесячные расходы на таблицы, используя класс таблиц DynamoDB, который лучше всего подходит для хранения таблиц и моделей получения доступа к данным.
Предположим, у вас есть таблица в регионе Восток США (Северная Вирджиния). Она занимает 1 ТБ данных за прошедший период. К этим данным обращаются не часто, однако пользователи должны иметь возможность быстро получать к ним доступ при необходимости. А теперь предположим, что объем хранящихся у вас данных вырос до 1,4 ТБ к концу месяца и в среднем составляет 1,2 ТБ согласно результатам непрерывного отслеживания размера таблицы. Модель трафика таблицы дает за месяц в общей сложности 42,5 млн операций записи и 42,5 млн операций чтения. Для удобства предположим, что при каждом взаимодействии пользователя с приложением выполняется 1 операция записи 1 КБ данных и 1 операция чтения 1 КБ строго непротиворечивых данных.
Начнем с оценки ежемесячной платы за таблицу при использовании класса таблиц DynamoDB Standard.
Ежемесячная плата при использовании класса таблиц DynamoDB Standard
Если в качестве класса таблицы задан DynamoDB Standard, плата будет взиматься описанным далее образом.
Хранение данных. При использовании класса таблиц DynamoDB Standard первые 25 ГБ хранящихся данных входят в уровень бесплатного пользования AWS. Остальные 1,175 ГБ хранилища оплачиваются из расчета 0,25 USD за 1 ГБ. Следовательно, хранение таблицы стоит 293,75 USD за месяц.
Чтение и запись. С вас будет взиматься плата за
42,5 млн операций записи x 0,625 USD за 1 млн операций записи = 26,56 USD за запросы на запись;
42,5 млн операций чтения x 0,125 USD за 1 млн операций чтения = 5,31 USD за запросы на чтение.
В общем, итоговая ежемесячная плата при использовании класса таблиц DynamoDB «Стандарт» будет выглядеть следующим образом.Операции записи: 26,56 USD
Операции чтения: 5,31 USD
Хранилище данных: 293,75 USD.
Итоговая ежемесячная плата при использовании класса таблиц DynamoDB Standard оставит 325,62 USD.
Ежемесячная плата при использовании класса таблиц DynamoDB Standard-IA
Как указывалось ранее, при использовании класса таблиц DynamoDB Standard стоимость хранения составляет более чем 50 процентов от стоимости операций чтения и записи. Если на хранение приходится основная часть затрат (более 50 процентов стоимости операций чтения и записи) при использовании класса таблиц DynamoDB Standard, можно оптимизировать затраты, перейдя к использованию класса таблиц DynamoDB Standard-IA. Теперь предположим, что в начале следующего месяца при такой же рабочей нагрузке вы перешли к использованию класса таблиц DynamoDB Standard-IA. Плата будет взиматься описанным далее образом.
Хранение данных. 1,2 ТБ хранилища оплачиваются из расчета 0,10 USD за 1 ГБ. Следовательно, хранение таблицы стоит 120,00 USD в месяц.
Чтение и запись. С вас будет взиматься плата за
42,5 млн операций записи x 0,780 USD за 1 млн операций записи = 33,15 USD за запросы на запись;
42,5 млн операций чтения x 0,155 USD за 1 млн операций чтения = 6,59 USD за запросы на чтение.
В общем, итоговая ежемесячная плата при использовании класса таблиц DynamoDB Standard-IA будет выглядеть следующим образом.
Операции записи: 33,15 USDОперации чтения: 6,59 USD
Хранилище данных: 120,00 USD.
Итоговая плата за использование класса таблиц DynamoDB Standard-IA: 159,74 USD.
Благодаря использованию DynamoDB Standard-IA для таблицы итоговая ежемесячная плата снижается на 50,9 %, или на 165,88 USD.
Дополнительные ресурсы по ценам
Простой расчет ежемесячных расходов на AWS
Связаться со специалистами AWS и получить индивидуальное предложение
Посмотрите видео и учебные пособия, зарегистрируйтесь для прохождения обучения.
Получите мгновенный доступ к уровню бесплатного пользования AWS.
Начните разработку с помощью Amazon DynamoDB в Консоли управления AWS.