Как частота доступа к данным влияет на стоимость хранения, операций и трафика. Сравнение горячего, холодного и архивного классов, расчёт на примере и правила жизненного цикла.
Один и тот же терабайт данных в облаке может обходиться в двадцать раз дороже или дешевле. Всё зависит от того, в какой класс хранения он помещён. Для организации, использующей корпоративное хранилище данных, правильный выбор класса особенно важен, поскольку напрямую влияет на расходы. Облачное хранилище S3 у большинства провайдеров предлагает несколько таких классов: горячий, холодный и архивный. Они различаются не надёжностью и не скоростью сети, а моделью оплаты. Ниже разобрано, как частота обращения к данным влияет на итоговый счёт и по каким признакам выбирать класс для конкретного набора файлов.
Что такое класс хранения
Класс хранения — это атрибут объекта в бакете. Он определяет тариф и условия доступа к объекту. Ключ, размер и содержимое объекта при смене класса не меняются, приложение продолжает обращаться к нему по тому же адресу. Исключение составляет архив: прежде чем прочитать объект оттуда, его нужно восстановить.
Интерфейс у всех классов общий. Используется тот же S3 API и те же запросы PUT, GET, HEAD, LIST. Меняется другое: сколько провайдер берёт за гигабайт в месяц, за каждый запрос и за каждый прочитанный гигабайт.
Тарифы построены на компромиссе. Горячие данные размещаются на носителях с запасом производительности, и за это провайдер берёт высокую плату за объём. Холодные и архивные данные лежат на плотных медленных дисках, а в архивных системах иногда на ленточных библиотеках. Хранить их дешевле, но каждое чтение требует ресурсов, и провайдер переносит эти расходы в плату за извлечение.
Надёжность хранения у классов, как правило, одинакова. Данные реплицируются или кодируются с избыточностью, и вероятность потерять объект в холодном классе не выше, чем в горячем. Различаться может доступность по SLA: у холодных классов она обычно ниже на десятые доли процента. Отдельно встречаются однозонные варианты холодного класса. Они дешевле, но хранят данные в одном центре обработки данных, и при аварии в нём данные могут быть утрачены.
Из чего складывается стоимость хранения
Счёт за объектное хранилище почти никогда не сводится к одной строке. Цена за гигабайт в месяц — самая заметная позиция, но для холодных классов она часто не главная.
Плата за объём
Объём тарифицируется в гигабайт-месяцах. Учитывается средний объём за период: 1 ТБ, пролежавший в бакете 15 дней из 30, оплачивается как 0,5 ТБ·мес. Для горячего класса на этом расчёт заканчивается. Для холодных классов действуют дополнительные условия, о которых ниже.
Плата за операции
Запросы делятся на группы. Запись и листинг (PUT, POST, COPY, LIST) стоят дороже, чтение (GET, HEAD) дешевле. В холодных классах те же операции обходятся в несколько раз дороже, чем в горячем. Для тысячи видеофайлов по несколько гигабайт это незаметно. Для 50 миллионов миниатюр изображений плата за операции становится отдельной крупной статьёй расходов.
Перевод объекта в другой класс правилом жизненного цикла тоже считается операцией и оплачивается за каждый объект. Перенос 10 миллионов файлов из горячего класса в архив может стоить больше, чем их хранение там в течение нескольких месяцев.
Плата за извлечение и исходящий трафик
Эти две позиции часто путают. Извлечение (retrieval) — плата за каждый гигабайт, прочитанный из холодного или архивного класса. Она взимается независимо от того, куда ушли данные. Исходящий трафик (egress) — плата за передачу данных из облака в интернет. Он стоит одинаково для всех классов.
Когда объект из холодного класса скачивается на компьютер пользователя, оплачиваются обе позиции. Когда виртуальная машина в том же регионе читает этот объект для обработки, трафик внутри региона у большинства провайдеров бесплатен, а извлечение — нет. Входящий трафик, то есть загрузка данных в хранилище, обычно не тарифицируется.
Минимальный срок хранения и минимальный размер объекта
Холодные и архивные классы рассчитаны на то, что данные пролежат в них долго. Поэтому провайдеры вводят минимальный срок хранения: обычно 30 дней для холодного класса, 90 дней для архива и 180 дней для глубокого архива. Объект, удалённый или перемещённый раньше, всё равно оплачивается за весь минимальный срок. Если файл удалить из холодного класса на десятый день, счёт придёт за 30 дней.
Второе ограничение касается размера. В холодном классе объект меньше 128 КБ тарифицируется как объект в 128 КБ. В архивных классах к каждому объекту добавляются служебные метаданные, около 40 КБ, часть которых оплачивается по цене горячего класса. Для мелких файлов это меняет экономику целиком.
Сравнение классов хранения
В таблице приведены типичные параметры, характерные для крупных провайдеров с S3-совместимым API. Конкретные цифры у каждого провайдера свои, поэтому цены даны в процентах от стоимости горячего класса.
| Параметр | Горячий (стандартный) | Холодный (редкий доступ) | Архивный | Глубокий архив |
|---|---|---|---|---|
| Цена хранения относительно горячего | 100% | 40–55% | 15–20% | 4–5% |
| Плата за извлечение | Нет | Есть, умеренная | Есть, зависит от скорости | Есть, зависит от скорости |
| Время до получения данных | Миллисекунды | Миллисекунды | От минут до 12 часов | До 12–48 часов |
| Минимальный срок хранения | Нет | 30 дней | 90 дней | 180 дней |
| Минимальный тарифицируемый размер | Нет | 128 КБ | Около 40 КБ служебных данных | Около 40 КБ служебных данных |
| Стоимость операций | Базовая | В 2–10 раз выше | Выше, плюс запрос на восстановление | Выше, плюс запрос на восстановление |
| Типичные данные | Сайт, активные проекты, свежие загрузки | Бэкапы за месяцы, старые заказы, медиатеки | Документы на хранении, исходники | Юридические архивы, сырые научные данные |
Между холодным классом и архивом у части провайдеров есть промежуточный вариант — архив с мгновенным доступом. Он стоит как архив по хранению, отдаёт данные за миллисекунды, но берёт высокую плату за извлечение и требует хранения не меньше 90 дней. Он подходит для данных, которые читают раз в квартал, но иногда нужно открыть без ожидания: медицинские снимки, старые фотографии в пользовательских галереях.
Горячее хранилище: когда оно оправдано
Горячий класс подходит для всего, что читается часто или живёт недолго. Это статические файлы сайта и изображения товаров интернет-магазина, файлы текущих проектов, пользовательские загрузки в первые недели после публикации, данные, по которым ежедневно строятся аналитические отчёты.
Короткоживущие данные почти всегда выгоднее держать в горячем классе. Временные файлы рендеринга, логи с ротацией через 7 дней, промежуточные результаты обработки, которые удаляются через сутки, — всё это при переносе в холодный класс оплачивалось бы за 30 дней вместо фактических нескольких.
Горячий класс нужен и как источник для CDN. Сеть доставки контента кэширует файлы, но при промахе кэша обращается к бакету. Если популярный контент лежит в холодном классе, каждый промах оплачивается как извлечение, а при сбросе кэша CDN перечитывает весь каталог разом.
Холодное хранилище: данные, к которым обращаются редко
Холодный класс предназначен для данных, которые читаются раз в месяц или реже, но при необходимости должны открыться сразу. Сюда относятся резервные копии за последние месяцы, завершённые проекты, заказы прошлых периодов, видеозаписи старше нескольких недель, документы для внутренних проверок.
Выгоду холодного класса можно оценить простой формулой. Пусть горячий класс стоит Pг за гигабайт в месяц, холодный — Pх, а извлечение — R за гигабайт. Холодный класс дешевле, если доля объёма, читаемая за месяц, меньше (Pг − Pх) / R. При типичном соотношении цен этот порог близок к 100%: формально холодный класс выгоден, пока за месяц читается меньше всего объёма. На практике порог ниже. Его снижают плата за операции, минимальный размер объекта и минимальный срок хранения. Если за месяц читается больше трети объёма, данные разумнее оставить в горячем классе.
Холодный класс не подходит для данных, которые сканируются целиком по расписанию. Еженедельный аналитический запрос по всему бакету, переиндексация поиска, проверка целостности с полным чтением файлов превращают дешёвое хранение в дорогое извлечение.
Архивное хранилище: долгий срок и задержка доступа
Архив работает иначе, чем остальные классы. Объект в нём нельзя прочитать запросом GET напрямую. Сначала отправляется запрос на восстановление (RestoreObject) с выбором скорости. Срочное восстановление занимает минуты и стоит дороже всего. Стандартное — несколько часов. Пакетное — до 12 часов и дольше, зато обходится дешевле всего. Для глубокого архива сроки растягиваются до 48 часов.
После восстановления провайдер создаёт временную копию объекта на указанное число дней. Эта копия оплачивается по тарифу горячего класса, а исходный объект продолжает лежать в архиве. Если восстановить 2 ТБ на 30 дней, в счёте появится месяц хранения 2 ТБ в горячем классе поверх архивного тарифа.
Архив подходит для данных, которые хранятся по требованию закона или договора и почти никогда не читаются. Первичные бухгалтерские документы в России хранятся не менее пяти лет, медицинская документация — дольше. В эту же категорию попадают исходники видеопроизводства после сдачи проекта, годовые полные резервные копии, сырые данные научных экспериментов. Для документов с обязательным сроком хранения стоит включить блокировку объектов (Object Lock) в режиме, который запрещает удаление и перезапись до окончания срока.
Архив плохо подходит для аварийного восстановления. Если после сбоя нужно вернуть 20 ТБ рабочих данных за несколько часов, стандартная скорость восстановления не уложится в это окно, а срочная обойдётся дорого. Последнюю полную копию для аварийных сценариев держат в горячем или холодном классе, в архив отправляют более старые.
Как определить частоту доступа к данным
Выбор класса основан на фактическом поведении данных, а не на предположениях. Источников информации несколько. Журналы доступа к бакету (server access logs) показывают каждый запрос к каждому объекту. Инструменты аналитики классов хранения, которые есть у ряда провайдеров, строят распределение обращений по возрасту объектов. Инвентаризация бакета даёт список объектов с размерами, датами создания и текущими классами. Наблюдать стоит не меньше 30–60 дней, чтобы захватить ежемесячные отчёты и закрытие периода.
Объект или группу объектов можно переводить в холодный класс, если выполняются следующие условия:
- к объектам не было запросов GET в течение последних 30 дней или дольше;
- средний размер объекта больше 128 КБ, а лучше — больше 1 МБ;
- объекты будут храниться ещё минимум несколько месяцев;
- чтение при необходимости происходит точечно, а не сканированием всего набора;
- данные не служат источником для CDN и не участвуют в регулярной аналитике.
Для перевода в архив к этим условиям добавляется ещё одно: процессы, которые обращаются к данным, допускают ожидание в несколько часов.
Удобнее всего группировать данные по префиксам и тегам. Если резервные копии лежат по путям вида backups/2026/09/, а отчёты — по reports/, правила для каждой группы настраиваются отдельно. Данные, у которых нет единой структуры путей, сначала размечают тегами.
Правила жизненного цикла
Вручную переносить объекты между классами имеет смысл только один раз. Для постоянной работы используются правила жизненного цикла (lifecycle rules). Правило применяется к объектам с заданным префиксом или тегом и описывает действия по возрасту объекта.
Действие Transition переводит объект в другой класс через указанное число дней после создания. Expiration удаляет объект по истечении срока. Для бакетов с версионированием есть отдельные действия для неактуальных версий: их можно переводить в холодный класс и удалять по своему расписанию. Ещё одно полезное действие — удаление незавершённых многочастных загрузок (AbortIncompleteMultipartUpload). Прерванные загрузки больших файлов оставляют в бакете части, которые не видны в обычном списке объектов, но оплачиваются.
Правила срабатывают асинхронно, обычно раз в сутки, поэтому объект может сменить класс через день-два после указанного срока. Переходы по правилам идут только в сторону более холодных классов. Чтобы вернуть объект в горячий класс, его копируют поверх самого себя с новым классом, а архивный объект перед этим восстанавливают.
Часть провайдеров предлагает класс с автоматическим распределением. Провайдер сам отслеживает обращения и переносит объект между уровнями без платы за извлечение. За это взимается ежемесячная плата за мониторинг каждой тысячи объектов, а объекты меньше 128 КБ не отслеживаются и остаются на горячем уровне. Автоматический класс выгоден, когда характер доступа непредсказуем и объекты крупные.
Практический разбор: резервные копии небольшой компании
Компания хранит в облаке резервные копии учётной системы и файлового сервера. Общий объём — 10 000 ГБ. Раз в квартал администратор проводит тестовое восстановление около 200 ГБ, раз в год аудитор запрашивает копии годичной давности объёмом около 100 ГБ. Сейчас всё лежит в горячем классе.
Расчёт выполнен на условных тарифах, близких по соотношению к рыночным: хранение в горячем классе — 2,0 ₽ за ГБ в месяц, в холодном — 1,0 ₽, в архиве — 0,3 ₽. Извлечение из холодного класса — 1,0 ₽ за ГБ, из архива — 2,5 ₽ за ГБ. Исходящий трафик — 1,5 ₽ за ГБ для всех классов.
Перевод выполняется в шесть шагов:
- Включить журналы доступа и собрать данные за 60 дней. В примере запросы GET идут почти исключительно к копиям последних семи дней.
- Разделить данные по возрасту. Копии до 30 дней (1 500 ГБ) остаются в горячем классе, копии от 31 до 180 дней (3 500 ГБ) уходят в холодный, копии старше 180 дней (5 000 ГБ) — в архив.
- Проверить размер объектов. Копии упакованы в архивы по 1–5 ГБ, поэтому ограничения на минимальный размер и плата за операции перехода роли не играют: объектов несколько тысяч.
- Рассчитать стоимость обоих вариантов за год с учётом извлечения и трафика.
- Настроить правила жизненного цикла для префикса backups/: переход в холодный класс на 30-й день, в архив — на 180-й, удаление на 1 825-й день, то есть через пять лет. Добавить удаление незавершённых многочастных загрузок через 7 дней.
- Отправить тестовый запрос на восстановление одного архивного объекта со стандартной скоростью, замерить фактическое время и внести его в регламент восстановления.
Годовые расходы в двух вариантах выглядят так. Тестовые восстановления в многоуровневой схеме идут из холодного класса, запросы аудитора — из архива.
| Статья расходов за год | Всё в горячем классе | Многоуровневая схема |
|---|---|---|
| Хранение в горячем классе | 240 000 ₽ | 36 000 ₽ |
| Хранение в холодном классе | — | 42 000 ₽ |
| Хранение в архиве | — | 18 000 ₽ |
| Извлечение (800 ГБ из холодного, 100 ГБ из архива) | 0 ₽ | 1 050 ₽ |
| Исходящий трафик (900 ГБ) | 1 350 ₽ | 1 350 ₽ |
| Итого | 241 350 ₽ | 98 400 ₽ |
Экономия составляет около 59%. Расчёт упрощён: он предполагает, что объём стабилен и новые копии поступают с той же скоростью, с какой старые удаляются. Плата за операции и метаданные архивных объектов здесь измеряется сотнями рублей в год и в таблицу не включена.
Стоит отдельно посчитать худший сценарий. Если понадобится восстановить все 5 000 ГБ из архива и выгрузить их в офис, извлечение обойдётся в 12 500 ₽, трафик — в 7 500 ₽. Итого 20 000 ₽ разово, что всё равно меньше разницы между вариантами. Главный риск здесь не цена, а время: стандартное восстановление займёт часы. Поэтому последние 30 дней копий остаются в горячем классе.
Краевые случаи и типичные ошибки
Миллионы мелких файлов
Миллион файлов по 16 КБ занимает около 16 ГБ. В холодном классе каждый из них тарифицируется как 128 КБ, и оплачиваемый объём вырастает до 128 ГБ. По условным тарифам из примера хранение в горячем классе стоит 32 ₽ в месяц, в холодном — 128 ₽. К этому добавляется плата за миллион операций перехода. Мелкие файлы перед переносом упаковывают в tar- или zip-архивы по нескольку сотен мегабайт либо оставляют в горячем классе.
Данные, которые скоро удалят
Файл, который проживёт 10 дней, в холодном классе оплачивается за 30 дней. При тарифах из примера это 1,0 ₽ за гигабайт против 0,67 ₽ в горячем классе за фактические 10 дней. Правило перехода с порогом в 30 дней и правило удаления на 40-й день дадут тот же эффект: объект оплатится за 30 дней холодного хранения при фактических десяти.
Версионирование без правил для старых версий
При включённом версионировании перезапись файла не удаляет предыдущую версию. Старые версии остаются в своём классе и оплачиваются. Бакет с часто обновляемыми файлами за год может вырасти в несколько раз без видимых изменений в списке объектов. Для неактуальных версий настраивают отдельный переход в холодный класс и удаление через заданный срок.
Скрытые чтения
Извлечение оплачивается за любое чтение, а не только за то, которое инициировал человек. Антивирус, сканирующий подключённое хранилище, программа резервного копирования с полной проверкой целостности, поисковый индексатор, утилита синхронизации со сверкой контрольных сумм через скачивание — всё это читает данные целиком. Перед переводом бакета в холодный класс проверяют журналы доступа на регулярные массовые чтения от служебных учётных записей.
Досрочный возврат из архива
Если данные отправили в архив, а через месяц выяснилось, что они нужны постоянно, возврат обойдётся в три платежа: восстановление, копирование в горячий класс и плата за досрочное удаление из архива до истечения 90 или 180 дней. Архивные правила разумно вводить после наблюдения, а не одновременно с запуском проекта.
FAQs
Чем холодное хранилище отличается от архивного?
Холодный класс отдаёт данные сразу, за миллисекунды, как горячий, но берёт плату за извлечение и требует хранить объект не меньше 30 дней. Архивный объект сначала нужно восстановить, что занимает от минут до нескольких часов, а минимальный срок хранения составляет 90–180 дней. Архив дешевле по хранению примерно в два–четыре раза.
Можно ли вернуть данные из холодного класса в горячий?
Можно. Объект копируется поверх самого себя с указанием горячего класса, ключ и содержимое не меняются. Оплачивается извлечение и операция копирования. Если объект пролежал в холодном классе меньше минимального срока, дополнительно взимается плата за оставшиеся дни.
Становятся ли данные менее надёжными в холодном классе?
Нет, если это не однозонный вариант. Стандартные холодные и архивные классы хранят данные с той же избыточностью, что и горячий. Ниже может быть только гарантированная доступность по SLA. Однозонные классы держат данные в одном центре обработки данных и подходят только для копий, которые можно воссоздать.
Что выбрать для резервных копий: холодный класс или архив?
Копии, которые могут понадобиться для срочного восстановления, держат в горячем или холодном классе. Обычно это копии за последние 30–90 дней. Более старые копии, нужные для проверок или на случай обнаружения давней ошибки в данных, отправляют в архив. Многоуровневая схема с правилами жизненного цикла почти всегда дешевле, чем любой единственный класс.
Влияет ли класс хранения на стоимость исходящего трафика?
Нет. Тариф на исходящий трафик одинаков для всех классов. Класс влияет на плату за извлечение, которая начисляется дополнительно к трафику при чтении из холодного и архивного классов. При чтении внутри региона трафик обычно бесплатен, а извлечение оплачивается.
Заключение
Класс хранения выбирается по трём параметрам: как часто читаются данные, сколько они проживут и какого размера объекты. Горячий класс подходит для активных, короткоживущих и мелких данных, а также для источников CDN. Холодный — для данных, которые читаются реже раза в месяц, хранятся дольше 30 дней и состоят из объектов крупнее 128 КБ. Архив — для данных на долгом хранении, при чтении которых допустимо ждать часы.
Решение принимается на основе журналов доступа за один-два месяца, а закрепляется правилами жизненного цикла по префиксам и тегам. Перед переводом стоит посчитать полную стоимость с учётом извлечения, трафика, операций и минимальных сроков, а также проверить худший сценарий восстановления. При таком подходе расходы на хранение редко используемых данных сокращаются вдвое и больше без потери доступа к ним.