Поделиться через


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

В этой статье приведены рекомендации по архитектуре для семейства SKU Шлюз приложений Azure версии 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. В ней реализована версия протокола TLS 1.2 и более надежные шифры.
Использование AppGateway для завершения TLS Существуют преимущества использования Шлюз приложений для завершения TLS:

— производительность улучшается, так как запросы, поступающие в разные серверные серверы, должны повторно пройти проверку подлинности для каждой серверной части.
— Лучшее использование внутренних серверов, так как им не нужно выполнять обработку TLS
— Интеллектуальная маршрутизация путем доступа к содержимому запроса.
— Упрощенное управление сертификатами, так как сертификат необходимо установить только в Шлюз приложений.
Использование Azure Key Vault для хранения сертификатов TLS Шлюз приложений можно интегрировать с Key Vault. Это обеспечивает более надежную безопасность, упрощенное разделение ролей и обязанностей, поддержку управляемых сертификатов и более простой процесс продления и смены сертификатов.
При повторном шифровании внутреннего трафика убедитесь, что сертификат внутреннего сервера содержит как корневые, так и промежуточные центры сертификации (ЦС) Сертификат TLS серверного сервера должен выдаваться известным ЦС. Если сертификат не был выдан доверенным ЦС, Шлюз приложений проверяет, был ли сертификат выдан доверенным ЦС и т. д., пока не будет найден доверенный сертификат ЦС. Только после этого устанавливается безопасное подключение. В противном случае Шлюз приложений помечает серверную часть как неработоспособную.
Использование соответствующего DNS-сервера для ресурсов внутреннего пула Если серверный пул содержит разрешаемое полное доменное имя, разрешение DNS основано на частной зоне DNS или настраиваемом DNS-сервере (если настроено в виртуальной сети), или использует dns, предоставленный по умолчанию в Azure.
Соблюдайте все ограничения NSG для Шлюз приложений Группы безопасности сети поддерживаются в подсети Шлюз приложений, но существуют некоторые ограничения. Например, некоторые связи с определенными диапазонами портов запрещены. Убедитесь, что вы понимаете последствия этих ограничений. Дополнительные сведения см. в статье Политики конечных точек служб виртуальной сети (предварительная версия).
Воздержаться от использования определяемых пользователем пользователей в подсети шлюза приложений Использование определяемых пользователем маршрутов (UDR) в подсети Шлюз приложений может вызвать некоторые проблемы. Состояние работоспособности во внутренней части может быть неизвестно. Шлюз приложений журналы и метрики могут не создаваться. Если вы хотите просматривать сведения о работоспособности, журналах и метриках серверной части, не используйте определяемые пользователем маршруты в подсети Шлюза приложений. Если организациям требуется использовать 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 Azure Monitor Network Insights предоставляет комплексное представление о работоспособности и метрик для сетевых ресурсов, включая Шлюз приложений. Дополнительные сведения и поддерживаемые возможности для Шлюз приложений см. в статье "Аналитика сети Azure Monitor".
Сопоставление параметров времени ожидания с серверным приложением Убедитесь, что вы настроили параметры IdleTimeout для сопоставления прослушивателя и характеристик трафика серверного приложения. Значение по умолчанию имеет значение 4 минуты и может быть настроено не более 30. Дополнительные сведения см. в разделе Сброс TCP Load Balancer и тайм-аут простоя.

Рекомендации по работе с рабочими нагрузками см. в разделе "Мониторинг работоспособности приложений" для обеспечения надежности.
Мониторинг проблем с конфигурацией Key Vault с помощью Помощника по Azure Шлюз приложений проверяет наличие обновленной версии сертификата в связанном хранилище ключей каждые 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 не влияет на затраты, так как плата взимается только за потребляемую емкость.
Определение размера подсети Шлюз приложений Шлюз приложений требуется выделенная подсеть в виртуальной сети. Подсеть может иметь несколько экземпляров развернутого Шлюз приложений ресурса. Вы также можете развернуть другие Шлюз приложений ресурсы в этой подсети, номер SKU версии 1 или версии 2.

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

— Шлюз приложений использует один частный IP-адрес для каждого экземпляра и другой частный IP-адрес, если настроен частный интерфейсный IP-адрес.
— Azure резервирует пять IP-адресов в каждой подсети для внутреннего использования.
— Шлюз приложений (SKU уровня "Стандартный" или "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.

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

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

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

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

Надежность

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

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

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