Что такое объектное хранилище
Объем данных в бизнесе растет: видеоархивы, бэкапы, логи приложений, датасеты для машинного обучения, медиаконтент, статические файлы сайтов. Обычные файловые серверы и блочные диски все хуже справляются с такими объемами. Поэтому компании ищут альтернативы. Разберемся, что такое S3 и объектное хранилище.
Простое определение объектного хранилища
Объектное хранилище – это способ хранения, при котором каждая единица данных представлена в виде объекта с собственным уникальным ключом и набором метаданных. В объектном хранилище используется плоское пространство имен внутри логических контейнеров, так называемых бакетов. Управление сущностями (создание, чтение, изменение, удаление бакетов) происходит по HTTP/HTTPS через REST API.
Принцип работы объектного хранилища
Когда приложение загружает файл, система объектного хранения формирует объект, состоящий из самих данных, уникального идентификатора (ключа) и метаданных. Он распределяется между несколькими узлами кластера, что обеспечивает отказоустойчивость и горизонтальное масштабирование. Чтобы получить данные обратно, приложению нужно обратиться по ключу объекта через S3 API. В упрощенном виде путь данных в объектном хранилище выглядит так:
- приложение отправляет PUT-запрос с файлом и метаданными в указанный bucket;
- хранилище генерирует или принимает object key и сохраняет данные на нескольких узлах;
- при чтении приложение делает GET-запрос по ключу и получает объект целиком;
- метаданные позволяют дополнительно автоматизировать обработку – например, задать срок хранения или класс доступа.
Разработчикам не нужно проектировать физическое расположение данных. Операции сводятся к понятным HTTP-вызовам, а масштабирование происходит за счет добавления новых узлов в кластер.
Для каких данных подходит объектное хранение
Объектное хранилище подходит для больших объемов неструктурированных данных, к которым обращаются операциями «записать целиком» и «прочитать целиком». Оно не заменяет базу данных и не подходит для всех сценариев. Среди основных вариантов использования:
- резервные копии серверов, виртуальных машин и баз данных;
- медиаконтент (фото, аудио, видео, превью, исходники для обработки);
- долгосрочное архивное хранение документов и логов;
- статический контент сайта (стили, шрифты, картинки, скрипты);
- датасеты для аналитики и обучения моделей машинного обучения;
- результаты работы CI/CD (артефакты сборки, образы, дистрибутивы).
Выбирая S3, учитывайте, что для транзакционных нагрузок лучше подходят блочные и файловые хранилища, а объектные системы оптимизированы под добавление и чтение целых объектов.

