Обзор Azure Well-Architected Framework — Шлюз приложений Azure версии 2

В этой статье приведены рекомендации по архитектуре для Шлюз приложений Azure семейства SKU версии 2. Руководство основано на пяти основных принципах архитектуры:

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

Предварительные требования

надежность;

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

Контрольный список проектирования

При выборе вариантов проектирования для Шлюз приложений ознакомьтесь с принципами проектирования надежности.

  • По возможности разверните экземпляры в конфигурации с поддержкой зон.
  • Используйте Шлюз приложений с Брандмауэр веб-приложений (WAF) в виртуальной сети для защиты входящего HTTP/S трафика из Интернета.
  • В новых развертываниях используйте Шлюз приложений Azure версии 2, если нет веских причин для использования Шлюз приложений Azure версии 1.
  • Планирование обновлений правил
  • Использование проб работоспособности для обнаружения недоступности серверной части
  • Проверка влияния параметров интервала и порога на пробы работоспособности
  • Проверка нисходящих зависимостей с помощью конечных точек работоспособности

Рекомендации

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

Рекомендация Преимущество
Планирование обновлений правил Запланируйте достаточно времени для обновлений, прежде чем получать доступ к Шлюз приложений или вносить дальнейшие изменения. Например, удаление серверов из внутреннего пула может занять некоторое время, так как им придется истощать существующие подключения.
Использование проб работоспособности для обнаружения недоступности серверной части Если Шлюз приложений используется для балансировки нагрузки входящего трафика по нескольким серверным экземплярам, рекомендуется использовать пробы работоспособности. Это гарантирует, что трафик не будет направляться на серверные серверы, которые не могут обрабатывать трафик.
Проверка влияния параметров интервала и порога на пробы работоспособности Проба работоспособности отправляет запросы к настроенной конечной точке через заданный интервал. Кроме того, существует пороговое значение неудачных запросов, которое будет допустимо до того, как серверная часть будет помечена как неработоспособная. Эти цифры представляют собой компромисс.

— Если задать более высокий интервал, на службу будет нагружена более высокая нагрузка. Каждый экземпляр Шлюз приложений отправляет собственные пробы работоспособности, поэтому 100 экземпляров каждые 30 секунд означает 100 запросов за 30 секунд.
— Установка более низкого интервала оставляет больше времени, прежде чем будет обнаружен сбой.
— Установка низкого порога неработоспособности может означать, что короткие временные сбои могут привести к сбою серверной части.
— Установка высокого порогового значения может занять больше времени, чтобы вывести серверную часть из ротации.
Проверка нисходящих зависимостей с помощью конечных точек работоспособности Предположим, что каждая серверная часть имеет собственные зависимости, чтобы обеспечить изоляцию сбоев. Например, приложение, размещенное за Шлюз приложений, может иметь несколько серверных компонентов, каждая из которых подключена к другой базе данных (реплика). При сбое такой зависимости приложение может работать, но не возвращает допустимые результаты. По этой причине конечная точка работоспособности в идеале должна проверять все зависимости. Помните, что если каждый вызов конечной точки работоспособности имеет прямой вызов зависимости, эта база данных будет получать 100 запросов каждые 30 секунд вместо 1. Чтобы избежать этого, конечная точка работоспособности должна кэшировать состояние зависимостей в течение короткого периода времени.
При использовании Azure Front Door и Шлюза приложений Azure для защиты приложений HTTP/S используйте политики в Azure Front Door и заблокируйте Шлюз приложений Azure, чтобы получать трафик только из Azure Front Door. Некоторые сценарии могут заставить вас реализовать правила специально для Шлюз приложений. Например, если требуются правила ModSec CRS 2.2.9, CRS 3.0 или CRS 3.1, эти правила можно реализовать только в Шлюз приложений. И наоборот, ограничение скорости и геофильтрация доступны только для Azure Front Door, а не для Шлюза приложений.

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

Безопасность

Безопасность является одним из наиболее важных аспектов любой архитектуры. Шлюз приложений предоставляет функции для использования как принципа минимальных привилегий, так и защиты в обороне. Рекомендуем ознакомиться с принципами проектирования безопасности.

