Рекомендации по архитектуре для хранилища BLOB-объектов Azure

Хранилище BLOB-объектов Azure — это решение хранилища объектов Майкрософт для облака. Хранилище BLOB-объектов используется для хранения больших объемов неструктурированных данных. Неструктурированные данные — это данные, которые не соответствуют конкретной модели или определению данных, например текстовые или двоичные данные.

В этой статье предполагается, что в качестве архитектора вы ознакомились с параметрами хранилища и выбрали хранилище BLOB-объектов в качестве службы хранилища, в которой будут выполняться рабочие нагрузки. В этой статье приведены рекомендации по архитектуре, связанные с принципами столпов Well-Architected фреймворка Azure.

Reliability

Цель компонента надежности заключается в обеспечении непрерывной функциональности путем создания достаточной устойчивости и возможности быстрого восстановления после сбоев.

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

Контрольный список разработки рабочей нагрузки

Начните стратегию проектирования на основе контрольного списка для проверки надежности.

  • Используйте анализ режима сбоя: свести к минимуму точки сбоя, учитывая внутренние зависимости, такие как доступность виртуальных сетей, Azure Key Vault или сеть доставки содержимого Azure или конечные точки Azure Front Door. Сбои могут возникать, если учетные данные, необходимые для доступа к хранилищу BLOB-объектов, отсутствуют в Key Vault, или если рабочие нагрузки используют конечную точку, основанную на сети доставки содержимого, которая была удалена. В таких случаях может потребоваться использование альтернативной точки подключения для соединения. Общие сведения об анализе режима сбоя см. в рекомендациях по выполнению анализа режима сбоя.

  • Определите целевые показатели надежности и восстановления: ознакомьтесь ссоглашениями об уровне обслуживания Azure (SLA). Выведите цель показателя уровня обслуживания (SLO) для учетной записи хранения. Например, на SLO может повлиять выбранная вами конфигурация избыточности. Рассмотрим влияние регионального сбоя, потенциал для потери данных и время, необходимое для восстановления доступа после сбоя. Кроме того, рассмотрите возможность доступности всех внутренних зависимостей, которые вы определили как часть анализа режима сбоя.

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

  • Всегда используйте пакет SDK при написании пользовательского кода для взаимодействия с хранилищем BLOB-объектов. Используйте клиентскую библиотеку хранилища BLOB-объектов Azure для управления контейнерами и BLOB-объектами в них. Пакет SDK имеет встроенную временную обработку ошибок для минимизации пользовательской логики повторных попыток.

  • Разработка приложений для использования дополнительных параметров чтения: разработка приложений для переключения на чтение данных из дополнительного региона, если основной регион становится недоступным по какой-либо причине. Для этого требуется геоизбыточное хранилище (RA-GRS) или геоизбыточное хранилище для чтения (RA-GZRS) для чтения. Обе конфигурации предоставляют доступ только для чтения к данным во вторичном регионе. Если первичные и вторичные операции чтения завершаются сбоем, обеспечьте плавное снижение функциональности в вашем приложении. Например, покажите стандартное изображение-заполнитель для операции, в которой не удалось извлечь изображение продукта.

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

  • Создайте план восстановления: рассмотрите возможности защиты данных, операции резервного копирования и восстановления или процедуры отработки отказа. Подготовьтесь к потенциальным потерям данных и несогласованности данных и затратам времени и стоимости переключения на резервные системы. Дополнительные сведения см. в рекомендациях по разработке стратегии аварийного восстановления.

  • Отслеживайте потенциальные проблемы доступности: подпишитесь на панель мониторинга работоспособности служб Azure , чтобы отслеживать потенциальные проблемы с доступностью. Используйте метрики хранилища в Azure Monitor и журналах диагностики для изучения оповещений.

  • Периодически анализируйте ресурсы данных: используйте обнаружение службы хранилища Azure и Azure Copilot для анализа конфигураций избыточности для оптимизации.

Рекомендации по настройке

Recommendation Benefit
Настройте учетную запись для резервирования.