Что такое S3 и почему этот стандарт используют облачные хранилища
S3 (Simple Storage Service) – это стандарт объектного хранения от Amazon Web Services. Его API является отраслевым стандартом для работы с объектными хранилищами. Это не только продукт AWS, но и способ взаимодействия с облачным хранилищем через определенный набор HTTP-вызовов.
Что значит S3-совместимое хранилище
S3-совместимое хранилище – это объектное хранилище, которое реализует тот же набор операций и тех же правил аутентификации, что и оригинальный сервис AWS. Одно и то же приложение может работать с разными провайдерами без переписывания кода. Достаточно поменять endpoint, access key и secret key. Так устроен, например, PC-Storage от PlatformCraft. Это S3-совместимое объектное хранилище, в которое можно складывать резервные копии, медиаконтент, архивы, логи и датасеты.
Где используют S3-хранилища
Многие популярные инструменты, библиотеки и SaaS-сервисы по умолчанию умеют работать с S3 API. S3-хранилища используют для:
- хранения бэкапов от Veeam, КиберБэкап, Bacula, Duplicati и других backup-систем;
- размещения статических файлов сайтов и SPA-приложений;
- доставки медиаконтента в связке с CDN;
- архивов логов и журналов аудита;
- хранения датасетов и моделей в проектах машинного обучения;
- работы с артефактами в CI/CD-системах вроде GitLab CI или Jenkins.
Совместимость с S3 API – ключевое требования при выборе объектного хранилища, а сам стандарт нашел применение в разных проектах.
Что такое S3 API и как он работает
S3 API – это набор HTTP-методов и правил, по которым приложения общаются с объектным хранилищем. По сути, это REST API. Клиент отправляет HTTP-запрос с подписанными заголовками, а сервер возвращает результат в виде статуса и тела ответа. Для работы достаточно HTTP API и SDK.
Какие операции выполняют через S3 API
Базовый набор операций S3 API покрывает все типичные задачи работы с объектами и контейнерами. Среди наиболее распространенных операций:
- PUT Object – загрузить объект в bucket;
- GET Object – получить объект по ключу;
- DELETE Object – удалить объект;
- LIST Objects – получить список объектов в бакете;
- HEAD Object – получить только метаданные без самого тела;
- Multipart Upload – загрузка крупных файлов по частям;
- Presigned URL – временные ссылки для доступа к объекту без раскрытия ключей.
Все операции описаны в документации S3. Они реализуются S3-совместимыми сервисами в одинаковом виде.
Почему совместимость с S3 API важна для бизнеса и разработчиков
Если хранилище совместимо с S3, команда может использовать готовые SDK для Python, Go, Java, Node.js и других языков, а также десятки готовых утилит вроде aws-cli, rclone, s3cmd, MinIO Client. Такой подход снижает стоимость интеграции и делает миграцию между разными провайдерами технически возможной, что экономически выгодно для бизнеса.
Что такое объект, bucket, ключ и метаданные в S3
Теперь разберемся, что такое bucket в S3.
Бакет – контейнер, в котором размещаются объекты. У каждого объекта есть уникальный ключ и набор метаданных. Такая плоская структура упрощает взаимодействие неструктурированных данных.
Как данные превращаются в объекты
Объект в S3 – это связка из трех элементов: данных (например, содержимое видеофайла), ключа (строка-идентификатор) и метаданных (системных и пользовательских). Объект сохраняется целиком и не предназначен для частичной перезаписи. Если содержимое нужно изменить, фактически создается новая версия объекта.
Принцип работы бакета
S3 bucket – это логический контейнер, внутри которого хранятся объекты. У каждого бакета есть уникальное имя в рамках сервиса, политика доступа и набор настроек. Хотя в интерфейсах часто отображается «псевдодерево» с папками, на самом деле эти папки – это просто префиксы в ключах объектов.
Для чего нужны метаданные в объектном хранении
Метаданные в объектном хранении – это дополнительные сведения об объекте, которые хранятся вместе с ним. Они делятся на системные (размер, дата загрузки, ETag, тип контента) и пользовательские (произвольные пары ключ-значение). С их помощью можно автоматизировать работу с данными.
Как приложение получает доступ к объектам
Доступ к объектам происходит по уникальному адресу вида https://endpoint/bucket/key. Запрос подписывается с помощью access key и secret key. Аутентификация по подписи позволяет проверить подлинность запроса без передачи самого секретного ключа по сети. Для временного публичного доступа можно использовать presigned URL – ссылку с ограниченным сроком действия.
Какие настройки обычно применяют к bucket
На уровне бакета удобно задавать общие правила, которые автоматически применяются ко всем объектам внутри. Среди распространенных настроек:
- bucket policy – правила доступа на уровне контейнера;
- versioning – хранение нескольких версий одного объекта;
- lifecycle policy – автоматическое перемещение или удаление объектов по расписанию;
- Object Lock – защита объектов от удаления и изменения;
- настройки шифрования объектов «на лету»;
- параметры репликации между регионами или площадками.
Настройки задаются один раз. Они работают для всех новых объектов, что упрощает управление большими объемами данных.
Как устроены права доступа в S3-хранилище
Права доступа в S3 – ответственная тема. Ошибки в настройке приводят к утечкам данных. В S3-модели разграничение прав строится на двух основных механизмах: bucket policy и IAM. И IAM и bucket policy в S3 управляют доступом к объектам, но работают на разных уровнях.
Как работает bucket policy
Bucket policy – это JSON-документ, описывающий, кто и какие действия может выполнять с объектами в конкретном бакете. В нем можно указать конкретных пользователей, IP-адреса, разрешенные операции и условия. Это удобно, когда нужно открыть, например, публичный доступ только на чтение к статическим файлам сайта.
Как работает IAM
IAM (Identity and Access Management) – это система управления учетными записями и их правами на стороне провайдера хранилища. С ее помощью создаются пользователи и сервисные учетки, выдаются ключи доступа и настраиваются роли. Правильная организация IAM позволяет соблюдать принцип минимальных привилегий.
Она привязана к пользователю, роли или группе и отвечает на вопрос:
Что этот субъект может делать с какими S3-ресурсами?
То есть IAM policy → «что может этот пользователь/роль», а Bucket policy → «кто и как может использовать этот bucket».
Что такое версионирование данных и зачем оно нужно
Версирование – это режим бакета, при котором каждое изменение или удаление объекта не затирает старую версию, а создает новую. Прежние версии остаются доступными по специальному идентификатору, и при необходимости их можно восстановить. Это используется для защиты от удаления, ошибок в скриптах или действий шифровальщиков.
Что такое lifecycle policy в S3
Lifecycle policy – это набор правил автоматического управления жизненным циклом объектов. С их помощью можно, например, автоматически удалять логи старше 30 дней, переносить редко используемые объекты в более дешевый класс хранения или удалять старые версии при включенном версионировании.
Что такое неизменяемое хранилище, WORM-подход и Object Lock
Неизменяемое хранилище – это режим, при котором сохраненный объект нельзя изменить или удалить в течение заданного срока. В основе лежит подход WORM (Write Once, Read Many) – «записал один раз, читаешь много раз». Он реализуется через механизм Object Lock.
Как неизменяемость помогает защищать резервные копии
Шифровальщики и атаки на инфраструктуру часто пытаются уничтожить именно бэкапы, чтобы лишить компанию возможности восстановиться. Неизменяемое хранилище решает эту проблему: даже скомпрометированная учетная запись с правами администратора не сможет удалить «залоченные» объекты до истечения срока блокировки.
Где используют WORM-подход и Object Lock
WORM-подход и Object Lock применяют в системах с высокими требованиями к сохранности данных. Среди основных направлений:
- защищенные бэкапы серверов, БД и виртуальных инфраструктур;
- архивы финансовых, медицинских и юридических документов;
- журналы аудита и логи безопасности;
- данные, на которые распространяются требования регуляторов;
- мастер-копии медиаконтента и оригиналы видеоархивов.
Неизменяемое хранилище не гарантирует абсолютную сохранность данных. Оно снижает риск их потери из-за удаления или изменения.
Что такое георепликация и как она работает
Георепликация – это механизм, при котором копии объектов автоматически распространяются между несколькими географически удаленными площадками. Репликация данных происходит непрерывно и фактически в фоновом режиме. Для бизнеса это возможность повысить устойчивость сервиса и сократить возможное время простоя. Именно поэтому георепликация используется в медиапроектах, e-commerce и SaaS-сервисах с высокими требованиями к доступности.
Что такое erasure coding
Erasure coding (стирающее кодирование) – это способ хранения данных, при котором объект разбивается на N блоков данных и M блоков избыточности, рассчитанных по специальным алгоритмам. Эти блоки распределяются между разными узлами кластера. Для восстановления исходного объекта достаточно любых N блоков из общего количества N+M. Например, схема 10+4 переживает отказ четырех узлов из четырнадцати, тратя на избыточность около 40% вместо 200% при тройной репликации. Подобный механизм актуален для крупных объектных хранилищ для архивов, медиаархивов и долгосрочного хранения.
Что такое распределенное хранилище
Распределенное объектное хранилище – это система, в которой данные хранятся не на одном сервере, а на множестве узлов, объединенных в кластер. Такая архитектура рассчитана на отказы оборудования и постоянный рост объема данных.
Как данные распределяются между узлами
Когда объект попадает в кластер, система решает, на каких именно узлах разместить его блоки и блоки избыточности. Распределение строится с учетом топологии. Таким образом, можно параллельно использовать сетевые и дисковые ресурсы множества узлов как при записи, так и при чтении, что нужно учитывать при выборе S3 или NAS.
Почему распределенная архитектура повышает отказоустойчивость
В распределенной системе отказ отдельного диска или сервера не приводит к недоступности данных. Оставшиеся узлы продолжают обслуживать запросы, а кластер сам инициирует восстановление недостающих блоков. Распределенная архитектура легко масштабируется горизонтально. Для увеличения емкости и производительности достаточно добавить в кластер новые узлы.

