Ускорение и защита веб-приложения с помощью Azure Front Door
Azure Front Door — это глобально распределенная сеть доставки содержимого (CDN), которая обеспечивает более низкую задержку и быструю доставку веб-приложения и содержимого. Кроме того, Front Door обеспечивает доступность содержимого с высоким уровнем устойчивости и предоставляет широкий спектр функций, включая расширенный балансировщик нагрузки приложений, ускорение трафика и безопасность.
Рассмотрите возможность развертывания Front Door перед любым общедоступным веб-приложением.
Хорошо спроектированные решения в Azure
Платформа Azure Well-Architected Framework описывает пять основных принципов архитектуры. Azure Front Door помогает решить каждую из пяти основных компонентов с помощью встроенных функций и возможностей.
Оптимизация производительности
Front Door предоставляет несколько функций, которые помогают ускорить производительность приложения.
- Кэширование: Front Door предоставляет мощную сеть доставки содержимого (CDN) для кэширования содержимого на пограничной сети. Почти все веб-приложения содержат кэшируемое содержимое. Статические ресурсы, такие как изображения и файлы JavaScript, кэшируются. Кроме того, многие API возвращают ответы, которые можно кэшировать даже в течение короткого времени. Кэширование помогает повысить производительность приложения и снизить нагрузку на серверы приложений.
- Сжатие. Многие типы ответов можно сжать, что может улучшить время отклика приложения.
- Глобальное ускорение трафика: глобальные возможности ускорения трафика Front Door помогают повысить производительность динамических веб-приложений путем маршрутизации запросов через высокоскоростную магистральную сеть Майкрософт.
- Завершение TLS: подключения к Front Door завершаются в ближайшей точке присутствия Front Door (PoP). Расшифровка TLS выполняется poP. Самый большой удар по производительности при расшифровке TLS — начальное подтверждение. Для повышения производительности сервер, выполняющий расшифровку, кэширует идентификаторы сеанса TLS и управляет его билетами. Если подключения TLS завершаются в PoP Front Door, все запросы от одного клиента могут использовать кэшированные значения. Если это делается на серверах-источниках, каждый раз, когда запросы клиента отправляются на другой сервер, клиент должен повторно пройти проверку подлинности. Использование запросов TLS может помочь устранить эту проблему, но они не поддерживаются всеми клиентами и могут быть трудно настроить и управлять ими.
Безопасность
Возможности безопасности Front Door помогают защитить серверы приложений от нескольких различных типов угроз.
- Сквозное TLS: Front Door поддерживает сквозное шифрование TLS. Разгрузка TLS/SSL в Azure Front Door завершает подключение TLS, расшифровывает трафик в Azure Front Door и повторно шифрует трафик перед его пересылкой в серверную часть.
- Управляемые сертификаты TLS: Front Door может выдавать сертификаты и управлять ими, обеспечивая защиту приложений с помощью строгого шифрования и доверия.
- Пользовательские сертификаты TLS: если вам нужно принести собственные сертификаты TLS, Front Door позволяет использовать управляемое удостоверение для доступа к хранилищу ключей, содержащей сертификат.
- Брандмауэр веб-приложения: брандмауэр веб-приложений Front Door (WAF) предоставляет ряд возможностей безопасности для приложения. Управляемые наборы правил проверяют входящие запросы на подозрительное содержимое. Правила защиты ботов определяют и реагируют на трафик от ботов. Функции геофильтрации и ограничения скорости защищают серверы приложений от неожиданного трафика.
- Блокировка протокола: Front Door принимает трафик только по протоколам HTTP и HTTPS и обрабатывает только допустимые запросы с известным
Host
заголовком. Из-за этого приложение защищается от многих типов атак в различных протоколах. - Защита от атак DDoS: из-за архитектуры Front Door она также может поглощать крупные распределенные атаки типа "отказ в обслуживании" (DDoS) и предотвращать доступ к трафику приложения.
- Приватный канал происхождения: интеграция Приватный канал помогает защитить внутренние приложения, гарантируя, что трафик может достичь приложения только путем передачи через Front Door и его защиты безопасности.
Если у вас есть строгие требования к безопасности сети, вы можете использовать Azure Front Door для управления входящим трафиком HTTP и HTTPS в приложение, а также использовать Брандмауэр Azure для управления трафиком, отличным от HTTP и исходящего трафика.
Надежность
С помощью Front Door можно создавать устойчивые и высокодоступные решения.
- Балансировка нагрузки и отработка отказа: Front Door — это глобальная подсистема балансировки нагрузки. Front Door отслеживает работоспособность серверов-источников и если источник становится недоступным, Front Door может направлять запросы к альтернативному источнику. Вы также можете использовать Front Door для распределения трафика между источниками, чтобы уменьшить нагрузку на любой сервер-источник.
- Маршрутизация anycast: Front Door имеет большое количество pops, каждое из которых может обслуживать трафик для любого запроса. Любой маршрутизируемый трафик направляется к ближайшему доступу Front Door PoP, и если poP недоступен, клиенты автоматически направляются к следующему ближайшему poP.
- Кэширование. Используя кэш Front Door, вы уменьшаете нагрузку на серверы приложений. Если серверы недоступны, Front Door может продолжать обслуживать кэшированные ответы до восстановления приложения.
Оптимизация затрат
Front Door поможет вам сократить затраты на выполнение решения Azure.
- Кэширование: включение кэширования содержимое возвращается из глобальных пограничных узлов Front Door. Этот подход снижает расходы на глобальную пропускную способность и повышает производительность.
- Сжатие: когда Front Door сжимает ответы, это может снизить расходы на пропускную способность решения.
- Распределите трафик между источниками: используйте Front Door для уменьшения необходимости масштабирования серверов приложений или перепроверки емкости серверов для пиковых объемов трафика. Каждый PoP Front Door может возвращать кэшированное содержимое, если оно доступно, что снижает нагрузку на серверы приложений. Вы также можете распределять трафик между несколькими внутренними серверами, уменьшая нагрузку на каждый отдельный сервер.
- Общий профиль: для многих различных приложений можно использовать один профиль Front Door. При настройке нескольких приложений в Front Door вы разделяете затраты на каждое приложение, и вы можете уменьшить конфигурацию, необходимую для выполнения.
Эффективность работы
Front Door может помочь снизить операционную нагрузку на работу современного интернет-приложения и позволит вам внести некоторые изменения в решение без изменения приложений.
- Управляемые сертификаты TLS: Front Door может выдавать сертификаты и управлять ими. Эта функция означает, что вам не нужно управлять продлением сертификатов и снизить вероятность сбоя, вызванного использованием недопустимого или истекшего срока действия TLS-сертификата.
- Сертификаты TLS с подстановочными знаками: поддержка Front Door для доменов подстановочных знаков, включая сертификаты DNS и TLS, позволяет использовать несколько имен узлов без перенастройки Front Door для каждого поддомена.
- HTTP/2. Front Door может помочь вам модернизировать устаревшие приложения с поддержкой HTTP/2 без изменения серверов приложений.
- Обработчик правил: подсистема правил Front Door позволяет изменять внутреннюю архитектуру решения, не затрагивая клиентов.
- Инфраструктура как код. Вы также можете развертывать и настраивать Front Door с помощью технологий инфраструктуры как кода (IaC), включая Bicep, Terraform, шаблоны ARM, Azure PowerShell и Azure CLI.
Архитектура решения
При развертывании решения, использующего Azure Front Door, следует учитывать, как трафик передается от клиента к Front Door и из Front Door в источники.
На следующей схеме показана универсальная архитектура решения с помощью Front Door:
Клиент — Front Door
Трафик от клиента сначала прибывает в PoP Front Door. Front Door имеет большое количество pops распределенных по всему миру, и Anycast направляет клиентов к их ближайшему poP.
Когда запрос получает poP Front Door, Front Door использует имя личного домена для обслуживания запроса. Front Door выполняет разгрузку TLS с помощью сертификата TLS, управляемого Front Door, или пользовательского сертификата TLS.
PoP выполняет множество функций на основе конфигурации, указанной в профиле Front Door, в том числе:
- Защита решения от многих типов атак DDoS.
- Сканирование запроса на наличие известных уязвимостей с помощью WAF Front Door.
- Возвращая кэшированные ответы для повышения производительности, если они хранятся в PoP Front Door и действительны для запроса.
- Сжатие ответов для повышения производительности.
- Возврат ответов перенаправления HTTP непосредственно из Front Door.
- Выбор оптимального источника для получения трафика на основе архитектуры маршрутизации.
- Изменение запроса с помощью обработчика правил.
После завершения обработки входящего запроса Front Door он либо отвечает непосредственно клиенту (например, при возврате кэшированного результата) или перенаправляет запрос в источник.
Front Door для происхождения
Front Door может отправлять трафик в источник двумя разными способами: с помощью Приватный канал и с помощью общедоступных IP-адресов.
Номер SKU premium Front Door поддерживает отправку трафика в некоторые типы источников с помощью Приватный канал. При настройке Приватный канал для источника трафик использует частные IP-адреса. Этот подход можно использовать, чтобы гарантировать, что источник принимает трафик только из конкретного экземпляра Front Door, и вы можете заблокировать трафик, поступающий из Интернета.
Когда PoP Front Door отправляет запросы в источник с помощью общедоступного IP-адреса, он инициирует новое TCP-подключение. Из-за этого сервер-источник видит запрос, исходящий из IP-адреса Front Door, а не клиента.
Любой подход, используемый для отправки трафика в источник, обычно рекомендуется настроить источник, чтобы ожидать трафика от профиля Front Door и блокировать трафик, который не проходит через Front Door. Дополнительные сведения см. в разделе "Безопасный трафик" в источники Azure Front Door.
Обработка ответа
PoP Front Door также обрабатывает исходящий ответ. Обработка ответов может включать следующие действия:
- Сохранение ответа на кэш PoP для ускорения последующих запросов.
- Изменение заголовка ответа с помощью обработчика правил.
Аналитика и составление отчетов
Так как Front Door обрабатывает все входящие запросы, он имеет видимость всего трафика, который проходит через решение. Отчеты, метрики и журналы Front Door можно использовать для понимания шаблонов трафика.
Совет
При использовании Front Door некоторые запросы могут не обрабатываться сервером-источником. Например, WAF Front Door может блокировать некоторые запросы, и он может возвращать кэшированные ответы для других запросов. Используйте данные телеметрии Front Door для понимания шаблонов трафика решения.
Следующие шаги
Узнайте, как создать профиль Front Door.