Объектное хранилище (S3-совместимое)
Чем объектное хранилище отличается от файловой системы, что такое бакет и объект и зачем оно нужно для бэкапов и статики.
Ещё один способ хранить файлы
Файлы мы привыкли держать в файловой системе из урока про FHS: дерево каталогов, права, путь. Это удобно для сервера, но плохо масштабируется на терабайты и миллионы файлов, доступные отовсюду. Для такого есть объектное хранилище. Эталон здесь — Amazon S3, а его протокол стал стандартом: «S3-совместимыми» бывают Yandex Object Storage, MinIO, Selectel и многие другие.
Бакет и объект
В объектном хранилище нет дерева каталогов. Есть два понятия:
- Бакет (bucket) — именованный контейнер для объектов. Грубо, верхний уровень хранилища.
- Объект это файл плюс метаданные, лежащий в бакете под своим ключом
(key). Ключ выглядит как путь (
backups/2026-06/db.dump), но это просто строка-идентификатор, а не настоящие вложенные папки.
бакет: company-backups
ключ: db/2026-06-18.dump → объект (файл + метаданные)
ключ: static/logo.png → объект
Доступ к объекту идёт по HTTP через API, а не через монтирование. Положить,
забрать, удалить объект — HTTP-запросы (часто через CLI вроде aws s3 или
mc), а не операции файловой системы.
Чем отличается от файловой системы
Ключевые отличия, из-за которых объектное хранилище берут:
- Масштаб. Практически безграничный объём и число объектов, не надо думать про размер диска.
- Доступ по HTTP отовсюду. Объект достаётся по URL, а не с конкретного сервера. Это удобно для распределённых систем.
- Нельзя менять кусок файла. Объект перезаписывают целиком, частичная правка как в файле не поддерживается. Поэтому объектное хранилище для файлов целиком (бэкап, картинка, архив), а не для баз, которым нужна запись по месту.
Где это в работе
Объектное хранилище закрывает несколько знакомых задач:
- бэкапы из урока про стратегии: off-site копия в бакете в другом регионе закрывает требование 3-2-1;
- артефакты CI и Terraform-state из прошлых уроков часто хранят именно в S3-совместимом бакете;
- статика и загрузки приложения (картинки, файлы пользователей): их держат в бакете, а не на диске сервера, чтобы приложение оставалось stateless из урока про 12-factor.
Доступ к бакету выдают по принципу наименьших привилегий: ключ с правами только на нужный бакет, а не на всё хранилище.
Что важно запомнить
Объектное хранилище (S3 и совместимые) хранит файлы как объекты в бакетах, доступ по HTTP API, а не через файловую систему. Ключ объекта — строка, похожая на путь, без настоящих папок.
Оно масштабируется практически безгранично и доступно отовсюду, но объект меняют только целиком, поэтому оно для файлов целиком (бэкапы, артефакты, статика), а не для баз. Доступ выдают узким ключом на нужный бакет.
В следующем уроке разберём модели облака: IaaS, PaaS и SaaS.
Прошли материал до конца? Отметьте урок пройденным.
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс