Поддержка больших объемов трафика Шлюза приложений

Примечание.

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

Шлюз приложений можно использовать в сочетании с брандмауэром веб-приложения (WAF) для масштабируемой и надежной обработки трафика веб-приложений.

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

Полный список метрик, предлагаемых Шлюзом приложений, см. в документации по метрикам. Сведения о настройке оповещений для метрик см. в разделе визуализации метрик на портале Azure, а также в документации по Azure Monitor.

Дополнительные сведения и рекомендации по повышению эффективности Шлюз приложений см. в обзоре Azure Well-Architected Framework Шлюз приложений Azure версии 2.

Масштабирование SKU шлюза приложений версии 1 (SKU "Стандартный" или WAF)

Установка числа экземпляров на основе пикового использования ЦП

Если вы используете шлюз SKU версии 1, вы сможете настроить Шлюз приложений до 32 экземпляров для масштабирования. Проверьте загрузку ЦП Шлюз приложений за последние месяцы для любых пиков выше 80 %, он доступен в качестве метрики для отслеживания. Рекомендуется задать количество экземпляров в соответствии с пиком использования и с дополнительным буфером на 10% до 20 % для учета любых пиков трафика.

V1 CPU utilization metrics

Для доступа к функциям автоматического масштабирования и повышенной производительности используйте SKU версии 2, а не 1

SKU версии 2 поддерживает автомасштабирование, благодаря чему Шлюз приложений может справляться с увеличением трафика. В этой версии также существенно повышена производительность: в частности, впятеро увеличена эффективность разгрузки TLS, ускорены процессы развертывания и обновления, обеспечена избыточность зон и реализованы дополнительные улучшения в сравнении с версией 1. Дополнительные сведения о том, как перенести существующие шлюзы SKU версии 1 в SKU версии 2, см. в документации версии 2 и документации по миграции версий 1 на 2.

Автомасштабирование SKU версии 2 Шлюза приложений (Standard_v2 и WAF_v2 SKU)

Установите максимально возможное число экземпляров (125)

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

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

V2 autoscaling configuration

Установите минимальное число экземпляров с учетом средних показателей использования единиц вычислений

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

Рекомендуется задать минимальное количество экземпляров на оптимальный уровень. Например, если требуется 50 экземпляров для обработки трафика при пиковой нагрузке, то установка минимального 25–30 является хорошей идеей, а не <на 10, чтобы даже при наличии коротких всплесков трафика, Шлюз приложений сможет обработать его и дать достаточно времени для автомасштабирования для реагирования и принятия в силу.

Проверьте метрику единиц вычислений за последний месяц. Метрика единицы вычислений — это представление загрузки ЦП шлюза в зависимости от пикового использования, деленного на 10, можно задать минимально необходимое количество экземпляров. Обратите внимание, что 1 экземпляр шлюза приложений может обрабатывать не менее 10 единиц вычислений.

V2 compute unit metrics

Ручное масштабирование для SKU Шлюза приложений версии 2 (Standard_v2/WAF_v2)

Установка числа экземпляров на основе пикового использования единиц вычислений

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

Проверьте метрику единиц вычислений за последний месяц. Метрика единицы вычислений — это представление загрузки ЦП шлюза в зависимости от пикового использования, деленного на 10; можно задать необходимое количество экземпляров, так как один экземпляр шлюза приложений может обрабатывать как минимум 10 единиц вычислений.

Мониторинг и оповещения

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

Сведения о настройке оповещений с помощью шаблонов ARM см. в статье "Настройка оповещений Azure Monitor для Шлюз приложений".

Оповещения для SKU Шлюза приложений версии 1 (Standard/WAF)

Оповещение, если средняя загрузка ЦП превышает 80 %

При нормальных условиях загрузка ЦП не должна регулярно превышать 90 %, так как это может привести к задержкам на веб-сайтах, размещенных за Шлюзом приложений, и дестабилизации работы клиента. Вы можете косвенно контролировать или повышать загрузку ЦП, изменив конфигурацию Шлюза приложений. Для этого увеличьте число экземпляров и (или) перейдите на больший размер SKU. Настройте оповещение, если метрика среднего использования ЦП превышает 80 %.

Оповещение при превышении порогового значения количества неработоспособных узлов

Эта метрика указывает количество внутренних серверов, которые шлюз приложений не может успешно протестировать. Это перехватывает проблемы, когда экземпляры шлюза приложений не могут подключаться к серверной части. Оповещение, если это число превышает 20 % емкости серверных мощностей. Например, если у вас есть 30 внутренних серверов в серверном пуле, задайте оповещение, если число неработоспособных узлов превышает 6.

Оповещение, если состояние ответа (4xx, 5xx) превышает пороговое значение

Создавать оповещение, если состояние отклика шлюза приложения — 4xx или 5xx. В связи с временными проблемами может появиться случайный ответ 4xx или 5xx. Поэтому необходимо наблюдать за шлюзом в рабочей среде, чтобы определить статическое пороговое значение или использовать динамическое пороговое значение для предупреждений.

Оповещение, если количество невыполненных запросов превышает пороговое значение

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