Контрольный список проектирования

  • Настройка политики TLS для усиленной безопасности
  • Использование AppGateway для завершения TLS
  • Использование azure Key Vault для хранения сертификатов TLS
  • При повторном шифровании внутреннего трафика убедитесь, что сертификат внутреннего сервера содержит корневой и промежуточный центры сертификации (ЦС).
  • Использование соответствующего DNS-сервера для ресурсов внутреннего пула
  • Соблюдение всех ограничений NSG для Шлюз приложений
  • Не использовать определяемые пользователем маршруты в подсети Шлюз приложений
  • Помните о Шлюз приложений изменениях емкости при включении WAF.

Рекомендации

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

Рекомендация Преимущество
Настройка политики TLS для усиленной безопасности Настройте политику TLS для обеспечения дополнительной безопасности. Используйте последнюю версию политики TLS (AppGwSslPolicy20170401S). В ней реализована версия протокола TLS 1.2 и более надежные шифры.
Использование AppGateway для завершения TLS Использование Шлюз приложений для завершения TLS имеет ряд преимуществ:

— Производительность повышается, так как запросы, поступающие в разные серверные части, должны повторно проходить проверку подлинности в каждой серверной части.
— Более эффективное использование внутренних серверов, так как они не должны выполнять обработку TLS.
— Интеллектуальная маршрутизация путем доступа к содержимому запроса.
— упрощено управление сертификатами, так как сертификат необходимо установить только на Шлюз приложений.
Использование azure Key Vault для хранения сертификатов TLS Шлюз приложений интегрирована с Key Vault. Это обеспечивает более надежную безопасность, упрощает разделение ролей и обязанностей, поддержку управляемых сертификатов и упрощает процесс обновления и смены сертификатов.
При повторном шифровании внутреннего трафика убедитесь, что сертификат внутреннего сервера содержит корневой и промежуточный центры сертификации (ЦС). Сертификат TLS внутреннего сервера должен быть выдан хорошо известным центром сертификации. Если сертификат не был выдан доверенным ЦС, Шлюз приложений проверяет, был ли сертификат выдающего ЦС выдан доверенным ЦС, и т. д., пока не будет найден доверенный ЦС. Только после этого устанавливается безопасное подключение. В противном случае Шлюз приложений помечает серверную часть как неработоспособную.
Использование соответствующего DNS-сервера для ресурсов внутреннего пула Если внутренний пул содержит разрешаемое полное доменное имя, разрешение DNS основано на частной зоне DNS или настраиваемом DNS-сервере (если оно настроено в виртуальной сети) или использует dns, предоставляемый Azure по умолчанию.
Соблюдение всех ограничений NSG для Шлюз приложений Группы безопасности сети поддерживаются в Шлюз приложений подсети, но существуют некоторые ограничения. Например, запрещено взаимодействие с определенными диапазонами портов. Убедитесь, что вы понимаете последствия этих ограничений. Дополнительные сведения см. в разделе Группы безопасности сети.
Воздержаться от использования определяемых пользователем маршрутов в подсети шлюза приложений Использование определяемых пользователем маршрутов (UDR) в подсети Шлюз приложений может вызвать некоторые проблемы. Состояние работоспособности во внутренней части может быть неизвестным. Шлюз приложений журналы и метрики могут не создаваться. Если вы хотите просматривать сведения о работоспособности, журналах и метриках серверной части, не используйте определяемые пользователем маршруты в подсети Шлюза приложений. Если вашей организации требуется использовать определяемый пользователем маршрут в подсети Шлюз приложений, ознакомьтесь с поддерживаемыми сценариями. Дополнительные сведения см. в разделе Поддерживаемые определяемые пользователем маршруты.
Помните об изменениях емкости Шлюз приложений при включении WAF. Если WAF включен, каждый запрос должен быть буферизованной Шлюз приложений до тех пор, пока он не будет полностью доставлен, и проверка, если запрос соответствует любому нарушению правил в наборе основных правил, а затем перенаправлять пакет на серверные экземпляры. При отправке больших файлов (размером более 30 МБ) это может привести к значительной задержке. Так как Шлюз приложений требования к емкости в WAF отличаются, не рекомендуется включать WAF на Шлюз приложений без надлежащего тестирования и проверки.

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

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