Для обеспечения максимальной доступности и долговечности настройте учетную запись с использованием хранилища, избыточного между зонами (ZRS) или GZRS.

При использовании избыточности GZRS можно достичь наиболее оптимального показателя RPO, включив геоприоритетную репликацию.
Избыточность защищает данные от непредвиденных сбоев. Параметры конфигурации ZRS и GZRS реплицируются в разных зонах доступности и позволяют приложениям продолжать чтение данных во время сбоя. Дополнительные сведения см. в разделе "Устойчивость и доступность по сценариям сбоям" ипараметрам устойчивости и доступности.
Прежде чем инициировать переключение при отказе или восстановление после сбоя, оцените потенциал потери данных, проверив значение свойства времени последней синхронизации. Эта рекомендация применяется только к конфигурациям GRS и GZRS. Это свойство помогает оценить, сколько данных может быть потеряно при переключении на резервную копию учетной записи.

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

Параметр управления версиями автоматически отслеживает изменения, внесенные в BLOBы. Этот параметр позволяет восстановить блоб до его предыдущего состояния.

Параметр восстановления на определенный момент времени защищает от случайного удаления или повреждения блобов и позволяет восстановить данные блобов в более раннее состояние.

Дополнительные сведения см. в статье Общие сведения о защите данных.
Настройте архивное резервное копирование для Azure Blob в рамках вашей стратегии резервного копирования. Резервное копирование в защищенном хранилище позволяет защитить BLOB-данные от вымогательского ПО, других вредоносных атак или потери исходных данных. Данные копируются и хранятся в хранилище резервных копий (внесайтовая копия данных), которые могут храниться до 10 лет. Если какая-либо потеря данных происходит в исходной учетной записи, можно активировать восстановление в альтернативной учетной записи и получить доступ к данным. Узнайте больше о поддерживаемости резервного копирования в хранилище с помощью Azure Backup.

Security

Цель компонента "Безопасность" — обеспечить конфиденциальности, целостности и доступности гарантии рабочей нагрузки.

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

Контрольный список разработки рабочей нагрузки

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

  • Просмотрите базовые показатели безопасности для службы хранилища Azure. Чтобы приступить к работе, сначала просмотрите базовые показатели безопасности для хранилища.

  • Используйте сетевые элементы управления для ограничения входящего трафика и исходящего трафика: отключите весь общедоступный трафик в учетную запись хранения. Используйте сетевые элементы управления учетной записью для предоставления минимального уровня доступа, необходимого пользователям и приложениям. Дополнительные сведения см. в статье "Как приблизиться к сетевой безопасности для учетной записи хранения".

  • Уменьшите область атаки: предотвращение анонимного доступа, доступа к ключу учетной записи или доступа через небезопасные подключения (HTTP) могут уменьшить область атаки. Обнаружение службы хранилища Azure можно использовать с помощью Azure Copilot для выявления этих угроз безопасности во всех учетных записях. Требовать от клиентов отправлять и получать данные с помощью последней версии протокола TLS.

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

  • Защита конфиденциальной информации: защищайте конфиденциальные данные, такие как ключи учетной записи и маркеры общего доступа с подписью. Хотя использование этих форм авторизации обычно не рекомендуется, следует менять их, устанавливать срок действия и безопасно хранить.

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

  • Защита критически важных объектов: применение политик неизменяемости для защиты критически важных объектов. Политики защищают блобы, хранящиеся для юридических целей, соблюдения нормативных требований или других бизнес-целей, от изменения или удаления. Настройка удержаний для заданных периодов времени или до тех пор, пока ограничения не будут отменены администратором.

  • Обнаружение угроз. Включите Microsoft Defender для хранилища для обнаружения угроз. Оповещения системы безопасности активируются при возникновении аномальных действий. Оповещения уведомляют администраторов подписок по электронной почте с подробными сведениями о подозрительных действиях и рекомендациях по изучению и устранению угроз.

Рекомендации по настройке

