Ежегодно в компаниях растет объем данных, и их нужно где-то хранить. Классический вариант с физической инфраструктурой становится неактуальным: он не может обеспечить нужную гибкость, надежность и рентабельность. Так что компании все чаще выбирают облачные решения.

 
Основные облачные решения для хранения данных — объектное S3-хранилище и DBaaS (база данных как услуга).

В этом гайде разбираем ключевые особенности обоих решений, сценарии их использования и перечисляем варианты, в которых выбор S3 или DBaaS наиболее оправдан.

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

Объектное S3-хранилище — облачный сервис, который позволяет хранить файлы любого типа и объема. Чаще всего в S3 хранят неструктурированные данные: изображения, видео, программный код, архивы документов.

Сейчас S3-хранилища предоставляют большинство облачных провайдеров по совместимому с AWS S3 API. Например, на платформе VK Cloud доступно объектное S3-хранилище Cloud Storage.
В S3-хранилищах файлы представлены в виде объектов, которые состоят из трех частей: 

  • содержимое объекта;
  • метаданные — расширенная информация о владельце, размере файла, правах доступа и других данных;
  • уникальный идентификатор, который позволяет находить файл и управлять им.

Наборы объектов в S3 формируют специальные контейнеры (buckets), у них уникальные ID. Разделение по контейнерам позволяет разграничить права доступа. Благодаря этому коллеги не изменят файлы случайно, а злоумышленники — намеренно.  

Сравнение модели хранения файлов в файловом, блочном и объектном хранилищах

Особенности S3-хранилищ

У S3-хранилищ есть особенности, которые нужно учитывать. Рассмотрим их на примере S3 от VK Cloud.

  1. Лимиты. В проекте не более 25 контейнеров (корзин), но внутри каждого контейнера можно хранить более 1 млн объектов. Максимальный размер загружаемых файлов при стандартной загрузке — 32 Гб, при Multipart-загрузке — до 320 Тб. Рейт-лимиты — 1000 запросов/сек., при листинге — до 250 запросов/сек. 
  2. Масштабируемость. В S3 архитектурно практически не ограничен объем, хранилище масштабируется вместе с данными.
  3. Расширенная совместимость. S3-хранилище поддерживает объекты любого типа (фото, видео, аудио, таблицы, отчеты) независимо от степени их структурированности.
  4. Гибкое управление жизненным циклом. Объектное хранилище позволяет гибко управлять жизненным циклом объектов, в том числе автоматически удалять их в назначенное время. 
  5. Прямой доступ к файлам. Для просмотра файлов можно использовать URL, то есть обычные ссылки.
  6. Присвоение метаданных. В объектном хранилище у каждого файла есть развернутые метаданные. В них указано время создания, объем, тип, содержимое и другие параметры. Это упрощает структурирование и поиск объектов.

Варианты работы с S3-хранилищами в облаке

  • Веб-интерфейс облачной платформы. Стандартный пользовательский интерфейс не требует сложной настройки, хранилищем можно пользоваться практически сразу после регистрации.
  • Интерфейсы файловых менеджеров. Работа с данными в S3-хранилище не отличается от работы с данными на облачном диске: есть файлы, папки и каталоги. Примеры таких файловых менеджеров — CyberDuck, WinSCP, Диск-О.
  • S3 SDK. Используя наборы средств для разработки, можно организовать чтение и запись через приложения. SDK есть для Python, Java, .NET, PHP и Go и других языков программирования.
  • AWS CLI (Command Line Interface). Через интерфейс командной строки можно создавать, обновлять и удалять файлы в S3-хранилищах.

Преимущества и недостатки S3-хранилищ

Преимущества:

  • Гибкое масштабирование. В S3-хранилищах можно хранить практически неограниченное количество и объем объектов — вы получаете столько места, сколько нужно в данный момент.
  • Легкий поиск контента. Уникальные метатеги и URL-адреса упрощают поиск файлов — не нужно искать по каталогам и папкам. 
  • Безопасность. За защиту данных в объектных хранилищах отвечает провайдер. Но вы можете использовать дополнительные методы: управлять аккаунтами и доступами, использовать ACL (Access Control List) и CORS (Cross-Origin Resource Sharing).
  • Автоматизация. В S3-хранилище можно автоматизировать управление данными, запуская определенные процедуры при загрузке или удалении объектов. Например, автоматически обрабатывать все новые фотографий или видео благодаря функции вебхуков.
  • Экономичность. Вам не нужно закупать оборудование и его обслуживать. Используя S3, вы платите только за использованные ресурсы — это дешевле, чем хранить данные в собственном ЦОДе.

