ZIM-НИЙ SAAALEЗимние скидки: до −50% на старт и −20% на продление
до 31.01.2026 Подробнее
Выберите продукт

s5cmd vs awscli vs rclone for S3: sync, multipart, ETag and LIST costs

Практично сравниваем s5cmd, awscli и rclone при работе с S3-совместимыми хранилищами: скорость на массивах мелких файлов, поведение sync, multipart upload и «хвосты», ETag vs checksum и почему LIST/HEAD могут незаметно разогреть счёт.
s5cmd vs awscli vs rclone for S3: sync, multipart, ETag and LIST costs

Если вы регулярно гоняете бэкапы, статику, медиа или артефакты CI/CD в S3-совместимое объектное хранилище, то выбор CLI-инструмента быстро перестаёт быть «делом вкуса». На практике всплывают нюансы: что именно делает «sync», сколько запросов уходит на «безобидный» просмотр префикса, как ведёт себя multipart upload и почему ETag иногда вообще не про md5.

Ниже — практическое сравнение трёх утилит: s5cmd, awscli и rclone. Сфокусируемся на том, что важно админам/DevOps: параллелизм и скорость, корректность синхронизации, проверка целостности, а также стоимость операций LIST/HEAD и способы держать её под контролем.

Когда важны не мегабайты, а запросы: S3 как биллингуемая API

В объектном хранилище цена обычно складывается из хранения, исходящего трафика и операций API. Именно операции становятся «тихим убийцей бюджета» в двух типовых случаях:

  • у вас сотни тысяч или миллионы объектов в одном префиксе;
  • вы запускаете частые синхронизации, которые каждый раз «прочёсывают» бакет.

Команда «посмотреть, что лежит в префиксе» почти всегда означает вызов ListObjectsV2. А «умный sync» обычно делает не один LIST, а постраничный обход, иногда с дополнительными HeadObject для уточнения метаданных и проверок.

Скорость передачи данных — не единственный критерий. Для больших бакетов решают количество запросов и то, умеет ли инструмент сокращать их без потери корректности.

Кандидаты: s5cmd, awscli, rclone — что ждать в реальности

s5cmd

s5cmd — компактная утилита, заточенная под высокую параллельность и быстрые массовые операции в S3. Чаще всего её берут, когда нужно «прокачать через S3» очень много объектов и важна максимальная производительность на малых файлах.

  • Сильные стороны: высокая скорость, агрессивный параллелизм, минимальные накладные расходы.
  • Ограничения: меньше «экосистемных» возможностей, чем у awscli; не всегда удобно, если вы завязаны на специфичные AWS-опции и сценарии.

awscli

awscli — официальный клиент AWS. Его часто используют и с S3-совместимыми сервисами (через endpoint), особенно когда вокруг уже есть профили, политики доступа и «единый тулчейн» под AWS.

  • Сильные стороны: предсказуемость поведения, документация, совместимость.
  • Ограничения: на массовых операциях с большим количеством мелких объектов может уступать по скорости; «sync» на огромных наборах нередко получается дорогим по числу LIST/HEAD.

rclone (S3 backend)

rclone — универсальный инструмент для десятков облаков и протоколов. Для S3 это полноценный клиент со своими стратегиями сравнения, синхронизации и верификации.

  • Сильные стороны: гибкие правила sync/copy, фильтры, dry-run, режимы проверки, удобство миграций между провайдерами.
  • Ограничения: из-за гибкости легко «переусложнить» параметры и случайно увеличить число LIST/HEAD (а значит и расходы).

Если вы выбираете инфраструктуру под задачи, где важна предсказуемая производительность и ресурсы, часто удобнее иметь отдельную виртуалку под бэкапы/синхронизации. Под такие задачи обычно берут VDS, чтобы изолировать I/O и не мешать веб-приложению.

Тестирование скорости S3 CLI: параллельные загрузки и множество мелких объектов

Скорость и параллелизм: что упирается в latency, а не в канал

В сценариях «много объектов, каждый маленький» узкое место — не пропускная способность, а задержки и количество параллельных запросов. Поэтому:

  • s5cmd обычно выигрывает за счёт агрессивного параллелизма и простого пайплайна операций;
  • awscli часто более «тяжёлый» и может проигрывать на миллионах ключей из-за накладных расходов и стратегии обхода;
  • rclone показывает отличные цифры при правильной настройке потоков и режима сравнения, но нужно контролировать, какой именно режим вы включили (и сколько дополнительных запросов он провоцирует).