Recommendation Benefit
Отключите анонимный доступ на чтение к контейнерам и BLOB-объектам. Если анонимный доступ разрешен для учетной записи хранения, пользователь с соответствующими разрешениями может изменить параметр анонимного доступа контейнера, чтобы обеспечить анонимный доступ к данным в этом контейнере.
Примените блокировку Azure Resource Manager к учетной записи хранения. Блокировка учетной записи предотвращает удаление и причинение потери данных.
Отключите трафик к общедоступным конечным точкам учетной записи хранения. Создайте частные конечные точки для клиентов, работающих в Azure. Включите общедоступную конечную точку, только если клиентам и службам, внешним в Azure, требуется прямой доступ к учетной записи хранения. Включите правила брандмауэра, ограничивающие доступ к определенным виртуальным сетям. Начните с нуля доступа, а затем постепенно авторизуйте самые низкие уровни доступа, необходимые для клиентов и служб, чтобы свести к минимуму риск создания ненужных открытий для злоумышленников.
Авторизация доступа с помощью управления доступом на основе ролей Azure (RBAC). При использовании RBAC пароли или ключи не могут быть скомпрометированы. Объект безопасности (пользователь, группа, управляемое удостоверение или сервис-принципал) проходит проверку подлинности с помощью Microsoft Entra ID для возврата токена OAuth 2.0. Токен используется для авторизации запроса к Blob-хранилищу.
Запретить авторизацию общего ключа. Это отключает не только доступ к ключу учетной записи, но и токены общего доступа службы и учетной записи, поскольку они основаны на ключах учетной записи. Разрешены только защищенные запросы, авторизованные с идентификатором Microsoft Entra.
Рекомендуется не использовать ключ учетной записи. Если вы должны использовать ключи учетных записей, сохраните их в Key Vault и убедитесь, что их периодически повторно создайте. Key Vault позволяет извлекать ключи во время выполнения, а не сохранять их с помощью приложения. Key Vault также упрощает смену ключей без прерывания работы с приложениями. Смена ключей учетной записи периодически снижает риск предоставления данных вредоносным атакам.
Рекомендуется не использовать маркеры подписи общего доступа. Определите политику и действия по истечении срока действия SAS для управления тем, как такие маркеры вне политики обрабатываются путем ведения журнала их использования или явной блокировки.

Если необходимо создать одну, просмотрите этот список рекомендаций по подписям для совместного доступа перед созданием и распространением.
Строгая политика управления помогает предотвратить чрезмерно длительные или неправильно настроенные токены, которые могут привести к рискам для безопасности или соответствия.
Настройте учетную запись хранения , чтобы клиенты могли отправлять и получать данные с помощью минимальной версии TLS 1.2. TLS 1.2 является более безопасным и быстрым, чем TLS 1.0 и 1.1, что не поддерживает современные алгоритмы шифрования и наборы шифров.
Рекомендуется использовать собственный ключ шифрования для защиты данных в учетной записи хранения. Дополнительные сведения см. в статье Ключи, управляемые клиентом, для шифрования службы хранилища Azure. Управляемые клиентом ключи обеспечивают большую гибкость и контроль. Например, вы можете хранить ключи шифрования в Key Vault и автоматически повернуть их.

Оптимизация затрат

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

Принципы проектирования оптимизации затрат обеспечивают высокоуровневую стратегию проектирования для достижения этих целей и компромиссов при необходимости в техническом проектировании, связанном с хранилищем BLOB-объектов и его средой.

