Управляемое S3-совместимое хранилище подходит для файлов приложений, медиаконтента, архивов, аналитических наборов и резервных копий. Это руководство помогает выбрать сервис по рабочему сценарию, рассчитать полную стоимость и проверить совместимость до переноса данных.

📌
Актуальность: сведения о Selectel, Yandex Object Storage и Timeweb Cloud сверены по приложенным официальным страницам 12 сентября 2026 года. Материал основан на документации и не подтверждён практическим запуском. Регистрацию, оплату, договорные условия и доступность из нужных сетей проверяйте на тестовом аккаунте.

Содержание

  1. Критерии выбора хранилища
  2. Что означает совместимость с S3
  3. Сравнение подтверждённых российских вариантов
  4. Полезные сценарии
  5. Расчёт полной стоимости
  6. Юридические и операционные ограничения
  7. Базовая проверка через AWS CLI
  8. Расширенная проверка совместимости
  9. Защита данных и выход из сервиса
  10. Финальный чеклист

Критерии выбора хранилища

Выбирайте кандидатов по задаче и месту расположения основной инфраструктуры:

  • для сайта или приложения оцените задержку, стоимость исходящего трафика, методы API и интеграцию с вычислительными сервисами;
  • для резервных копий сравните холодные классы, стоимость чтения, минимальный срок хранения и цену полной выгрузки;
  • для регулируемых данных проверьте размещение, шифрование, управление доступом, журналирование и договорные документы;
  • для международной раздачи измерьте доступность endpoint и объектов из сетей реальных пользователей;
  • для переноса существующего приложения заранее составьте список используемых методов S3 API.
⚖️
Цена хранения одного гигабайта не показывает полную стоимость. Для медиаконтента значительную часть счёта может составить исходящий трафик, для архива — чтение и раннее удаление, для приложения — запросы и несовместимые методы API.

Что означает совместимость с S3

Amazon S3 — объектное хранилище и набор API, ставший отраслевым стандартом. Данные размещаются как объекты внутри бакетов. У каждого объекта есть ключ, содержимое и метаданные.

S3-совместимые сервисы можно подключать к AWS CLI, SDK и приложениям, которые позволяют задать собственный endpoint. Совместимость не гарантирует поддержку каждой функции Amazon S3. Отдельно проверяйте политики доступа, CORS, правила жизненного цикла (lifecycle), версионирование, неизменяемость объектов (Object Lock), события бакета и варианты многочастичной загрузки (multipart upload).

До сравнения зафиксируйте:

  • объём и средний размер объектов;
  • число операций записи и чтения в месяц;
  • объём выдачи в интернет;
  • срок хранения и частоту удаления;
  • обязательные методы API;
  • требования к региону и локализации данных;
  • целевые точки восстановления (RPO) и время восстановления (RTO) для резервных копий;
  • способ и допустимое время массовой выгрузки.

Сравнение подтверждённых российских вариантов

Свежие приложенные источники охватывают три сервиса. Таблица служит отправной точкой для тестирования, а не рейтингом.

СервисПодтверждённые возможностиЧто учитыватьЧто проверить
SelectelAmazon S3 API, IAM, автоматическое масштабирование, три копии объектов, стандартный, холодный и ледяной классы, выделенное S3 от 1 ПБУ ледяного и холодного классов хранение дешевле, а запросы и трафик дороже. Для ледяного класса заявлен Erasure Coding. Входящий трафик и трафик между S3 и другими продуктами Selectel, кроме CDN, не тарифицируются на стороне S3Доступный регион и пул, цену хранения, запросов и внешнего трафика, нужные методы API
Yandex Object StorageAmazon S3 API, репликация в нескольких зонах, шифрование, SLA 99,98%, классы Standard, Cold, Ice и Intelligent TieringНа момент проверки 12 сентября 2026 года на странице указаны 2,376 ₽/ГБ в месяц в Standard, 1,267 ₽/ГБ в месяц в Cold и 0,633 ₽/ГБ в месяц в Ice. Страница указывает, что цены включают НДС. Для Ice указан минимальный срок хранения один год. Операции тарифицируются отдельноКласс, lifecycle, стоимость операций и выдачи, роли сервисного аккаунта и статические ключи
Timeweb Cloud S3S3-совместимый API, веб-интерфейс, стандартный, холодный и премиальный классы, тройная репликация, SLA 99,98%Для S3 указана локация в Санкт-Петербурге. Бесплатный лимит исходящего трафика составляет 100 ГБ в месяц на аккаунт, для Prime — 1000 ГБ; превышение тарифицируется по 1,3 ₽/ГБ. На странице также описан автоматический переход на более высокий тариф при превышении объёма храненияПодходящий тариф, размер бакета, автоапгрейд, endpoint, подпись запросов и работу используемого клиента