Определения политик

  • Брандмауэр веб-приложений (WAF) должен быть включен для Шлюз приложений. Разверните Брандмауэр веб-приложения Azure (WAF) перед общедоступными веб-приложениями для дополнительной проверки входящего трафика. Брандмауэр веб-приложения (WAF) обеспечивает централизованную защиту веб-приложений от распространенных эксплойтов и уязвимостей, включая внедрение кода SQL, межсайтовые сценарии, а также выполнение локальных и удаленных файлов. Вы также можете ограничить доступ к веб-приложениям по странам или регионам, диапазонам IP-адресов и другим параметрам HTTP(s) с помощью настраиваемых правил.
  • Брандмауэр веб-приложений (WAF) должен использовать указанный режим для Шлюз приложений. Требует включения режима "Обнаружение" или "Предотвращение" во всех политиках брандмауэра веб-приложения для Шлюза приложений.
  • Защита от атак DDoS Azure должна быть включена. Защита от атак DDoS должна быть включена для всех виртуальных сетей с подсетью, которая является частью шлюза приложений с общедоступным IP-адресом.

Все встроенные определения политик, связанные с сетью Azure, перечислены в разделе Встроенные политики — сеть.

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

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

Контрольный список проектирования

  • Ознакомьтесь с ценами на Шлюз приложений
  • Проверка недостаточно используемых ресурсов
  • Остановка Шлюз приложений экземпляров, которые не используются
  • Создание политики масштабирования и горизонтального увеличения масштаба
  • Просмотр метрик потребления в разных параметрах

Рекомендации

Ознакомьтесь со следующей таблицей рекомендаций по оптимизации конфигурации Шлюз приложений для оптимизации затрат.

Рекомендация Преимущество
Ознакомьтесь с ценами на Шлюз приложений Сведения о ценах на Шлюз приложений см. в разделе Общие сведения о ценах на Шлюз приложений Azure и Брандмауэр веб-приложений. Вы также можете использовать калькулятор цен.

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

Сведения о том, как останавливать и запускать экземпляры, см. в этих статьях.
- Stop-AzApplicationGateway
- Start-AzApplicationGateway
Создание политики масштабирования и горизонтального увеличения масштаба Политика горизонтального масштабирования гарантирует, что будет достаточно экземпляров для обработки входящего трафика и пиков. Кроме того, у вас есть политика масштабирования, которая гарантирует сокращение числа экземпляров при снижении спроса. Рассмотрите выбор размера экземпляра. Размер может значительно повлиять на стоимость. Некоторые рекомендации описаны в разделе Оценка количества экземпляров Шлюз приложений.

Дополнительные сведения см. в статье Что такое Шлюз приложений Azure версии 2?
Просмотр метрик потребления в разных параметрах Счета выставляются на основе лимитных экземпляров Шлюз приложений на основе метрик, отслеживаемых Azure. Оцените различные метрики и единицы емкости и определите факторы затрат. Дополнительные сведения см. в статье Управление затратами и выставление счетов Майкрософт.

Следующие метрики являются ключевыми для Шлюз приложений. Эти сведения можно использовать для проверки соответствия количества подготовленных экземпляров объему входящего трафика.

— Оценочные единицы емкости
— Фиксированные оплачиваемые единицы емкости
— Текущие единицы емкости

Дополнительные сведения см. в разделе Шлюз приложений метрики.

Убедитесь, что вы учитываете затраты на пропускную способность.

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

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

эффективность работы;

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

Контрольный список проектирования

  • Мониторинг метрик емкости
  • Включение диагностика в Шлюз приложений и Брандмауэр веб-приложений (WAF)
  • Использование Аналитики сети Azure Monitor
  • Сопоставление параметров времени ожидания с серверным приложением
  • Мониторинг проблем с конфигурацией Key Vault с помощью Помощника по Azure
  • Настройка и мониторинг ограничений портов SNAT
  • Учитывайте ограничения портов SNAT при проектировании