Когда бизнесу нужно объектное хранилище
Объектное хранилище – не универсальное решение. К его выбору нужно отнестись осознанно. Такой вариант хорошо подходит, если у вас:
- большой объем бэкапов, который растет каждый месяц;
- много медиаконтента, который нужно отдавать пользователям через CDN;
- архивы логов, документов или видео с длительным сроком хранения;
- статические сайты, SPA или мобильные приложения с большими ассетами;
- датасеты для аналитики и машинного обучения;
- требования к защите данных от удаления через WORM и Object Lock.
Если вам нужно S3-совместимое хранилище для резервных копий, архивов или медиаконтента, рассмотрите PC-Storage от PlatformCraft. Для хранения и доставки медиаконтента можно использовать связку PC-Storage, PC-Media и CDN.
FAQ – часто задаваемые вопросы
Что такое объектное хранилище простыми словами?
Объектное хранилище – это способ хранить данные не в папках и файлах, как на обычном файловом сервере, а в виде отдельных объектов. Каждый объект содержит сами данные, уникальный ключ и метаданные. Такой подход удобен для больших объемов неструктурированных данных: бэкапов, видео, фото, логов, архивов и датасетов.
Что такое S3?
S3 – это стандарт объектного хранения, изначально созданный Amazon Web Services. Сегодня S3 API стал отраслевым стандартом: многие облачные и локальные хранилища поддерживают те же операции, что и AWS S3. Благодаря этому приложения могут работать с разными S3-совместимыми хранилищами без серьезной переработки кода.
Чем S3 отличается от обычного файлового хранилища?
В файловом хранилище данные организованы в виде папок и файлов, как в привычной файловой системе. В S3 используется плоская структура: объекты лежат в bucket, а «папки» обычно являются только префиксами в ключах объектов. S3 лучше подходит для хранения больших объемов данных, которые записываются и читаются целиком.
Что такое bucket в S3?
Bucket – это логический контейнер для хранения объектов в S3. Внутри bucket находятся объекты с уникальными ключами и метаданными. На уровне bucket обычно настраивают политики доступа, версионирование, lifecycle rules, шифрование, Object Lock и репликацию.
Зачем объектам нужны метаданные?
Метаданные описывают объект и помогают управлять им автоматически. Они могут включать размер, дату загрузки, тип контента, ETag, а также пользовательские пары ключ-значение. С помощью метаданных можно задавать правила обработки, хранения, поиска, классификации и жизненного цикла данных.
Что выбрать: S3 или NAS?
S3 стоит выбирать для больших объемов неструктурированных данных: бэкапов, архивов, медиаконтента, логов, статических файлов и датасетов. NAS лучше подходит для сценариев, где приложениям нужна привычная файловая система, работа с директориями и частое изменение файлов. Если данные в основном записываются и читаются целиком, чаще подходит S3; если важна файловая семантика – NAS.
Чем объектное хранилище отличается от блочного?
Блочное хранилище предоставляет приложению низкоуровневые блоки данных, из которых строятся диски и файловые системы. Оно хорошо подходит для баз данных, виртуальных машин и транзакционных нагрузок. Объектное хранилище работает с объектами целиком через API и лучше подходит для масштабируемого хранения архивов, бэкапов, медиа и других неструктурированных данных.
Что такое неизменяемое хранилище?
Неизменяемое хранилище – это режим, при котором сохраненный объект нельзя изменить или удалить в течение заданного срока. Такой подход называется WORM: Write Once, Read Many. В S3-подобных хранилищах он реализуется через Object Lock и используется для защиты бэкапов, архивов, логов аудита и данных с регуляторными требованиями.
Зачем нужна георепликация?
Георепликация нужна для повышения отказоустойчивости и доступности данных. При ее использовании копии объектов автоматически размещаются на нескольких географически удаленных площадках. Это помогает снизить риск простоя при сбоях в одном регионе и ускорить доступ к данным для пользователей из разных локаций.
Что такое стирающее кодирование?
Стирающее кодирование, или erasure coding, – это способ защиты данных от потери без полного многократного копирования. Объект разбивается на блоки данных и дополнительные блоки избыточности, которые распределяются по разным узлам. Для восстановления объекта достаточно части этих блоков. Такой подход экономит место по сравнению с тройной репликацией и подходит для крупных архивов и долгосрочного хранения.
Выводы
Объектное хранилище – это такой подход к хранению больших объемов данных, в котором каждая единица данных становится объектом с ключом и метаданными, а доступ организован через S3 API. Оно дает важное преимущество. Одни и те же приложения, бэкап-системы и SDK работают с разными провайдерами без переписывания кода. При этом важно помнить, что файловое, объектное или блочное хранилище решает разные задачи. Грамотный выбор решения зависит от конкретных требований проекта и сценариев использования.




