Установка WAF‑ноды с использованием Terraform¶
Terraform — инструмент для описания инфраструктуры приложения в конфигурационных файлах и для запуска приложения на основе этих файлов. Более подробная информация о Terraform доступна в официальной документации.
Используя Terraform, вы также можете развернуть WAF‑ноду. В данной инструкции приведен пример кода Terraform для установки WAF‑ноды в публичное облако AWS. В данном примере WAF‑нода настраивается для защиты сайта на Wordpress. Код разворачивает необходимый набор ресурсов AWS: VPC, subnets, route tables, security groups, публичные ключи SSH и другие ресурсы, в том числе сервис Wordpress.
Рекомендуемые статьи для более полного понимания кода Terraform
Используемые ресурсы¶
В примере используются следующие ресурсы:
-
Официальный Wallarm WAF Node AMI, доступный в AWS Marketplace.
-
AWS Autoscaling Group (ASG) для автоматической настройки ресурсов для кластера в зависимости от нагрузки WAF‑ноды на ЦП.
-
Метрики и уведомления AWS CloudWatch для мониторинга нагрузки активной WAF‑ноды на ЦП.
-
Балансировщик нагрузки AWS NLB для мониторинга доступности WAF‑ноды и распределения запросов между доступными экземплярами.
Вы можете использовать описанный подход как для официального Wallarm WAF Node AMI, так и для созданного образа AMI с WAF‑нодой.
Развернутая инфраструктура¶
Приведенный пример кода разворачивает следующую инфраструктуру:
-
Новый VPC с названием
tf-wallarm-demo
и необходимые ресурсы: subnets, route tables, Internet Gateway. -
ASG, управляющий кластером WAF‑нод. ASG использует опцию UserData для автоматической установки новых WAF‑нод. Процесс установки соответствует ручному способу настройки WAF‑ноды.
-
Экземпляр NLB, который принимает запросы на порт 80/TCP и 443/TCP и передает их на WAF‑ноды. NLB не завершает SSL‑соединение, если его завершает WAF‑нода.
-
ASG, запускающий приложение Wordpress, и соответствующий экземпляр ELB. WAF‑ноды автоматически настраиваются для проксирования входящего трафика на DNS экземпляра Wordpress ELB.