Контрольный список разработки рабочей нагрузки

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

  • Определите счетчики, используемые для вычисления счета: счетчики используются для отслеживания объема данных, хранящихся в учетной записи (емкости данных), и количества и типа операций, выполняемых для записи и чтения данных. Существуют также счетчики, связанные с использованием дополнительных функций, таких как теги индекса BLOB-объектов, инвентаризация BLOB-объектов, поддержка ленты изменений, области шифрования и поддержка протокола SFTP. Дополнительные сведения см. в разделе "Как взимается плата за хранилище BLOB-объектов".

  • Изучите цену каждого счетчика: обязательно используйте соответствующую страницу ценообразования и примените соответствующие параметры на этой странице. Дополнительные сведения см. в разделе "Поиск цены на единицу" для каждого счетчика. Рассмотрим количество операций, связанных с каждой ценой. Например, цена, связанная с операциями записи и чтения, применяется к 10 000 операциям. Чтобы определить цену отдельной операции, разделите указанную цену на 10 000.

  • Оцените стоимость емкости и операций. Вы можете моделировать затраты, связанные с хранилищем данных, входящего трафика и исходящего трафика с помощью калькулятора цен Azure. Используйте поля для сравнения затрат, связанных с различными регионами, типами учетных записей, типами пространств имен и конфигурациями избыточности. В некоторых сценариях можно использовать примеры вычислений и листов, доступные в документации Майкрософт. Например, можно оценить стоимость архивации данных или оценить стоимость использования команды AzCopy для передачи больших двоичных объектов.

  • Выберите модель выставления счетов для емкости: оцените, является ли использование модели на основе обязательств более экономичной, чем использование модели на основе потребления. Если вы не уверены, сколько ресурсов требуется, можно начать с модели на основе потребления, отслеживать метрики емкости, а затем оценивать позже.

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

  • Выберите наиболее экономичный уровень доступа по умолчанию: если уровень не указан при каждой отправке BLOB-объектов, они будут использовать уровень доступа, указанный по умолчанию. Изменение параметра уровня доступа по умолчанию аккаунта хранилища применяется ко всем Blob в аккаунте, в которых уровень доступа не был установлен явно. Эта стоимость может быть значительной, если вы собрали большое количество блобов. Дополнительные сведения о том, как изменение уровня влияет на каждый существующий большой двоичный объект, см. в разделе "Изменение уровня доступа большого двоичного объекта".

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

  • Укажите план управления жизненным циклом данных: оптимизируйте затраты на транзакцию и емкость, используя преимущества уровней доступа и управления жизненным циклом. Данные, используемые реже, должны размещаться на более холодных уровнях доступа, а данные, к которым часто обращаются, должны размещаться на более теплых уровнях доступа.

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

    Например, если включить функцию инвентаризации объектов BLOB, вы будете платить за количество отсканированных объектов. При использовании тегов индекса BLOB, плата взимается за количество тегов индекса. Если вы включите поддержку SFTP, с вас будет взиматься почасовая плата, даже если нет передачи SFTP. Если вы решите не использовать функцию, убедитесь, что она отключена, потому что некоторые функции автоматически активируются при создании учетной записи.

  • Создание охранников: создание бюджетов на основе подписок и групп ресурсов. Используйте политики управления для ограничения типов ресурсов, конфигураций и расположений. Кроме того, используйте RBAC для блокировки действий, которые могут привести к перерасходу.

  • Мониторинг затрат: обеспечение того, чтобы затраты оставались в бюджетах, сравнивали затраты с прогнозами и видели, где происходит перерасход. С помощью области анализа затрат на портале Azure можно отслеживать затраты. Вы также можете экспортировать данные о затратах в учетную запись хранения и анализировать эти данные с помощью Excel или Power BI.

  • Мониторинг использования: непрерывно отслеживайте шаблоны использования и обнаруживайте неиспользуемые или неиспользуемые учетные записи и контейнеры. Используйте аналитику хранилища для учетных записей удостоверений без или низкого использования. Используйте Azure Storage Discovery и Azure Copilot, чтобы найти финансовые неэффективности, такие как малоиспользуемое хранилище, размещенное на дорогих уровнях доступа. Вы также можете включить отчеты инвентаризации BLOB-объектов и использовать такие средства, как Azure Databricks или Azure Synapse Analytics и Power BI для анализа данных о затратах. Следите за неожиданным увеличением емкости, что может указывать на то, что вы собираете многочисленные файлы журнала, версии BLOB или обратимо удаленные объекты BLOB. Разработайте стратегию истечения срока действия или перехода объектов на более экономичные уровни доступа. План истечения срока действия объектов или перемещение объектов на более доступные уровни доступа.

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