Рекомендации

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

Рекомендация Преимущество
Мониторинг метрик емкости Используйте эти метрики в качестве индикаторов использования подготовленной емкости Шлюз приложений. Настоятельно рекомендуется настроить оповещения о емкости. Дополнительные сведения см. в разделе Шлюз приложений поддержки большого трафика.
Устранение неполадок с помощью метрик Существуют и другие метрики, которые могут указывать на проблемы в Шлюз приложений или серверной части. Рекомендуется оценить следующие оповещения:

— Количество неработоспособных узлов
— Состояние ответа (измерения 4xx и 5xx);
— Состояние ответа серверной части (измерения 4xx и 5xx);
— Время отклика последнего байта серверной части
— общее время Шлюз приложений

Дополнительные сведения см. в разделе Метрики для Шлюз приложений.
Включение диагностика в Шлюз приложений и Брандмауэр веб-приложений (WAF) Журналы диагностики включают журналы брандмауэра, производительности и доступа, которые можно просматривать. Используйте эти журналы для управления и устранения проблем с экземплярами Шлюз приложений. Дополнительные сведения см. в статье Журналы работоспособности и диагностики серверной части для Шлюза приложений.
Использование Azure Monitor Network Insights Аналитика сети Azure Monitor предоставляет полное представление о работоспособности и метриках для сетевых ресурсов, включая Шлюз приложений. Дополнительные сведения и поддерживаемые возможности для Шлюз приложений см. в статье Аналитика сети Azure Monitor.
Сопоставление параметров времени ожидания с серверным приложением Убедитесь, что вы настроили параметры IdleTimeout в соответствии с характеристиками прослушивателя и трафика внутреннего приложения. Значение по умолчанию — четыре минуты, и его можно настроить до 30. Дополнительные сведения см. в разделе Сброс TCP Load Balancer и тайм-аут простоя.

Рекомендации по рабочей нагрузке см. в статье Мониторинг работоспособности приложения для обеспечения надежности.
Мониторинг проблем с конфигурацией Key Vault с помощью Помощника по Azure Шлюз приложений проверяет наличие обновленной версии сертификата в связанном Key Vault каждые 4 часа. Если он недоступен из-за неправильной конфигурации Key Vault, он регистрирует ошибку и отправляет соответствующую рекомендацию Помощника. Необходимо настроить оповещения Помощника на обновление и немедленно устранить такие проблемы, чтобы избежать проблем, связанных с управлением или плоскостью данных. Дополнительные сведения см. в разделе Исследование и устранение ошибок хранилища ключей. Чтобы настроить оповещение для этого конкретного случая, используйте тип рекомендации в качестве решения проблемы Azure Key Vault для Шлюз приложений.
Учитывайте ограничения портов SNAT в своей структуре Ограничения портов SNAT важны для внутренних подключений на Шлюз приложений. Существуют отдельные факторы, влияющие на то, как Шлюз приложений достигает предельного количества портов SNAT. Например, если серверная часть является общедоступным IP-адресом, ей потребуется собственный порт SNAT. Чтобы избежать ограничений портов SNAT, можно увеличить количество экземпляров на Шлюз приложений, увеличить масштаб серверных серверов до большего количества IP-адресов или переместить серверные серверы в ту же виртуальную сеть и использовать частные IP-адреса для серверных серверов.

Запросы в секунду (RPS) на Шлюз приложений будут затронуты при достижении предельного количества портов SNAT. Например, если Шлюз приложений достигает предельного количества портов SNAT, он не сможет открыть новое подключение к серверной части, и запрос завершится ошибкой.

Дополнительные рекомендации см. в статье Принципы обеспечения эффективности операций.

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

Уровень производительности

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

Контрольный список проектирования

  • Оценка числа экземпляров Шлюз приложений
  • Определение максимального числа экземпляров
  • Определение минимального числа экземпляров
  • Определение размера подсети Шлюз приложений
  • Воспользуйтесь преимуществами функций Шлюз приложений версии 2 для автоматического масштабирования и повышения производительности

Рекомендации

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