Зарубежные варианты можно оценивать по той же методике, но текущий набор источников не подтверждает их тарифы, доступность регистрации, оплату и сетевую доступность. Эти параметры нельзя переносить из старого сравнения без свежей проверки официальных страниц.

Полезные сценарии

Файлы сайта или приложения

Исходное условие: приложение регулярно записывает объекты и часто отдаёт их пользователям. Разместите тестовый набор файлов, подключите приложение через отдельные ключи и измерьте задержку, скорость, число ошибок и стоимость выдачи.

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

Резервные копии и архив

Исходное условие: данные редко читаются, но должны восстанавливаться за заданное время. Сравните цену хранения с платой за операции, чтение и полную выгрузку. Для Yandex Ice учитывайте минимальный срок хранения один год.

Результат проверки: тестовая копия создаётся по расписанию, выбранная политика удаления применяется в заявленный срок, а полное восстановление укладывается в RTO. Хранилище не подходит как единственная копия критичных данных.

Датасеты и аналитика

Исходное условие: вычисления читают крупные наборы объектов из облачной инфраструктуры. Проверьте стоимость внутреннего трафика, параллельного чтения и операций со списками объектов. Selectel указывает, что трафик между S3 и другими продуктами Selectel, кроме CDN, не тарифицируется на стороне S3; применимость правила к вашей архитектуре нужно подтвердить расчётом.

Результат проверки: тестовая задача читает данные с приемлемой скоростью, результаты совпадают по контрольным суммам, а сетевые расходы понятны до промышленной загрузки.

Расчёт полной стоимости

Используйте одинаковый профиль нагрузки для всех кандидатов:

Стоимость месяца = хранение
                 + операции записи и чтения
                 + исходящий трафик
                 + извлечение из холодного класса
                 + раннее удаление
                 + старые версии объектов
                 + минимальный платёж или пакетный тариф

Пример профиля для предварительного расчёта:

  • среднее хранение: 2 ТБ;
  • выдача в интернет: 300 ГБ в месяц;
  • 500 000 операций записи;
  • 5 млн операций чтения;
  • 10% объектов обновляются или удаляются ежемесячно;
  • крупный файл для проверки многочастичной загрузки (multipart upload);
  • полное восстановление: один раз в год.
Строка расчётаЧто подставить
Хранение2 048 ГБ × цена выбранного класса
Операции500 000 операций записи и 5 млн операций чтения по правилам тарификации провайдера
Выдача300 ГБ минус применимая бесплатная квота
ИзвлечениеОбъём чтения из холодного класса × тариф извлечения
Раннее удалениеОбновляемый объём × плата за оставшийся минимальный срок
Аварийное восстановлениеСтоимость и ожидаемое время полной выгрузки 2 ТБ

Запишите две суммы: обычный месяц и месяц полного восстановления. Для резервной копии второй расчёт часто важнее стоимости спокойного хранения.

Юридические и операционные ограничения

Указание на соответствие 152-ФЗ или отраслевым стандартам на странице продукта не заменяет проверку конкретной архитектуры и договора. Для регулируемых данных определите:

  • кто является оператором данных;
  • где выполняются первичная запись и хранение;
  • допустима ли трансграничная передача;
  • какие данные шифруются до отправки;
  • кто имеет доступ к ключам расшифровки;
  • распространяются ли требования на резервные копии и журналы;
  • какие документы и уровни защиты относятся к выбранной конфигурации.
⚠️
Это технический чеклист, а не юридическое заключение. Архитектуру для персональных, медицинских, финансовых и других регулируемых данных проверяйте с профильным специалистом.

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

Базовая проверка через AWS CLI

Проверка охватывает PutObject, HeadObject, GetObject, подписанную ссылку, целостность и удаление. Бакет создайте заранее. Используйте отдельный профиль и тестовые ключи с минимальными правами.

export AWS_PROFILE="s3-test"
export S3_ENDPOINT="https://s3.example-provider.ru"
export S3_REGION="provider-region"
export S3_BUCKET="s3-compatibility-test"

aws configure --profile "$AWS_PROFILE"

В aws configure укажите тестовые Access Key ID и Secret Access Key, затем регион из документации провайдера. Если сервис требует path-style addressing, включайте его только по официальной инструкции выбранного endpoint.

Создайте и загрузите файл:

printf "s3 compatibility test\n" > healthcheck.txt

aws s3api put-object \
  --profile "$AWS_PROFILE" \
  --region "$S3_REGION" \
  --endpoint-url "$S3_ENDPOINT" \
  --bucket "$S3_BUCKET" \
  --key "checks/healthcheck.txt" \
  --body "./healthcheck.txt"

Проверьте метаданные и скачайте объект:

