Я хотел бы знать, какое лучшее и самое простое решение
для защиты http-сервера, развернутого в облаке AWS, от атак DOS
Я знаю, что для этой цели можно включить AWS Advanced Shield
, но это слишком дорого (3000 долларов в месяц)
https://aws.amazon.com/shield/pricing/
Архитектура системы
< br>
HTTP-запрос -> Балансировщик нагрузки приложений -> EC2
- На этом компьютере установлен сервер Nginx
- Сервер Nginx настроен с ограничением скорости
- Сервер Nginx отвечает кодом 429, когда с одного IP отправлено слишком много запросов
- Сервер Nginx генерирует файлы журналов (access.log, error.log)
- AmazonCloudWatchAgent установлен на этом компьютере
- AmazonCloudWatchAgent прослушивает файлы журналов
- AmazonCloudWatchAgent отправляет изменения из файлов журналов в определенные группы журналов CloudWatch.
- Журналы со всех машин EC2 централизованы на месте (группы CloudWatch Log)
Я могу настроить фильтры показателей CloudWatch Logs
для отправки мне сигналов тревоги, когда с одного IP-адреса поступает слишком много 429 запросов.
Таким образом, я могу вручную заблокировать определенный IP-адрес в сетевом ACL
и отключить все запросы от плохого IP-адреса на нижнем сетевом уровне
и защитить мои ресурсы AWS от истощения
Я хотел бы сделать это как-то автоматически
Как это сделать проще и чище?