Недостаток S3-хранилищ:

  • Не подходит для горячего хранения. Из-за особенностей внутренней архитектуры при обращении к файлам в объектном хранилище возникают задержки. Поэтому на базе S3 сложно реализовать хранилище для быстрого доступа к данным.

Облачные базы данных (DBaaS)

Database as a Service (база данных как услуга) — модель облачных вычислений, которая позволяет использовать преднастроенную базу данных. При этом за ее администрирование, настройку и обслуживание отвечает провайдер, вы пользуетесь готовым решением.

Облачные базы данных выбирают, чтобы оптимизировать рабочие процессы и обеспечить их непрерывность. Поэтому DBaaS обычно используют, когда требуется:

  • масштабируемая и надежная база данных без больших инвестиций;
  • внедрить во всех бизнес-структурах единую базу данных;
  • перенести бизнес-процессы в облако, чтобы повысить гибкость и снизить риски.

В облаке можно использовать базы данных PostgreSQL, MySQL, ClickHouse, Redis, MongoDB и другие.

Особенности DBaaS

При развертывании баз данных в облаке стоит знать об их инфраструктурных особенностях.

  1. Различные типы дисков оптимальны для разных задач. SSD подходят для систем с высокими требованиями к отказоустойчивости, High-IOPS SSD — для систем с высокими требованиями по IOPS. Low Latency NVMe предназначены для высоконагруженных приложений, где важна скорость отклика.
  2. Производительность дисков в облаке зависит от их объема. В облаке лимит операций ввода-вывода зависит от объема дискового пространства. Можно повысить скорость обработки данных, увеличив размер диска. 
  3. Можно менять типы и размеры дисков на лету. Изменения можно внести через API или UI без даунтайма.
  4. Производительность виртуальной машины (ВМ) зависит от ее конфигурации. На параметры БД влияют: тип и размер диска, тип процессора и количество ядер, объем ОЗУ.

Преимущества и недостатки DBaaS

Основные преимущества баз данных в облаке:

  • Отказоустойчивость. В облаке базу данных можно создать в режиме Master-Slave или в кластерной конфигурации. А чтобы повысить отказоустойчивость, можно разместить инстансы в нескольких дата-центрах.
  • Повышенная безопасность. Поставщики DBaaS-сервисов работают в высоконадежных и защищенных средах, а также используют межсетевые экраны и антивирусные программы. Дополнительно безопасность данных гарантирует сертификация по PCI DSS и №152-ФЗ, возможность изолировать среды, использовать частные виртуальные сети и гибко настраивать Firewall. 
  • Масштабируемость. Вы можете самостоятельно менять количество ядер CPU, объем RAM, выбирать тип и объем жестких дисков. И благодаря этому масштабировать базу данных в зависимости от нагрузки.
  • Доступ с любого устройства. Зайти в традиционную базу данных можно только через ту систему, в которой она развернута. Напротив, управлять облачной базой данных можно в личном кабинете провайдера — совместно работать с данными проще. 
  • Снижение затрат. Используя облачные базы данных, вы экономите на оборудовании и найме сотрудников, а также переводите капитальные затраты в операционные. 
  • Аттестация по ФЗ-152. Большинство российских провайдеров предлагает базы данных, развернутые в облаке, которое аттестовано по ФЗ-152. Благодаря этому вы соблюдаете закон о персональных данных.

Недостаток баз данных в облаке:

  • Невозможность тонкого тюнинга. Базово DBaaS настраивает облачный провайдер. Из соображений безопасности у пользователей нет доступа к критическим настройкам.

Ключевые различия S3-хранилищ и DBaaS

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

  • Транзакции. В S3-хранилищах нет транзакций и Update — данные записываются один раз и читаются многократно (подход Write Once Read Many). В то же время в реляционных базах данных можно использовать Rollback, ACID-транзакции и другие функции. То есть, если вам нужно работать с транзакциями, лучше выбрать DBaaS. 
  • Обработка данных. В архитектуре с S3 можно разделить слои хранения и вычисления. Например, за слой хранения отвечает S3, а слой вычисления — Kubernetes. Благодаря этому S3-хранилища совместимы с популярными инструментами для работы с большими данными, например со Spark, ClickHouse и Greenplum. В DBaaS слои обработки и хранения, напротив, объединены. Благодаря этому скорость доступа к данным высокая, а задержек практически нет.  

