Экземпляр AWS EC2 дает сбой при сканировании ботами

Я создал простой экземпляр micro EC2 на основе AMI Amazon Linux для тестирования приложения, пока я его разрабатываю, но случается, что каждый день он перестает отвечать, давая мне ошибку 503. Он иметь собственный домен с Cloudfront.

В AWS экземпляр отображается зеленым и «запущен», но даже соединение через SSH невозможно, пока я не остановлюсь и не запущу его снова (также параметр перезагрузки экземпляра просто ничего не делает).

Когда я проверяю журналы HTTPD, я вижу большой список того, что похоже на попытки ботов найти уязвимые страницы:

[Wed May 22 08:10:17.996810 2019] [:error] [pid 26550] [client ...] script '/var/www/html/pop.php' not found or unable to stat
[Wed May 22 08:10:21.276648 2019] [:error] [pid 26550] [client ...] script '/var/www/html/ok.php' not found or unable to stat
[Wed May 22 08:10:21.454696 2019] [:error] [pid 26550] [client ...] script '/var/www/html/test.php' not found or unable to stat
[Wed May 22 08:10:21.641293 2019] [:error] [pid 26550] [client ...] script '/var/www/html/conf.php' not found or unable to stat
[Wed May 22 08:10:22.187275 2019] [:error] [pid 26550] [client ...] script '/var/www/html/dashu.php' not found or unable to stat
...

Кто-нибудь знает простое решение, чтобы избежать этого и заставить этот простой тестовый сервер работать без перезагрузки это каждый день?

1
задан 22 May 2019 в 13:05
2 ответа

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

Дает ли CloudWatch какое-либо представление о причинах сбоя? Возможно, вы сможете определить, какой ресурс исчерпывается. Это может быть количество подключений или проблема с пропускной способностью, а не память или процессор.

Другой вариант - использовать CloudFlare вместо CloudFront, что должно дать лучшую защиту от ботов сразу из коробки и дешевле.

0
ответ дан 3 December 2019 в 20:07

В процессе разработки вы можете ограничить доступ к экземпляру только своим IP-адресом (например, ) - установите их в экземпляре Security Group . Это предотвратит доступ посторонних, кроме вас.

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

Надеюсь, что это поможет :)

2
ответ дан 3 December 2019 в 20:07

Теги

Похожие вопросы