S3-совместимое объектное хранилище: принцип работы технологии

Модуль 1

Инфраструктура как сервис

Тема 4

Хранилище S3 для IaaS

Мы уже научились создавать и настраивать виртуальные машины, работать с сетями и познакомились с концепцией IaC. Теперь поговорим о том, где хранить данные этой инфраструктуры.

Что такое объектные хранилища

Объектные хранилища появились тогда, когда возникла потребность хранить и быстро извлекать неструктурированные данные: фото, видео, логи и резервные копии.

По сравнению с традиционными блочными хранилищами объектные используют плоскую адресацию: все хранимые объекты получают уникальный идентификатор, хранятся как отдельные сущности и доступны через Web.

Все это сделало объектные хранилища выбором многих больших проектов, которым необходимо:

быстрое масштабирование. Архитектура объектного хранилища и отсутствие связности между хранимыми объектами позволяет быстро реагировать на необходимость увеличения или уменьшения ресурсов;
высокая степень отказоустойчивости. Хранимые объекты реплицируются как внутри дата-центров, так и на внешних серверах;
гибкость доступа. Объекты имеют уникальные идентификаторы и доступны по ссылкам для пользователей. С объектными хранилищами в облаке можно работать через веб-интерфейс облачной платформы, интерфейсы файловых менеджеров, S3 SDK и AWS CLI (Command Line Interface).

В VK Cloud используется S3-совместимое объектное хранилище. Это значит, что оно имеет совместимость со спецификацией хранилища Amazon S3 (Simple Storage Service) — широко используемым объектным хранилищем. Благодаря этому объектное хранилище VK Cloud способно работать с большим количеством существующих инструментов, созданных для S3.

Хранилища S3 бывают двух типов:

Hotbox. Горячее хранение для часто используемых данных: доставки мультимедиа и объектов для обработки. Хранение дороже, трафик дешевле.
Icebox. Холодное хранение для редко используемых данных: архивов, резервных копий, журналов. Хранение дешевле, трафик дороже.

Объектная модель хранилища основана на бакетах, контейнерах данных. Бакеты могут быть настроены с различными уровнями доступа и политиками безопасности, что позволяет контролировать, кто именно может просматривать или изменять данные.

Доступ к бакету осуществляется по паре уникальных значений (Access Key ID, Secret Key), дополнительно можно настраивать Access Control List (ACL) — права доступа.

С объектными хранилищами чаще всего работают через API, поэтому S3 концептуально ближе к миру разработки, нежели инфраструктуры. Однако есть варианты работы с ними как в файловой системе.

Распространенные примеры использования S3

Хранение бэкапов. Удобным способом является использование S3 для хранения разных версий бэкапов в разных контейнерах.
Хранение и раздача статического контента. Можно хранить любые видео и графические материалы.
Программная интеграция. Модель S3 близка и знакома многим разработчикам. Например, в этой теме будет рассмотрен пример с хранением данных чат-бота в S3.
Масштабирование. Вычислительные ресурсы масштабируются автоматически, так что пиковая нагрузка не отражается на работе пользователя.

Конфигурация объектного хранилища и объяснение логики

Управление объектным хранилищем S3 при помощи командной строки AWS