Быстрый ориентир выбора

  • Нужно «залить/скачать максимум прямо сейчас» на массивах мелких файлов — чаще s5cmd.
  • Нужно «как в AWS и как у всех в команде» — чаще awscli.
  • Нужно переносить данные между разными облаками и применять сложные правила — чаще rclone.

Sync без сюрпризов: как инструменты решают «файл изменился или нет»

Любой режим «sync» упирается в ключевой вопрос: как понять, нужно ли перекачивать объект? На практике используются три базовых подхода:

  • сравнение по размеру и времени модификации (быстро, но требует аккуратности с метаданными и временными зонами);
  • сравнение по ETag (удобно, но ETag не всегда равен md5);
  • сравнение по отдельному checksum (надёжно, но дороже по CPU и/или по числу операций).

На маленьких каталогах разница не видна. На десятках миллионов ключей это становится вопросом денег и времени: чем «умнее» проверка, тем чаще инструмент делает LIST и/или HEAD.

Опасный паттерн: частый sync по огромному префиксу

Типичный сценарий: вы складываете бэкапы «в одну папку», а потом запускаете sync/проверку каждый час. В итоге каждый запуск проходит по всей истории: сотни тысяч или миллионы ключей, постраничный LIST, плюс выборочные HEAD. Стоимость операций иногда начинает обгонять стоимость хранения.

Чтобы контролировать расходы, сначала оптимизируйте стратегию обхода: дробите префиксы по датам/проектам, синхронизируйте только «свежие» ветки и по возможности работайте от манифестов, а не от полного сканирования бакета.

Если вы используете rclone для синхронизаций и хотите аккуратно подойти к безопасности удаления/перезаписи, полезно свериться с практикой в статье про безопасную синхронизацию rclone bisync для медиа и S3.

FastFox VDS
Облачный VDS-сервер в России
Аренда виртуальных серверов с моментальным развертыванием инфраструктуры от 195₽ / мес

Multipart upload: пороги, скорость и уборка незавершённых загрузок

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

Эксплуатационный нюанс — незавершённые multipart-загрузки. Они остаются после падения процесса, таймаутов или сетевых ошибок. В зависимости от реализации S3 такие «хвосты» могут занимать место и усложнять учёт.

Практика для продакшена:

  • включить lifecycle-правило очистки незавершённых multipart uploads (если поддерживается сервисом);
  • держать под контролем размер частей и параллелизм, чтобы не упираться в лимиты API и не создавать лишнюю нагрузку;
  • понимать, как инструмент ретраит и как именно завершает/абортит сессии при ошибках.

Мини-набор команд для контроля multipart (AWS API)

Даже если вы пользуетесь не awscli, понимание этих операций полезно для диагностики «хвостов»:

aws s3api list-multipart-uploads --bucket BUCKET --prefix PREFIX/
aws s3api abort-multipart-upload --bucket BUCKET --key OBJECT_KEY --upload-id UPLOAD_ID

Обратите внимание: массовое перечисление незавершённых загрузок тоже может упираться в LIST-подобные операции. Делайте это точечно (по префиксу) и по регламенту, а не каждые 5 минут.

ETag и checksum: почему ETag не всегда md5 и как проверять целостность

Частая ловушка — воспринимать ETag как «контрольную сумму файла». Для обычной (не multipart) загрузки в классическом S3 ETag часто совпадает с md5 содержимого. Но при multipart, серверном шифровании или особенностях совместимого сервиса ETag перестаёт быть простым md5.

Практические последствия:

  • сравнение «локальный md5 == ETag» может давать ложные несовпадения;
  • sync-логика, основанная на ETag, иногда принимает неверные решения (зависит от инструмента и режима);
  • для строгой верификации нужно опираться на дополнительные механизмы, а не только на ETag.

Надёжные подходы

  • Манифест с хэшами: хранить рядом файл со списком sha256 и сверять на стороне назначения.
  • Режимы verify/check: включать осознанно и помнить, что это увеличит CPU и/или число HEAD/GET.
  • Единые пороги multipart: если бизнес-логика завязана на сравнение, заранее определите, с какого размера включается multipart, и зафиксируйте настройки в пайплайне.

Если у вас доступ к S3 критичен и вы раздаёте данные через CDN/прокси/хранилище с кастомным доменом, часто логичным шагом становится выпуск сертификата на домен. Для этого пригодятся SSL-сертификаты, чтобы клиенты не ругались на TLS и можно было безопасно работать с приватными/публичными endpoint.