Рекомендации по настройке

Recommendation Benefit
Перед перемещением на более холодные уровни упакуйте небольшие файлы в более крупные файлы. Вы можете использовать такие форматы файлов, как TAR или ZIP. Более холодные уровни имеют более высокие затраты на передачу данных. Имея меньше больших файлов, можно уменьшить количество операций, необходимых для передачи данных.
При повторном удалении больших двоичных объектов из архивного хранилища используйте повторное восстановление с приоритетом уровня "стандартный приоритет". Используйте высокоприоритетное восстановление только для чрезвычайных ситуаций восстановления данных. Дополнительные сведения см. в разделе "Восстановление архивного объекта и переход на онлайн-уровень" Высокоприоритетная ревитализация из архивного уровня может привести к счетам выше, чем обычно.
Уменьшите затраты на использование журналов ресурсов, выбрав соответствующее расположение хранилища журналов и управляя периодами хранения журналов. Если вы планируете запрашивать журналы только иногда (например, запрашивать журналы для аудита соответствия требованиям), рассмотрите возможность отправки журналов ресурсов в учетную запись хранения вместо отправки их в рабочую область журналов Azure Monitor. Для анализа журналов можно использовать бессерверное решение запросов, например Azure Synapse Analytics. Дополнительные сведения см. в разделе "Оптимизация затрат для редких запросов". Используйте политики управления жизненным циклом для удаления или архивации журналов. Хранение журналов ресурсов в учетной записи хранения для последующего анализа может быть более дешевым вариантом. Использование политик управления жизненным циклом для управления хранением журналов в учетной записи хранения предотвращает создание большого количества файлов журналов с течением времени, что может привести к ненужным затратам на емкость.
Если вы включите управление версиями, используйте политику управления жизненным циклом для автоматического удаления старых версий BLOB-объектов. Каждая операция записи в большой двоичный объект создает новую версию. Это увеличивает затраты на емкость. Вы можете держать затраты под контролем, удаляя версии, которые больше не нужны.
Если у вас включено управление версиями, поместите часто перезаписываемые блобы в учетную запись, в которой управление версиями не включено. Каждый раз, когда BLOB перезаписывается, добавляется новая версия, что приводит к увеличению расходов на хранилище. Чтобы сократить расходы на емкость, храните часто перезаписываемые данные в отдельной учетной записи хранения с отключенным изменением версий.
Если вы включили функцию обратимого удаления, разместите объекты BLOB, которые часто перезаписываются, в учетной записи, где функция обратимого удаления не включена. Задайте сроки хранения. Попробуйте начать с короткого периода хранения, чтобы лучше понять, как функция влияет на ваш счет. Минимальный рекомендуемый срок хранения составляет семь дней. Каждый раз, когда blob перезаписывается, создается новый снимок состояния. Причину увеличения издержек на емкость может быть трудно определить, так как создание этих моментальных снимков не отображается в журналах. Чтобы сократить расходы на емкость, храните данные, которые часто перезаписываются, в отдельной учетной записи хранилища с отключенной функцией обратимого удаления. Период хранения предотвращает накопление мягко удаленных объектов и увеличение стоимости емкости.
Включите поддержку SFTP, только если она используется для передачи данных. Включение конечной точки SFTP взимает почасовую стоимость. Отключая поддержку SFTP и затем включая её при необходимости, вы можете избежать начисления пассивных расходов на вашем аккаунте.
Отключите все области шифрования, которые не нужны, чтобы избежать ненужных расходов. Шифрование предполагает ежемесячную плату.

Операционное превосходство

Операционное совершенство в основном сосредоточено на процедурах, касающихся практик разработки , наблюдаемости и управления релизами.

Принципы проектирования операционной эффективности обеспечивают высокоуровневую стратегию проектирования для достижения этих целей в соответствии с операционными требованиями рабочей нагрузки.