aws s3api head-object \
  --profile "$AWS_PROFILE" \
  --region "$S3_REGION" \
  --endpoint-url "$S3_ENDPOINT" \
  --bucket "$S3_BUCKET" \
  --key "checks/healthcheck.txt"

aws s3api get-object \
  --profile "$AWS_PROFILE" \
  --region "$S3_REGION" \
  --endpoint-url "$S3_ENDPOINT" \
  --bucket "$S3_BUCKET" \
  --key "checks/healthcheck.txt" \
  downloaded-healthcheck.txt

cmp healthcheck.txt downloaded-healthcheck.txt && echo "download OK"

Создайте подписанную ссылку и проверьте её из другой сети:

S3_URL="$(aws s3 presign \
  "s3://$S3_BUCKET/checks/healthcheck.txt" \
  --profile "$AWS_PROFILE" \
  --region "$S3_REGION" \
  --endpoint-url "$S3_ENDPOINT" \
  --expires-in 300)"

curl -fL "$S3_URL" -o presigned-healthcheck.txt
cmp healthcheck.txt presigned-healthcheck.txt && echo "presigned URL OK"

Удалите тестовый объект:

aws s3api delete-object \
  --profile "$AWS_PROFILE" \
  --region "$S3_REGION" \
  --endpoint-url "$S3_ENDPOINT" \
  --bucket "$S3_BUCKET" \
  --key "checks/healthcheck.txt"

rm -f healthcheck.txt downloaded-healthcheck.txt presigned-healthcheck.txt

Признак успеха: обе команды cmp завершаются без расхождений, подписанная ссылка открывается из нужной сети, а тестовый объект удаляется без ошибки. Команды в рамках подготовки этого материала не запускались.

Расширенная проверка совместимости

Базовая проверка не подтверждает полную совместимость. Проверяйте функции, которые использует ваш продукт.

ФункцияКак проверитьПризнак успеха
Многочастичная загрузка (multipart upload)Загрузить крупный файл с использованием multipart upload через библиотеку SDK или клиентЗагрузка возобновляется после обрыва, контрольная сумма совпадает
ВерсионированиеЗагрузить две версии одного ключа и восстановить первуюОбе версии доступны по идентификаторам
LifecycleСоздать правило на тестовом префиксеПравило принимается API и применяется в заявленный срок
CORSВыполнить браузерную загрузку с тестового доменаПредварительный и основной запросы проходят без ошибки
Object LockВключить на отдельном бакете с коротким сроком удержанияОбъект нельзя удалить до истечения срока
Range GETЗапросить диапазон байтов большого файлаВозвращается HTTP 206 и правильный фрагмент
Массовая выгрузкаСкопировать тестовый набор штатным клиентом или rcloneСовпадают число объектов, размеры и контрольные суммы
Сетевая доступностьПовторить чтение у нужных операторов и из серверного регионаЗадержка, скорость и доля ошибок укладываются в требования

Защита данных и выход из сервиса

Управляемое S3 не должно оставаться единственной резервной копией критичных данных. Используйте раздельные ключи, журналирование, версионирование и доступный у выбранного провайдера механизм неизменяемости. Независимую копию храните в другом контуре.

flowchart LR
    A["Рабочие данные"] --> B["Основное S3"]
    A --> C["Локальная или NAS-копия"]
    B --> D["Независимое S3 другого провайдера"]
    C --> E["Регулярный тест восстановления"]
    D --> E

До запуска зафиксируйте план выхода:

  1. Каким инструментом выгружается весь бакет.
  2. Сколько стоит полный исходящий трафик.
  3. Сколько времени займёт перенос.
  4. Как сверяются число объектов, размеры и контрольные суммы.
  5. Как отзываются ключи после миграции.
  6. Как удаляются данные и подтверждается удаление.

Второй бакет в том же аккаунте не защищает от блокировки аккаунта, ошибки администратора или компрометации главного ключа.

Финальный чеклист

Сценарий, объём и профиль операций определены
Посчитаны обычный месяц и полное восстановление
Проверены операции, исходящий трафик, извлечение и минимальный срок
Регистрация, оплата и документы проверены на тестовом аккаунте
Юридические требования разобраны для конкретных данных
Нужные методы API подтверждены документацией и тестом
Базовая проверка прошла с явным регионом и endpoint
Multipart, CORS, lifecycle, версионирование и Object Lock проверены, если нужны
Измерена доступность из сетей реальных пользователей
Созданы отдельные ключи с минимальными правами
Есть независимая резервная копия
Зафиксирован план массовой выгрузки
Проведено тестовое восстановление

Следующий шаг

Правило 3-2-1: рабочая схема резервного копирования

Если вы выбираете хранилище для рабочего проекта, начните с расчёта полного восстановления и короткого теста на реальной нагрузке. Это помогает заранее обнаружить дорогой трафик, несовместимые методы API и недостижимое время восстановления.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov