Что такое объектное хранилище S3
S3 — cервис, который позволяет хранить неструктурированные данные без ограничений по размеру и типу. Здесь нет классической иерархии, как в файловых системах, поэтому работать удобнее. Масштабировать систему проще: нет сложной структуры формата «папка —> в ней лежит папка —> в ней еще одна папка —> нужный файл».
Облачное объектное хранилище S3 на самом деле подразумевает два основных элемента:
- объектное хранилище — плоское (не иерархическая структура);
- S3 (Simple Storage Service) — защищенный протокол передачи данных.
S3 использует API, созданный сотрудниками Amazon Web Services (AWS). Любой объект, который лежит в Storage, можно получить по защищенному протоколу HTTP или HTTPS с помощью URL-ссылки. Дальше можно работать через Application Programming Interface (API) или веб-интерфейс.
AW Sзапустила S3 в США в 2006 году. В 2007 сервис пришел в Европу. Сегодня комбинация Object Storage + протокол S3 — один из самых востребованных вариантов хранения данных в облаке.
Как работает
Облачный сервис предоставляет:
- доступ к защищенному cloud-хранилищу;
- API-интерфейс с прямым доступом к хранимым объектам через интернет;
- дополнительные настройки, которые зависят от поставщика.
Объект (картинка, документ Word, таблица Excel, аудио, видео, образ виртуальной машины) содержит три основных элемента.
Идентификатор (ID), ключ (Key). Строка, с помощью которой можно идентифицировать объект и обратиться к нему. Чтобы работать с ним (просматривать, скачивать и так далее), нужна прямая ссылка. Она имеет формат https://<домен сервиса>/<имя бакета>/<ключ> или https://<бакет с доменом>/<имя объекта>. Способ формирования адреса Virtual-hosted-style в OBS подразумевает указание названия бакета в URL: https://bucket-name.obs.ru-moscow-1.hc.sbercloud.ru/object.name. Это предпочтительный вариант. Модель Path-style подразумевает, что Bucket указывают после URI-адреса: https://obs.ru-moscow-1.hc.sbercloud.ru/bucket-name/object.name.
Метаданные (Meta). Уникальные системные и пользовательские пары ключей, где информация об объекте: язык, тип содержимого, название. Нужны, чтобы находить объект по заданному значению, выгружать в хранилище, делать многое другое.
Содержимое (Data). Сами данные для хранения: архивы, изображения, образы виртуальных систем и прочие.
Чтобы работать с объектами было проще, используют корзины — бакеты (buckets). Это логическая сущность, при помощи которой организуют хранение данных и доступ к ним. Например, можно загрузить в бакет архивные документы по клиентам и открыть доступ только руководителям отдела продаж.
Сценарии использования S3
S3 подходит бизнесу и как основное хранилище, и как дополнение к классическому блочному/файловому.
Основные сценарии облачного хранения:
- Big Data банков, маркетплейсов e-commerce (Data lakes, Data mining, геномные исследования);
- файлы мультимедиа;
- бэкапы (резервные копии) и аварийное восстановление;
- файлы мобильных и веб-приложений;
- архивы.
Защита персональных данных (ФЗ-152) — обязанность бизнеса в России. Ряд объектных хранилищ (в том числе и S3 от Cloud.ru) обеспечивают безопасность данных и имеют аттестат по ФЗ-152.
Объектные хранилища обеспечивают доступ к файлам для миллионов пользователей одновременно. Это особенно важно для высоконагруженных сервисов: видеохостингов, галерей, фотостоков. Кодировать видео можно через Kubernetes с автоматическим масштабированием. Чтобы ускорить кодирование, используют GPU.
Простейший сценарий использования хранилища — загрузить файл в облако и поделиться с коллегами, заказчиками, исполнителями. Но доступны и другие возможности:
- создать статический веб-сайт из консоли OBS;
- предоставить доступ к бакету OBS c определенных IP-адресов;
- настроить отправку событий бакета OBS на внешний syslog-сервер;
- использовать Direct Connect, чтоб подключиться к хранилищу по внутренней сети.
Как создать первый S3-бакет и загрузить файл в облако
Ниже приведена пошаговая инструкция, как создать первый бакет и загрузить его в облачное Object Storage.
- Перейти на advanced.cloud.ru и выбрать «Перейти в консоль».
Выбрать Create Bucket и задать настройки. Нужно указать Bucket Name (название бакета), класс Storage Class и Bucket Policy (приватный, публичный, публичный для чтения и записи). Также необходимо задать проект.
Попасть на страницу со списком всех бакетов.
Создать каталог в Bucket и загрузить в него файл. Нужно задать настройки разрешений (Object Permission), класс хранения и нажать Add File.
Нажать Upload, чтобы выгрузить файл. Он отобразится на странице.
Выбрать Share, чтобы найти URL. Ссылку на объект, лежащий в хранилище, можно отправить коллегам, заказчикам, исполнителям. В URL Validity Period можно задавать время действия линка (к примеру, 5 часов).
Классы хранения (Storage Class)
Storage Class — это режим хранения с учетом потребленного объема и трафика. Обычно это ответ на вопрос, как часто бизнес (приложения, программы, утилиты) обращается в объектное хранилище за данными: ежесекундно, раз в полгода, раз в год и так далее. В таблице ниже сравнение классов хранения (на примере OBS Cloud.ru).
Критерий сравнения | Стандартный (Standard, горячее хранилище) | Редкий доступ (Warm) | Архив (Cold, ледяной) |
Для чего нужен, как часто запрашиваются данные | Частый доступ | Меньше 12 раз в год | 1 раз в год или реже |
Сценарии использования | Анализ Big Data, мобильные приложения, хранение фотографий и видеоматериалов | Синхронизация файлов и их резервное копирование | Архивы, долгосрочное хранение информации |
Поддержка Image Processing (обработка изображений — конвертировать форматы, накладывать водяные знаки) | Поддерживается | Поддерживается | Недоступна |
Восстановление данных | Бесплатно | Бесплатно | Три опции восстановления (срочное, стандартное, массовое) |
Минимальный срок хранения | Нет | 30 суток | 90 дней |
Ключевое преимущество | Производительность, надежность, доступность | Недорогой и достаточно оперативный доступ к данным | Самая низкая цена по сравнению с другими классами хранения |
Преимущества S3 для бизнеса
Масштабируемость. Объем хранимой информации легко увеличивается без настройки системы и оборудование. Это стало возможным за счет отсутствия иерархии хранения файлов.
Экономичность. Не нужно покупать, обслуживать и поддерживать оборудование (все вопросы с «железом» решает поставщик услуги). Бизнес оплачивает потребленные ресурсы (pay as you go), а бизнес может выбрать более выгодный класс хранения.
Безопасность данных. При создании бакета и загрузке файла пользователь определяет уровень доступа. Для безопасности поставщики предлагают IAM (Identity and Access Management). Это настройка политики паролей и авторизации, распределение ролей и доступов.
Гибкость и доступ из браузера. Object Storage поддерживает HTTP и HTTPS. Поэтому получить содержимое можно из любого браузера, достаточно знать URL.
Отдельные сервисы предоставляют несколько вариантов поставки: облачное S3‑хранилище, в составе ПАК (программно-аппаратного комплекса), в локальном центре обработки данных.
Выводы
S3 нужен бизнесу для хранения лог-файлов, аварийного восстановления с минимальным простоем, архивирования любой информации (бухгалтерская и финансовая отчетность, базы клиентов, записи разговоров контакт-центра), бесконечного масштабирования IT-инфраструктуры, а также многих других задач.
S3 может дополнять классические блочные и дисковые хранилища или использоваться как самостоятельное. Можно выбрать вариант в зависимости от проекта и его требований.
Object Storage обходится дешевле по сравнению с обычными жесткими дисками, а возможностей масштабирования гораздо больше.