Контрольный список разработки рабочей нагрузки

Начните вашу стратегию проектирования на основе списка проверки дизайна для операционного совершенства для определения процессов обозримости, тестирования и развертывания, связанных с конфигурацией Blob-хранилища.

  • Создание планов обслуживания и аварийного восстановления. Учитывайте функции защиты данных, операции резервного копирования и восстановления, а также процедуры отказоустойчивости. Подготовьтесь к потенциальным потерям данных и несогласованности данных и затратам времени и стоимости переключения на резервные системы.

  • Отслеживайте работоспособность учетной записи хранения. Создание панелей мониторинга аналитики хранилища для мониторинга доступности, производительности и метрик устойчивости. Настройте оповещения для выявления и устранения проблем в системе перед тем, как клиенты заметят их. Используйте параметры диагностики для маршрутизации журналов ресурсов в рабочую область журналов Azure Monitor. Затем журналы можно запрашивать для более глубокого изучения оповещений.

  • Включите отчеты инвентаризации BLOB-объектов: включите отчеты инвентаризации BLOB-объектов для проверки хранения, юридического удержания или состояния шифрования содержимого учетной записи хранения. Вы также можете использовать отчеты инвентаризации BLOB-объектов, чтобы понять общий размер данных, их возраст, распределение по уровням или другие атрибуты ваших данных. Используйте такие средства, как Azure Databricks или Azure Synapse Analytics и Power BI, чтобы лучше визуализировать данные инвентаризации и создавать отчеты для заинтересованных лиц.

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

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

Рекомендации по настройке

Recommendation Benefit
Используйте инфраструктуру в качестве кода (IaC), чтобы определить сведения о учетных записях хранения в шаблонах Azure Resource Manager (шаблоны ARM),Bicep или Terraform. Вы можете использовать существующие процессы DevOps для развертывания новых учетных записей хранения и использования политики Azure для применения их конфигурации.
Используйте аналитику хранилища для отслеживания работоспособности и производительности учетных записей хранения. Аналитика хранилища предоставляет единое представление о сбоях, производительности, доступности и емкости для всех учетных записей хранения. Вы можете отслеживать работоспособность и операцию каждой учетной записи. Легко создавать панели мониторинга и отчеты, которые заинтересованные лица могут использовать для отслеживания работоспособности учетных записей хранения.
Воспользуйтесь преимуществами возможностей региональной автоматизации с помощью действий службы хранилища Azure для единого управления жизненным циклом данных, которое автоматически сегментирует данные на основе шаблонов доступа и удаляет просроченное содержимое в соответствии с политиками хранения в соответствии с требованиями к месту хранения данных. Позволяет автоматически управлять хранилищем и политиками жизненного цикла в более географических регионах, уменьшая затраты на работу вручную для глобальных организаций.

Эффективность производительности

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

Принципы проектирования эффективности производительности предлагают высокоуровневую стратегию для достижения этих целей по емкости с учетом ожидаемого использования.

Контрольный список разработки рабочей нагрузки

