Кратко

  • В примере Infrequent Access миллион чтений сочетается с 1 000 ГБ извлечённых данных и итогом 29,90 доллара. Это подразумевает в среднем 0,001 ГБ на чтение.
  • Если каждый раз извлекается весь объект размером 1 ГБ, обработка извлечения стоит 10 000 долларов. При неизменных остальных трёх строках итог составит 10 019,90 доллара.

У строки запросов в примере Cloudflare прекрасная память: она помнит каждое повторное чтение. Строка извлечённых данных помнит только складской остаток. Внизу они встречаются в сумме с двумя знаками после запятой — аккуратной настолько, что хочется забыть о недостающем условии.

На официальной странице тарифов, проверенной 28 октября, описаны 1 000 объектов со средним размером 1 ГБ. Их хранят в Infrequent Access пять дней, затем удаляют. За пять дней каждый объект читают 1 000 раз. Для Class B получается миллион операций и 0,90 доллара. Но извлечение рассчитывается как 1 000 объектов × 1 ГБ: всего 1 000 ГБ и 10 долларов. Множитель повторных чтений остался этажом выше.

В примере не указан объём, возвращаемый одним чтением; для реальной нагрузки стоимость определили бы счётчики оплачиваемого извлечения.

Тысячная доля объекта за один запрос

Делим указанные 1 000 ГБ на миллион чтений и получаем в среднем 0,001 ГБ. Это одна тысячная среднего объекта. Чтобы перенести итог в закупочный бюджет, покупатель должен увидеть это предположение о поведении программы.

Теперь явно зададим другое условие: каждое чтение забирает весь объект размером 1 ГБ. Тысяча объектов, каждый прочитан тысячу раз, дают миллион ГБ извлечения. При опубликованном тарифе 0,01 доллара за ГБ обработка обойдётся в 10 000 долларов.

Статья Опубликованный пример Каждый раз целый объект 1 ГБ
Хранение 10 долларов 10 долларов
Class A 9 долларов 9 долларов
Class B 0,90 доллара 0,90 доллара
Обработка извлечения 10 долларов 10 000 долларов
Всего 29,90 доллара 10 019,90 доллара

Последний столбец сохраняет три другие платы из примера. Это условный расчёт, а не счёт конкретного клиента. Разница в 9 990 долларов возникает от определения ответа на чтение. Для неё не требуется менять ни один тариф.

При этом число операций само по себе не раскрывает объём ответа. Cloudflare относит к Class B и HeadObject, и GetObject. Проверка метаданных и получение содержимого могут учитываться в одном классе. Приравнять любую операцию к полному объекту означало бы заполнить пробел ещё одним предположением. Нужны оба показателя: действия и извлечённые данные.

Бесплатный выход, платная выдача

R2 указывает бесплатную передачу данных в интернет для Standard и Infrequent Access. Для второй категории отдельно установлена плата за обработку извлечения — 0,01 доллара за ГБ. Выход из хранилища и извлечение данных стоят в разных строках прайс-листа.

В сценарии полного чтения миллион операций Class B стоит девяносто центов, а связанная с ними обработка — 10 000 долларов. Команда, обсуждающая исключительно цену запроса, рискует потратить совещание на самую маленькую часть сметы.

Название категории тоже не управляет приложением. Сам пример предлагает читать каждый объект тысячу раз за пять дней. Infrequent Access задаёт структуру цен; программу, которая запускает счётчики, создаёт покупатель. Добавленная позднее задача повторной обработки способна изменить экономику выбора без роста хранимого объёма.

Коммерческий риск появляется ещё при согласовании бюджета. Один сотрудник представляет короткий ответ, другой — объект целиком, а оба говорят о миллионе чтений. У них совпадает число действий, но не работа, которую они оценивают. Общая сумма скрывает это расхождение, если не показать объём ответа отдельно.

Пять дней на полке, тридцать в расчёте

Другие заметные цифры примера объясняются опубликованными правилами. Тысяча записей стоит девять долларов из-за округления использования вверх до следующей расчётной единицы. Для Class A в Infrequent Access тариф равен девяти долларам за миллион. На странице приведён и пример с 1 000 001 операцией, оплачиваемой как два миллиона.

За хранение берут десять долларов, то есть за 1 000 ГБ-месяцев, хотя объекты удаляют на пятый день. Официальное описание классов устанавливает для Infrequent Access минимальный срок тридцать дней. Досрочное удаление, перемещение или замена сохраняют плату за минимум. Операция удаления бесплатна; обязательство по хранению живёт по другому календарю.

Ежемесячные бесплатные лимиты Standard здесь также не действуют. Заимствовать их из соседнего примера означало бы стереть предусмотренные строки расходов. Кроме того, Standard в том примере хранит объекты месяц, а Infrequent Access — до удаления через пять дней. Их итоги нельзя сразу выдавать за сравнение одинаковых условий.

Для записи есть правило округления, для хранения — минимальный срок, для чтений — множитель. Тем заметнее единственный параметр, который всё ещё надо вписать: сколько данных приносит каждое чтение.

Два верных умножения ещё не составляют смету

Разработчик может правильно спрогнозировать запросы. Финансист может правильно умножить запас данных на цену извлечения. При этом их расчёты могут описывать разные процессы. Связующее звено — повторное получение тех же самых байтов.

Перед утверждением бюджета операции и оплачиваемый объём извлечения должны относиться к одним действиям за один период. Проверки метаданных следует обозначать отдельно, полным чтениям давать полный объём. Хранимая ёмкость не может молча заменить всё, что программа будет многократно забирать.

Cloudflare публикует цену, достаточную для умножения. Покупатель предоставляет поведение, к которому эта цена применяется. Чтобы 29,90 доллара стали бюджетом, а не только красивым итогом примера, чтению нужен размер.