Хранилище данных Azure
Azure Storage Account -- это единая точка входа для всех сервисов хранения данных в Azure. Один Storage Account может содержать Blob Storage, File Storage, Queue Storage и Table Storage.
Azure Blob Storage
Blob (Binary Large Object) Storage предназначен для хранения неструктурированных данных -- файлов, изображений, видео, документов, бэкапов. Это один из самых используемых сервисов Azure.
Типы блобов
| Тип | Назначение | Максимальный размер |
|---|---|---|
| Block Blob | Файлы, изображения, видео | до 190.7 TB |
| Append Blob | Логи, журналы событий (только добавление) | до 195 GB |
| Page Blob | VHD-диски виртуальных машин, произвольный доступ | до 8 TB |
Block Blob используется в подавляющем большинстве случаев. Данные загружаются блоками, что позволяет эффективно передавать большие файлы.
Уровни доступа (Access Tiers)
Azure Blob Storage предоставляет разные уровни хранения, оптимизированные по стоимости в зависимости от частоты доступа к данным.
| Уровень | Частота доступа | Мин. хранение | Стоимость хранения | Стоимость операций |
|---|---|---|---|---|
| Hot | Частый | Нет | Высокая | Низкая |
| Cool | Редкий (30+ дней) | 30 дней | Ниже | Выше |
| Cold | Очень редкий (90+ дней) | 90 дней | Ещё ниже | Ещё выше |
| Archive | Долгосрочное хранение (180+ дней) | 180 дней | Минимальная | Максимальная + rehydration |
Важный нюанс: данные в уровне Archive недоступны мгновенно. Для доступа необходим процесс rehydration (перевод обратно в Hot или Cool), который может занять от нескольких часов до суток.
Уровень можно изменить для отдельного блоба или настроить автоматическое перемещение через Lifecycle Management.
Контейнеры
Блобы организованы в контейнеры -- аналог папок. Каждый блоб находится внутри контейнера.
Уровни доступа контейнера:
- Private -- доступ только с авторизацией (по умолчанию)
- Blob -- анонимное чтение отдельных блобов
- Container -- анонимное чтение и листинг всех блобов
Azure File Storage
Azure Files -- это управляемые файловые ресурсы (шары), доступные через протоколы SMB и NFS. Это облачная замена традиционных файловых серверов.
Сценарии использования:
- Замена или дополнение локальных файловых серверов
- Общий доступ к файлам между виртуальными машинами
- Хранение конфигурационных файлов для приложений
- Журналы диагностики и логи
# Создание файлового ресурса
az storage share create \
--name myfileshare \
--account-name mystorageaccount \
--quota 100
Файловые ресурсы можно подключить как сетевой диск к Windows, Linux и macOS.
Azure Queue Storage
Queue Storage -- это сервис для хранения сообщений в очереди. Используется для асинхронной обработки задач и обмена сообщениями между компонентами приложения.
Характеристики:
- Максимальный размер сообщения: 64 KB
- Максимальный TTL сообщения: 7 дней (или бесконечно)
- Миллионы сообщений в одной очереди
- Доступ через HTTP/HTTPS
Когда использовать: простые очереди для фоновых задач. Для корпоративных сценариев с гарантированной доставкой лучше использовать Azure Service Bus.
Azure Table Storage
Table Storage -- это NoSQL хранилище ключ-значение. Подходит для хранения структурированных нереляционных данных.
Структура данных:
- PartitionKey -- определяет раздел для распределения данных
- RowKey -- уникальный идентификатор внутри раздела
- Properties -- набор пар ключ-значение (до 252 свойств)
Когда использовать: простые сценарии хранения данных без связей, агрегаций и сложных запросов. Для более продвинутых потребностей используйте Cosmos DB с Table API.
Опции избыточности (Redundancy)
Azure Storage реплицирует данные для защиты от сбоев оборудования и стихийных бедствий.
| Опция | Описание | Копий | SLA чтения |
|---|---|---|---|
| LRS | Locally Redundant Storage | 3 копии в одном ДЦ | 99.9% |
| ZRS | Zone-Redundant Storage | 3 копии в 3 зонах доступности | 99.9% |
| GRS | Geo-Redundant Storage | 6 копий (3 основной + 3 парный регион) | 99.9% |
| RA-GRS | Read-Access GRS | Как GRS + чтение из парного региона | 99.99% |
| GZRS | Geo-Zone-Redundant Storage | 3 копии в 3 зонах + 3 в парном регионе | 99.9% |
| RA-GZRS | Read-Access GZRS | Как GZRS + чтение из парного региона | 99.99% |
LRS -- минимальная защита, данные реплицируются внутри одного дата-центра. Если ДЦ выходит из строя, данные могут быть потеряны.
ZRS -- защита от сбоя одного дата-центра. Данные реплицируются между зонами доступности в одном регионе.
GRS -- защита от катастрофы целого региона. Данные реплицируются в парный регион, но доступны оттуда только после failover.
RA-GRS -- как GRS, но данные из парного региона доступны для чтения в любой момент (без failover).
# Создание Storage Account с GRS
az storage account create \
--name mystorageaccount \
--resource-group rg-demo \
--location westeurope \
--sku Standard_GRS \
--kind StorageV2