Рекомендация Преимущество
Оценка числа экземпляров Шлюз приложений Шлюз приложений версии 2 масштабируется на основе многих аспектов, таких как ЦП, пропускная способность сети, текущие подключения и многое другое. Чтобы определить приблизительное число экземпляров, учитывая следующие метрики:

Текущие единицы вычислений — указывает использование ЦП. 1 Шлюз приложений экземпляр составляет примерно 10 единиц вычислений.
Пропускная способность— Шлюз приложений экземпляр может обслуживать около 500 Мбит/с пропускной способности. Эти данные зависят от типа полезных данных.

Учитывайте это уравнение при вычислении количества экземпляров.
Приблизительное число экземпляров

После оценки числа экземпляров сравните это значение с максимальным числом экземпляров. Это указывает, насколько близко вы находитесь к максимальной доступной емкости.
Определение минимального числа экземпляров Для номера SKU Шлюз приложений версии 2 автоматическое масштабирование занимает некоторое время (около шести–семи минут), прежде чем дополнительный набор экземпляров будет готов обслуживать трафик. В течение этого времени при кратковременных пиковых скачках трафика следует ожидать временной задержки или потери трафика.

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

Проверьте текущие единицы вычислений за последний месяц. Эта метрика представляет использование ЦП шлюза. Чтобы определить минимальное число экземпляров, разделите пиковое использование на 10. Например, если среднее значение текущих единиц вычислений за последний месяц равно 50, задайте для минимального числа экземпляров значение 5.
Определение максимального числа экземпляров В качестве максимального числа экземпляров автомасштабирования рекомендуется значение 125. Убедитесь, что подсеть с Шлюз приложений имеет достаточно доступных IP-адресов для поддержки масштабируемого набора экземпляров.

Установка максимального числа экземпляров в 125 не влияет на затраты, так как плата взимается только за потребленную емкость.
Определение размера подсети Шлюз приложений Шлюз приложений требуется выделенная подсеть в виртуальной сети. Подсеть может содержать несколько экземпляров развернутого Шлюз приложений ресурса. Вы также можете развернуть другие Шлюз приложений ресурсы в этой подсети, версии 1 или SKU версии 2.

Ниже приведены некоторые рекомендации по определению размера подсети.

— Шлюз приложений использует один частный IP-адрес для каждого экземпляра и другой частный IP-адрес, если настроен частный интерфейсный IP-адрес.
— Azure резервирует пять IP-адресов в каждой подсети для внутреннего использования.
— Шлюз приложений (SKU "Стандартный" или WAF) может поддерживать до 32 экземпляров. Если вы используете 32 IP-адреса экземпляра + 1 частный интерфейсный IP-адрес + 5 зарезервированных ресурсов Azure, рекомендуется минимальный размер подсети /26. Так как номер SKU Standard_v2 или WAF_v2 поддерживает до 125 экземпляров, при этом рекомендуется использовать размер подсети /24.
— Если вы хотите развернуть дополнительные Шлюз приложений ресурсов в той же подсети, рассмотрите дополнительные IP-адреса, которые потребуются для максимального количества экземпляров как для стандартных, так и для стандартных версий 2.
Воспользуйтесь преимуществами автомасштабирования и производительности SKU версии 2 поддерживает автомасштабирование, благодаря чему Шлюз приложений может справляться с увеличением трафика. По сравнению с номером SKU версии 1 в версии 2 есть возможности, повышающие производительность рабочей нагрузки. Например, улучшенная производительность разгрузки TLS, более быстрое развертывание и обновление, избыточность между зонами и многое другое. Дополнительные сведения о функциях автомасштабирования см. в разделах Масштабирование Шлюз приложений версии 2 и WAF версии 2.

Если вы используете шлюз приложений версии 1, рассмотрите возможность миграции на SKU шлюза приложений версии 2. Дополнительные сведения см. в статье Миграция Шлюз приложений Azure и Брандмауэр веб-приложений с версии 1 на версию 2.

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

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

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

надежность;

Дополнительные ресурсы

Руководство по Центру архитектуры Azure

Дальнейшие действия