Начните стратегию проектирования на основе контрольного списка проектирования для эффективности производительности. Определите начальный уровень, основанный на ключевых показателях производительности конфигурации хранилища Blob.

  • Планирование масштабирования: Понимание целевых показателей масштабирования для учетных записей хранения.

  • Выберите оптимальный тип учетной записи хранения: если для рабочей нагрузки требуется высокая скорость транзакций, небольшие объекты и согласованно низкая задержка транзакций, а затем рассмотрите возможность использования учетных записей хранения BLOB-объектов класса Premium. Стандартная учетная запись общего назначения версии 2 наиболее подходит в большинстве случаев.

  • Уменьшите расстояние между клиентом и сервером: поместите данные в регионы, ближайшие к подключению клиентов (в идеале в одном регионе). Оптимизируйте для клиентов в удалённых регионах, используя репликацию объектов или сеть доставки содержимого. Конфигурации сети по умолчанию обеспечивают лучшую производительность. Измените параметры сети только для повышения безопасности. Как правило, параметры сети не снижают расстояние между поездками и не повышают производительность.

  • Выберите эффективную схему именования: уменьшите задержку операций перечисления, создания списка, запроса и чтения с помощью префиксов хэш-индексов, расположенных ближе к началу ключа сегмента BLOB (учетная запись, контейнер, виртуальный каталог или имя бинарного объекта). Эта схема в основном выгодна для учетных записей с плоским пространством имен.

  • Оптимизируйте производительность клиентов данных: выберите средство передачи данных , наиболее подходящее для размера, частоты передачи данных и пропускной способности рабочих нагрузок. Некоторые средства, такие как AzCopy , оптимизированы для производительности и требуют небольшого вмешательства. Рассмотрим факторы, влияющие на задержку, и для точной настройки производительности просмотрите рекомендации по оптимизации производительности, опубликованные с каждым инструментом.

  • Оптимизируйте производительность пользовательского кода: рекомендуется использовать пакеты SDK для хранилища вместо создания собственных оболочк для операций REST BLOB-объектов. Пакеты SDK Azure оптимизированы для повышения производительности и предоставляют механизмы для точной настройки производительности. Перед созданием приложения просмотрите контрольный список производительности и масштабируемости для хранилища BLOB-объектов. Рекомендуется использовать ускорение запросов , чтобы отфильтровать нежелательные данные во время запроса хранилища и обеспечить клиентам возможность без необходимости передавать данные по сети.

  • Сбор данных о производительности: мониторьте учетную запись хранения, чтобы выявить узкие места производительности, возникающие при регулировании. Дополнительные сведения см. в разделе "Мониторинг службы хранилища" с помощью Monitor Storage Insights. Используйте метрики и журналы. Метрики предоставляют такие числа, как ошибки ограничения скорости. Журналы описывают действия. Если отображаются метрики регулирования, можно использовать журналы для идентификации клиентов, получающих ошибки регулирования. Дополнительные сведения см. в разделе "Аудит операций плоскости данных".

Рекомендации по настройке

Recommendation Benefit
Создавайте учетные записи хранения в том же регионе, где размещаются зависимые ресурсы. Для приложений, не размещенных в Azure, таких как мобильные приложения или локальные корпоративные службы, найдите учетную запись хранения в регионе ближе к этим клиентам. Дополнительные сведения см. в географических регионах Azure.

Если клиенты из другого региона не требуют одинаковых данных, создайте отдельную учетную запись в каждом регионе.

Если клиентам из другого региона требуются только некоторые данные, рекомендуется использовать политику репликации объектов для асинхронного копирования соответствующих объектов в учетную запись хранения в другом регионе.
Уменьшение физического расстояния между учетной записью хранения и виртуальными машинами, службами и локальными клиентами может повысить производительность и уменьшить задержку в сети. Сокращение физического расстояния также снижает затраты на приложения, размещенные в Azure, так как использование пропускной способности в одном регионе является бесплатным.
Для широкого потребления веб-клиентами (потоковое видео, аудио или статический контент веб-сайта) рекомендуется использовать сеть доставки содержимого через Azure Front Door. Содержимое доставляется клиентам быстрее, так как оно использует глобальную сеть Microsoft edge сотнями глобальных и локальных точек присутствия по всему миру.
Добавьте хэш-последовательность символов (например, три цифры) в ключ раздела BLOB как можно раньше. Ключ секции — это имя учетной записи, имя контейнера, имя виртуального каталога и имя объекта BLOB. Если вы планируете использовать метки времени в именах, попробуйте добавить значение секунд в начало этой метки. Дополнительные сведения см. в разделе "Секционирование". При использовании хэш-кода или значения времени в секундах, ближайшего к началу ключа раздела, сокращается время, необходимое для выполнения запросов и чтения BLOB.
При загрузке блобов или блоков используйте размер блоба или блока, превышающий 256 КиБ. Размеры блобов или блоков выше 256 КИБ используют преимущества улучшений производительности платформы, специально предназначенные для более крупных блобов и размеров блоков.