FastFox SSL
Надежные SSL-сертификаты
Мы предлагаем широкий спектр SSL-сертификатов от GlobalSign по самым низким ценам. Поможем с покупкой и установкой SSL бесплатно!

LIST и стоимость обхода: как не платить за «просто посмотреть»

LIST выглядит безобидно: «покажи, что в бакете». Но при миллионах объектов один полный обход превращается в тысячи страниц выдачи, то есть в тысячи запросов. А если инструмент во время sync делает несколько проходов или добавляет HEAD на объекты, стоимость растёт ещё быстрее.

Способы держать расходы под контролем:

  • Структурируйте ключи: префиксы по датам/проектам/тенантам, чтобы операции затрагивали только нужный сегмент.
  • Избегайте частых полных sync: синхронизируйте только свежие ветки (например, 2025/12/28/), а не весь архив.
  • Используйте манифесты и инкрементальность: проверяйте дельту, а не перечитывайте всё дерево.
  • Осторожнее с удалениями: режимы sync с удалением на стороне назначения часто требуют «полного знания множества ключей», то есть большего числа LIST.

На больших бакетах «дешёвый» инструмент — это не тот, кто быстрее скачал 10 ГБ, а тот, кто сделал на порядок меньше LIST/HEAD в ежедневной рутине.

Схема префиксов S3 и постраничного LIST, влияющих на стоимость операций

Рекомендации по выбору под типовые сценарии

1) Артефакты CI/CD и статика

Если вы выгружаете много файлов (особенно мелких) и хотите максимальную скорость, чаще всего удобен s5cmd. Главное — заранее продумать схему префиксов, чтобы последующие проверки и синхронизации не превращались в постоянный «полный LIST».

2) Бэкапы и регламентные операции

Когда важнее предсказуемость и соответствие «как в AWS», обычно выбирают awscli. Он хорошо ложится в процессы, где уже есть профили/роли и стандартные процедуры доступа.

3) Миграции и сложные правила синхронизации

Для переносов между разными хранилищами, фильтров, dry-run, выборочной сверки и понятных логов часто удобнее rclone. Если вы упираетесь в производительность rclone на S3, посмотрите практические приёмы в статье про настройку rclone для multipart и параллелизма в S3.

Мини-чеклист перед запуском sync на проде

  1. Оцените масштаб: сколько объектов и каков средний размер?
  2. Выберите правило сравнения: размер/время, ETag или отдельный checksum.
  3. Продумайте структуру префиксов: чтобы не обходить исторические данные каждый запуск.
  4. Проверьте multipart: пороги, потоки, cleanup незавершённых загрузок.
  5. Сделайте тестовый прогон: на небольшом префиксе и с фиксацией статистики времени и количества запросов (если сервис это показывает).

Итоги

s5cmd, awscli и rclone решают похожие задачи, но по-разному расставляют приоритеты. В «чистой скорости» и массовых копированиях часто выигрывает s5cmd. В стандартизации и предсказуемости — awscli. В универсальности, миграциях и гибких сценариях sync — rclone.

А главный практический критерий для больших хранилищ — не только мегабайты в секунду, но и то, сколько вы платите за операции API, особенно за LIST/HEAD. Оптимизируйте префиксы, избегайте полных обходов без необходимости и относитесь к ETag аккуратно: при multipart upload это не всегда md5.

Поделиться статьей

Вам будет интересно

BGP communities и RTBH: blackhole-маршрутизация для DDoS mitigation у апстрима OpenAI Статья написана AI (GPT 5)

BGP communities и RTBH: blackhole-маршрутизация для DDoS mitigation у апстрима

RTBH (remote triggered black hole) — «красная кнопка» против объёмных DDoS: вы анонсируете /32 или /128 с нужной BGP community, и ...
OpenBao vs HashiCorp Vault в 2025: CI/CD, raft и операционные затраты OpenAI Статья написана AI (GPT 5)

OpenBao vs HashiCorp Vault в 2025: CI/CD, raft и операционные затраты

Практичный разбор OpenBao и HashiCorp Vault глазами DevOps: что важно для CI/CD secrets, как выбирать между AppRole и Kubernetes a ...
Object Storage: rclone vs s3cmd vs aws-cli — сравнение для админов OpenAI Статья написана AI (GPT 5)

Object Storage: rclone vs s3cmd vs aws-cli — сравнение для админов

Разбираем rclone, s3cmd и aws-cli как клиенты для S3/Object Storage: производительность на мелких и больших файлах, multipart и уб ...