Решив использовать облака для хранения данных, чтобы обеспечить корпоративным приложениям нужную гибкость и масштабируемость, компания оказывается перед выбором конкретной облачной системы хранения. Мы предлагаем воспользоваться небольшой инструкцией, которая поможет определиться с тем, какой тип облачного хранилища лучше подойдет вашим проектам, и подскажет, как комбинировать разные типы хранилищ для лучшей функциональности системы и экономии.
Современные облачные хранилища представлены тремя видами: блочные, объектные и файловые. Если смотреть на особенности таких хранилищ в контексте реальных задач, то у них есть свои достоинства и недостатки
Вариант 1: блочные хранилища, или облачные диски
Облачные диски имитируют физические дисковые носители, с которыми обычно работают операционные системы. Такие диски подключают к облачным серверам и потом взаимодействуют с ними как с дисковым пространством обычного блочного устройства для хранения данных, которое обслуживает физические серверы. Однако сама «виртуальность» этих дисков дополнительно дает функциональность, которую невозможно или слишком затратно получить на физических дисках.
Особенности облачных дисков
Облачные диски гибкие в управлении, то есть дополнительные диски можно подключать к работающему облачному серверу без его выключения, а также менять тип диска во время работы. Есть возможность создавать снимки состояния (снапшоты) и образы дисков, резервные копии. При этом с облачными дисками можно работать привычными методами, так как они имитируют физические устройства для хранения данных.
Кроме того, если вы используете облачные диски, можно не задумываться о покупке и настройке оборудования, а также других технических нюансах работы хранилища, как с физическими дисками — этим будет заниматься облачный провайдер. Он также гарантирует определенную пропускную способность системы и производительность хранилища: нужно только подобрать тип диска под ваши задачи.
Основные виды блочных хранилищ
Есть несколько типов облачных дисков, которые различаются по ряду характеристик:
- HDD — базовые диски наименьшей производительности и с самой низкой стоимостью. Их наиболее часто применяют как основу для файловых хранилищ и загрузки данных операционных систем.
- SSD — это стандартные диски, которые производительней облачных HDD, но и дороже. Используются для баз данных, телеметрических данных, очередей сообщений.
- High IOPS SSD — это быстрые диски с более высокой производительностью и ценой, чем у стандартных SSD. Используют их в основном для тех же приложений (аналитика, телеметрия, база данных), но более нагруженных и поэтому с более серьезными требованиями к производительности.
- Low Latency NVMe — сверхбыстрые и производительные с самой низкой задержкой отклика, но и с самой высокой ценой. Применяются для высокопроизводительных приложений баз данных, аналитики и кэша, которым критичны минимальные задержки.
Выбор типа блочного хранилища определяется типом приложения и его нагрузок, мы подробнее поговорим об алгоритме выбора ниже. Цена таких хранилищ зависит от типа дисков. От HDD до High IOPS SSD растет скорость чтения и записи, которая необходима для производительности приложений. А у Low Latency NVMe, помимо скорости чтения и записи, еще появляется и скорость отклика, что важно для баз данных и высоконагруженных систем с множеством одновременных запросов и изменений. Соответственно, и стоимость разных дисков увеличивается с ростом производительности и скорости отклика: HDD будет дешевле, а Low Latency NVMe дороже всего.
Вариант 2. Объектные облачные S3-хранилища
В объектном хранилище S3-данные хранятся не в виде файлов, а в виде объектов с метаданными. Метаданные — это метки с указанием определенной информации об объекте. Например, если вы храните в хранилище видеоролики, то можно указать название, автора, год выпуска и другую информацию. Кроме того, каждый объект имеет уникальный идентификатор.
Для размещения данных в S3 их не нужно приводить к какому-то определенному типу, поэтому такое хранилище хорошо подходит для неструктурированных данных, медиаконтента, архивов.
Также S3-хранилище идеально для сценариев, когда нужно обеспечить доступ к файлам сразу большому количеству пользователей. Например, видеохостинги или онлайн-кинотеатры могут разместить там огромное количество видеороликов, к ним будут обращаться миллионы посетителей, и S3 выдержит такую нагрузку.
Еще в объектном хранилище часто хранят бэкапы и копии инфраструктур для аварийного восстановления, так как это дешевле, чем размещать такие данные в обычном хранилище.
Особенности облачного S3-хранилища
В объектных хранилищах не ограничен объем хранимых данных и есть возможность хранить любой тип объектов, в том числе неструктурированные данные. Если S3 использует множество приложений одновременно, то это не влияет на скорость раздачи объектов: пользователи будут быстро получать ответ на обращения. Также такое хранилище автоматически масштабируется: в него можно поместить любой объем данных, S3 подстроится под нагрузку, даже если этот объем неожиданно вырастет в кратное число раз.
Жизненным циклом объектов, которые хранятся в S3, можно гибко управлять. Например, можно настроить удаление архивных данных в автоматическом режиме, тогда ненужная информация не будет занимать место. А для автообработки объектов (например, фото или видео) есть возможность настройки механизма оповещения о событиях Webhooks. Так, можно настроить автоматическую обработку видео после создания объекта в хранилище.
Доступ к файлам в хранилище возможен с использованием URL объектов, то есть обычной ссылки. По ней пользователь может получать доступ к файлам в хранилище без возможности их изменить или удалить. Простой пример: в онлайн-кинотеатре на сайте встроена ссылка на видеоролик, который находится в объектном хранилище. Любой посетитель может запустить видео и просмотреть его, но другие действия будут ему недоступны.
На платформе Mail.ru Cloud Solutions доступно три типа объектных хранилищ:
- Для данных, к которым нужно часто обращаться (HotBox). Этот вид подходит для приложений с высокой нагрузкой, которым требуется хранить и быстро раздавать большие объемы контента. Сюда можно отнести мультимедиа-сервисы (фото- и видеохостинги, онлайн-кинотеатры, онлайн-школы с обучающими роликами). Также такие хранилища применяют для бэкенда приложений и хостинга страниц сайтов, которые не нужно часто изменять. Еще один вариант использования: аналитика Big Data и хранение неструктурированных данных, из которых потом извлекают ценную информацию. Например, размещение данных научных экспериментов или генетических исследований. Подключив такое S3-хранилище, вы будете больше платить за размещение данных, зато меньше за их раздачу пользователям.
- Для данных, к которым обращаются редко (IceBox). Это архивы компаний, в том числе отчетность, а также резервные копии и документы с быстрым и редким доступом. Здесь размещение данных будет дешевле, а вот их раздача пользователям — дороже.
- Для данных с очень редким доступом (Glacier). Вариант для тяжелых данных архивов, журналов логирования и бэкапов, к которым обращаются очень редко, например несколько раз за год. Здесь стоимость хранения ниже всех, весь трафик не оплачивается.
S3 можно использовать отдельно, а можно сочетать с другими облачными системами хранения. Обычно это делают для того, чтобы разгрузить блочные диски облачных серверов и вынести с них те данные, что выгоднее хранить в хранилище объектов.
Вариант 3. Файловые хранилища
Здесь данные размещаются в каталогах и папках со строгой иерархией. Оно подходит для документов совместного пользования, пользовательских файлов, а также тяжелых файлов, которые нужно часто изменять. На платформе Mail.ru Cloud Solutions можно подключить файловое хранилище как сервис — использовать его как удаленное хранилище файлов, подключив к облачному серверу.
Особенности файловых хранилищ
Файловые хранилища поддерживаются большинством классических систем, поэтому этот тип хранилища хорошо подходит для Legacy-приложений, к которым сложно или невозможно подключить в облаке другую систему хранения. Объем хранилища файлов можно уменьшать и увеличивать, но только в ручном режиме. На платформе MCS под файловое хранилище можно использовать только HDD-диски, поэтому его основные характеристики по производительности будут совпадать с параметрами HDD.
С чем надо определиться перед тем, как выбирать облачное хранилище под проект
Есть несколько критериев, на которые стоит обращать внимание при выборе облачного хранилища:
- Как вы будете обращаться к данным и с какой частотой. Так, S3-хранилище не подойдет, если вы хотите разместить большие объекты и часто изменять их. Здесь лучше выбрать файловое или блочное хранилища. S3 больше подходит для хранения редко изменяемых объектов, при выборе нужно подобрать правильный тариф с учетом частоты доступа к ним.
- Какая производительность системы вам нужна. Если нужен максимально быстрый отклик системы и высокая пропускная способность, то стоит подключить блочное хранилище. По уровню производительности блочные хранилища идут в таком порядке: HDD-диски, SSD-диски, SSD High IOPS-диски, Low Latency NVMe-диски. Наименьшая задержка — всего 0,5 мс — будет у Low Latency NVMe, это самые быстрые диски.
- Особенности приложений компании. Если вы мигрируете Legacy-приложение, то придется ориентироваться на то, какой протокол оно использует для связи с хранилищем. Иногда из-за таких технических ограничений можно использовать только файловое хранилище.
- Стоимость. Наименьшая цена будет у S3-хранилища, она будет изменяться в зависимости от выбранного тарифа. При этом здесь вы платите только за тот объем хранения данных, который используете. Для файловых и блочных хранилищ стоимость зависит от того, сколько ресурсов вы зарезервируете, при этом чем производительнее система, тем выше цена. Тут стоит выбрать вариант, который будет дешевле всего и при этом обеспечит нужную скорость работы. Если вдруг вам понадобится более быстрый диск, его тип всегда можно изменить в процессе, для этого не нужно останавливать работу сервисов или перезагружать облачный сервер.
Как комбинировать облачные хранилища между собой
Облачные хранилища можно использовать по отдельности, но часто требования проекта предполагают, что используются разные типы данных и разные сценарии обращения к ним.
В этом случае можно сочетать облачные системы хранения между собой. Например, для интернет-магазина подойдет такая комбинация:
- для работы операционной системы подключить стандартные HDD, так как они недорогие и вполне справятся с этой задачей;
- для работы системы управления базами данных лучше подходят более быстрые и производительные SSD High IOPS, HDD здесь могут не справиться;
- для кэширования идеальны Low Latency NVMe, так как они позволяют получать доступ к сохраненным данным с наименьшей задержкой;
- медиаконтент, например видеоролики с обзорами товаров и картинки, а также бэкапы выгоднее разместить в объектном хранилище и снять так нагрузку с дисков облачных серверов.
Комбинирование разных облачных систем хранения позволяет уменьшить затраты и увеличить общую производительность IT-системы.
Чтобы сделать оптимальный выбор и подобрать облачное хранилище под нужды компании, важно хорошо понимать, какие данные и где будут храниться, как будет осуществляться доступ к ним. Использование облака дает некоторую гибкость: вы можете комбинировать и заменять облачные системы хранения, проще масштабировать их и добавлять новые ресурсы, что удобно, когда проект растет и изменяется.