Компромиссы

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

Уровни доступа и оптимизация затрат

  • Холодные уровни доступа: Перемещение данных на более холодные уровни доступа (холодные, холодные или архивные) может снизить затраты на хранение, особенно для редко доступных данных. Уровень архивации обеспечивает низкую стоимость хранения, но требует восстановления данных для доступа, что занимает время и влечет дополнительные затраты.

    Рассмотрим недостатки уровней охлаждения, включая более высокие затраты на доступ и время извлечения. Уровень архива может занять значительное время при восстановлении данных с использованием стандартного приоритета. Затраты на частые изменения уровня могут превышать экономию хранилища, если шаблоны доступа непредсказуемы. Для критически важных данных, которым требуется немедленный доступ, горячий уровень обеспечивает самый быстрый доступ, но при более высоких затратах на хранение. Тщательно оцените шаблоны доступа, чтобы избежать ненужных расходов от частых переходов между уровнями и платежей за раннее удаление.

  • Политики управления жизненным циклом: Автоматические политики жизненного цикла могут оптимизировать затраты, перемещая данные на соответствующие уровни на основе возрастных или доступных шаблонов. Эти политики уменьшают ручные операционные накладные расходы и обеспечивают постоянную оптимизацию затрат в аккаунтах хранения.

    В качестве недостатка, чрезмерно агрессивные политики жизненного цикла могут перемещать часто используемые данные на более холодные уровни, что приводит к повышению затрат на доступ и снижению производительности. Политики, которые слишком консервативны, могут хранить данные на дорогих уровнях дольше, чем необходимо. Отслеживайте шаблоны доступа и настраивайте политики на основе фактических данных об использовании, а не предположений.

Избыточность данных и региональное распределение

Надежная стратегия избыточности обеспечивает устойчивость и доступность данных, но включает в себя компромиссы по затратам и сложности. Геоизбыточное хранилище (GRS) и геоизбыточное хранилище (GZRS) обеспечивают защиту от региональных сбоев, но значительно дороже локально избыточного хранилища (LRS). Зонально-избыточное хранилище (ZRS) предлагает уровень защиты от отказов зон доступности в рамках региона.

Рассмотрим недостатки более высокого уровня избыточности. GRS и GZRS требуют синхронизации данных между регионами, что может привести к небольшим задержкам в согласованности данных. Стоимость может быть выше, чем LRS. Для приложений, которые могут терпеть некоторые потери данных или иметь альтернативные стратегии резервного копирования, LRS может обеспечить достаточную защиту при более низкой стоимости. Оцените цели времени восстановления (RTO) и цели точки восстановления (RPO), чтобы определить соответствующий уровень избыточности.

Политики Azure

Azure предоставляет широкий набор встроенных политик, связанных с хранилищем BLOB-объектов и его зависимостями. Некоторые из предыдущих рекомендаций можно проверять с помощью политик Azure. Например, можно проверить, можно ли:

  • Анонимный общедоступный доступ на чтение к контейнерам и BLOB-объектам не включен.
  • Параметры диагностики для BLOB-хранилища настроены для потоковой передачи журналов ресурсов в рабочую область журналов Azure Monitor.
  • Принимаются только запросы из безопасных подключений (HTTPS).
  • Политика истечения срока действия общей ключевой подписи включена.
  • Репликация объектов между клиентами отключена.
  • Авторизация общего ключа отключена.
  • Правила брандмауэра сети применяются к учетной записи.

Для комплексного управления ознакомьтесь со встроенными определениями политики Azure для хранилища и других политик, которые могут повлиять на безопасность вычислительного слоя.

Рекомендации Помощника по Azure

Помощник по Azure — это персонализированный облачный консультант, который поможет вам следовать рекомендациям по оптимизации развертываний Azure.

Дополнительные сведения см. в разделе Помощника по Azure.

Следующий шаг

Дополнительные сведения о хранилище BLOB-объектов см. в документации по хранилищу BLOB-объектов.