Пример. Оповещение, если за последние 5 минут было более 100 невыполненных запросов

В этом примере показано, как использовать портал Azure, чтобы настроить оповещение, если количество невыполненных запросов за последние 5 минут превышает 100.

  1. Перейдите к Шлюзу приложений.
  2. На левой панели на вкладке Мониторинг выберите Метрики.
  3. Добавьте метрику для невыполненных запросов.
  4. Щелкните Новое правило генерации оповещений и укажите условия и действия.
  5. Щелкните Создать правило генерации оповещений, чтобы создать и включить оповещение.

V2 create alerts

Оповещения для SKU шлюза приложений версии 2 (Standard_v2 и WAF_v2)

Оповещение, если использование единиц вычислений превышает 75 % от среднего уровня использования

Единица вычислений — это мера использования вычислительных ресурсов Шлюз приложений. Проверьте средний уровень использования единиц вычислений за последний месяц и настройте оповещение, если он превышает 75 %. Например, если в среднем вы используете 10 единиц вычислений, установите оповещение на уровне 7,5 единицы. В результате оповещение сработает, если уровень вашего использования увеличится, и у вас будет время среагировать на изменение. Вы сможете увеличить минимальное число, если считаете, что возросший объем трафика сохранится, чтобы при дальнейшем увеличении получить новое оповещение. Следуйте приведенным выше рекомендациям, чтобы масштабировать их по мере необходимости.

Пример. Настройка оповещения на 75 % среднего использования CU

В этом примере показано, как с помощью портала Azure настроить оповещение, которое сработает при достижении 75 % от среднего показателя использования CU.

  1. Перейдите к Шлюзу приложений.
  2. На левой панели на вкладке Мониторинг выберите Метрики.
  3. Добавьте метрику Среднее текущее число единиц вычислений.
  4. Если вы установили минимальное число экземпляров на уровне среднего числа используемых CU, настройте оповещение, которое должно срабатывать при использовании 75 % от вашего минимального числа экземпляров. Например, если в среднем вы используете 10 CU, установите оповещение на уровне 7,5 CU. В результате оповещение сработает, если уровень вашего использования увеличится, и у вас будет время среагировать на изменение. Вы сможете увеличить минимальное число, если считаете, что возросший объем трафика сохранится, чтобы при дальнейшем увеличении получить новое оповещение.

V2 compute unit alerts

Примечание.

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

Оповещать, если использование единицы емкости превышает 75 % от пикового уровня

Единицы мощности показывают общее использование шлюза с точки зрения пропускной способности, вычислений и числа подключений. Проверьте максимальное использование единиц емкости за последний месяц и настройте оповещение, если оно превышает 75 %. Например, если максимальное использование составляет 100 единиц мощности, настройте оповещение на уровне 75 единиц. При необходимости используйте приведенные выше рекомендации по масштабированию.

Оповещение при превышении порогового значения количества неработоспособных узлов

Эта метрика указывает количество внутренних серверов, которые шлюз приложений не может успешно протестировать. Это перехватывает проблемы, когда экземпляры шлюза приложений не могут подключаться к серверной части. Оповещение, если это число превышает 20 % емкости серверных мощностей. Например, если у вас есть 30 внутренних серверов в серверном пуле, задайте оповещение, если число неработоспособных узлов превышает 6.

Оповещение, если состояние ответа (4xx, 5xx) превышает пороговое значение

Создавать оповещение, если состояние отклика шлюза приложения — 4xx или 5xx. В связи с временными проблемами может появиться случайный ответ 4xx или 5xx. Поэтому необходимо наблюдать за шлюзом в рабочей среде, чтобы определить статическое пороговое значение или использовать динамическое пороговое значение для предупреждений.

Оповещение, если количество невыполненных запросов превышает пороговое значение

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

Оповещение, если время получения последнего байта ответа от серверной части превышает пороговое значение

Эта метрика показывает интервал времени с начала установки подключения к внутреннему серверу до момента получения последнего байта текста ответа. Создание оповещения, если задержка ответа внутреннего сервера на определенное пороговое значение превышает обычную задержку. Например, установите этот параметр таким образом, чтобы получать оповещение, если общее время задержки более чем на 30 % превышает обычное значение.

Оповещение, если общее время Шлюза приложений превысит пороговое значение

Это интервал времени с момента получения Шлюзом приложений первого байта HTTP-запроса до момента отправки клиенту последнего байта ответа. Необходимо создавать оповещение, если задержка ответа внутреннего сервера на определенное пороговое значение превышает обычную задержку. Например, можно установить оповещение, если общее время задержки более чем на 30 % превышает обычное значение.

Настройте WAF с геофильтрацией и защитой от ботов для нейтрализации атак

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

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

Включите диагностику Шлюза приложений и брандмауэра веб-приложения

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

Настройка политики TLS для дополнительной безопасности

Убедитесь, что вы используете последнюю версию политики TLS (AppGwSslPolicy2020101) или более поздней. Они поддерживают минимальную версию TLS версии 1.2 с более сильными шифрами. Дополнительные сведения см. в статье о настройке версий политики TLS и комплектов шифров с помощью PowerShell.