Таким образом, S3 подходит, если нужно дешево хранить данные и использовать Big-Data-инструменты. Если же важен быстрый доступ и минимальные задержки, лучше выбрать DBaaS.

  • Ценообразование. В S3 дешевое хранение, но есть плата за исходящий трафик — чтение и скачивание. В тарификации учитывается количество запросов и уровень хранения — горячий или холодный. Используя DBaaS, вы платите за использованные ресурсы: диски, память, ядра. Трафик и количество запросов не тарифицируются.

Сценарии использования S3

  • Хранение лог-файлов. В S3 можно хранить большие объемы лог-файлов. Они содержат информацию о внутренних и внешних событиях, например данные о посетителях сайта.
  • Хранение по ФЗ-152. Объектные хранилища от отечественных провайдеров позволяют хранить данные, соблюдая закон о защите персональных данных. За выполнение требований отвечает поставщик услуг.
  • Хранение аудио-, видео- и фотоконтента. К файлам в S3 можно обращаться по URL. Поэтому объектные хранилища используют видеохостинги, фотобанки и фотостоки.
  • Доступ для миллионов пользователей. Благодаря своей архитектуре S3-хранилища способны одновременно обрабатывать большое количество запросов, при этом скорость доступа не снижается. Это полезно, если нужно раздавать файлы, например аудио или видео миллионам пользователей.
  • Резервное копирование и восстановление данных. У объектных хранилищ высокая надежность, плюс их можно интегрировать с другими инструментами. Благодаря этому в них можно хранить резервные копии как отдельных компьютеров, так и всей ИТ-инфраструктуры.
  • Разработка, тестирование, сокращение времени на запуск проекта. S3-хранение можно трансформировать в репозиторий кода — хранить в нем файлы с кодом, его версиями и резервными копиями. Также сервис легко интегрировать в веб- или мобильное приложение.
  • Совместная работа с файлами. Объектное облачное хранилище оптимально для совместного доступа к рабочим файлам: оно выгоднее и удобнее собственного сервера.
  • Электронный документооборот. Версионирование, присвоение тегов, отсутствие ограничений на объем файлов, доступ по HTTP-/HTTPS-протоколу, механизм устаревания объектов — эти функции позволяют использовать S3 для документооборота.
  • Работа с Big Data. В S3-хранилище можно хранить неструктурированные данные, чтобы в дальнейшем их анализировать. 

Сценарии использования DBaaS  

  • Развертывание OLTP- и OLAP-систем. Облачные БД можно использовать с OLTP- и OLAP-системами, чтобы обрабатывать и анализировать данные. Базы данных для OLAP — Greenplum и ClickHouse, для OLTP — MySQL, PostgreSQL, Postgres Pro.
  • Аварийное восстановление. В облачных базах можно размещать резервные копии и реплики локальных баз для быстрого восстановления при сбоях. Это надежнее и дешевле хранения на физических носителях.
  • Разработка приложений. Чтобы развернуть среду разработки с классической базой данных, требуется несколько дней. DBaaS уже преднастроены, вы приступаете к разработке уже через несколько минут.
  • Тестирование функций и обновлений. Облачную базу данных можно быстро развернуть и потом удалить. Поэтому DBaaS подходят, если нововведение нужно проверить на тестовом стенде. 

Заключение

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

Лучше выбрать DBaaS, если:

  • нужны транзакции, Update, Insert;
  • важно минимизировать задержки;
  • данные структурированы;
  • объем данных прогнозируемый и не измеряется петабайтами.

Лучше выбрать S3-хранилище, если:

  • данные не структурированы;
  • у вас сотни терабайт или петабайт данных;
  • нужно надежное распределенное хранилище по модели as a Service;
  • важно сэкономить на хранении. 

Вы можете попробовать объектное S3-хранилище или одну из доступных облачных баз данных в VK Cloud. Новым пользователям платформы доступен бонус в размере 3000 рублей на тестирование сервисов.