Кратко:
- Объектное хранилище - облачная система хранения данных произвольного формата, подходящая для хранения видеозаписей, изображений, архивов и резервных копий.
- Объектное хранилище обеспечивает доступность данных, их защиту от несанкционированного доступа и масштабируемость.
- Идентификатор объекта - строка, используемая для идентификации объектов в хранилище, а метаданные содержат дополнительные сведения.
- Объекты в хранилище группируются в бакеты, что позволяет разделять данные разных проектов или пользователей.
- Объектные хранилища имеют некоторые особенности, такие как взаимодействие с приложениями через HTTP API и невозможность редактирования объектов.
- В Yandex Cloud доступны три класса хранилищ: стандартное, холодное и ледяное, с разными тарифами на хранение и обращение к данным.
- S3-совместимость позволяет использовать популярные инструменты для работы с S3-протоколом, такие как S3cmd, AWS CLI, Cyberduck, WinSCP, SDK для Python и Java.
- Объектное хранилище имеет преимущества, такие как масштабируемость, высокую производительность, отказоустойчивость, метаданные и низкую стоимость хранения данных.
Object Storage и S3-совместимые хранилища
Пару лет назад клиника купила охранную систему видеонаблюдения: несколько десятков видеокамер и сервер, где записи хранятся 28 дней. Однажды главный врач решил, что записи нужно хранить дольше: целый год. Реализовывать проект поручили вам — главному айтишнику клиники. Изучив варианты, вы задумались о хранении видеозаписей в облаке и узнали о такой вещи, как объектное хранилище. Давайте вместе разберёмся, что это такое.
Мы используем разные данные: видеозаписи, изображения, архивы, резервные копии для аварийного восстановления, цифровые библиотеки. Многие из них требуются не постоянно, а время от времени — их нужно куда-то сложить, чтобы легко находить и доставать.
Задумываясь о хранении, мы рассчитываем, что данные:
- никуда не пропадут;
- доступны (в идеале — отовсюду, где есть интернет);
- недоступны для тех, с кем мы не собирались делиться данными;
- находятся в системе хранения, которую просто расширить.
Кроме того, мы не хотим потратить много денег на хранение и много сил, чтобы поддерживать систему хранения в рабочем состоянии.
Всем этим требованиям отвечает объектное хранилище (англ. object storage) — облачная система хранения данных произвольного формата. В хранилище записываются объекты — по сути, привычные нам файлы. У каждого объекта есть уникальный идентификатор (аналог имени файла) и метаданные (дополнительные сведения). Идентификатор помогает различать объекты, а в метаданных хранятся, например, дата создания и MD5-хеш.
Идентификатор объекта — это строка. Ее часто записывают как путь в файловой системе, используя символ
/ как разделитель. Например, archive/2020/ivanov/x-ray.jpg. Благодаря этому файловые браузеры при работе с объектами имитируют привычное нам дерево папок. В консоли управления Yandex Cloud тоже есть такая возможность — части пути называются папками. Но важно понимать: на самом деле иерархии в объектном хранилище нет, оно плоское. За счет плоскости достигается большая скорость поиска по сравнению с файловой системой.Внутри хранилища объекты группируются в бакеты. Это позволяет разделять данные разных проектов или пользователей. У каждого бакета в Yandex Cloud уникальное имя. Переименовать бакет нельзя, поэтому выбирайте имя для бакета с умом.

С практической точки зрения объектные хранилища имеют некоторые важные особенности:
- они рассчитаны, прежде всего, на взаимодействие с приложениями через HTTP API, а не напрямую с пользователем;
-
объекты в них не редактируются. Чтобы изменить объект, придётся загрузить в хранилище новую версию. Это неудобно, если объекты большие или часто изменяются.
Класс хранилища
Размер оплаты за использование объектного хранилища зависит от количества хранящихся данных, числа операций с ними и объёма исходящего трафика. Первый гигабайт данных, первые десятки тысяч операций и первые 100 гигабайт трафика бесплатные.
С учётом требований к длительности хранения объектов и частоте операций с ними вы можете выбрать класс используемого хранилища. В Yandex Cloud таких классов три: стандартное, холодное и ледяное. Более «холодные» классы используются для длительного хранения объектов, к которым обращаются редко. Чем «холоднее» хранилище, тем дешевле хранить в нём данные, но и тем дороже их читать или записывать.
Стоит иметь в виду, что у ледяного хранилища, в отличие от стандартного и холодного, есть минимальное тарифицируемое время хранения объекта. Оно составляет 12 месяцев. Если удалить объект, который хранился в нём меньший срок, то остаток стоимости хранения будет списан с вашего счёта.
Класс хранилища выбирается при загрузке объекта в бакет. Если этого не сделать, то объект сохранится в хранилище того класса, который выбран для всего бакета.
Класс хранилища для бакета можно изменить в консоли управления. Если объект загружен, изменить его класс хранилища нельзя: можно либо загрузить объект заново, либо задать правило, управляющее жизненным циклом объекта. Настраивать жизненный цикл вы научитесь на практическом занятии.
S3-совместимость
Сервис Yandex Object Storage — S3-совместимое хранилище. Его API совместим с Simple Storage Service API (S3 API), который был создан компанией Amazon в 2006 году и де-факто стал стандартом облачного хранения данных. S3-совместимость позволяет использовать в Yandex Cloud популярные инструменты для работы с S3-протоколом: консольные клиенты S3cmd и AWS CLI, файловые браузеры Cyberduck и WinSCP, библиотеки (SDK) для Python и Java.
Возможности и преимущества объектного хранилища
Объектное хранилище — общепринятый способ хранения неструктурированных данных в облаке. Преимущества объектного хранилища:
- масштабируемость: размер системы архитектурно не ограничен, она может содержать любой объём данных;
- более высокая производительность при управлении большими объёмами данных по сравнению с иерархическими файловыми системами;
- отказоустойчивость: копии данных хранятся в нескольких географически распределённых дата-центрах;
- метаданные, позволяющие искать, сортировать и анализировать неструктурированные данные;
- невысокая стоимость хранения данных.
Используйте сервис Yandex Object Storage, чтобы разместить файлы любого формата для своего проекта (приложения или сайта) в закрытом или публичном доступе, хранить объёмные архивы (до 5 терабайт на файл), контролировать доступ к данным и организовать совместную работу с ними.