Назад | Перейти на главную страницу

Истекло время ожидания шлюза Amazon EC2 504

У меня есть только один экземпляр бесплатного уровня Amazon EC2. На нем размещены два сайта Django, которые в настоящее время почти не получают трафика, всего несколько запросов в день. Сервер - это apache с mod_wsgi, а apache настроен с помощью WSGIDaemonProcess, например

WSGIDaemonProcess mysite.com processes=4 threads=4 display-name=%{GROUP} user=djangoUser group=djangoUser python-path=/srv/mysite:/srv/mysite/venv/lib/python2.7/site-packages
WSGIProcessGroup mysite.com

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

Очень часто (более 50% времени) при доступе к сайтам я получаю 504 Gateway Time-out а попытка доступа даже не регистрируется в ошибках apache или журналах доступа вообще, поэтому отладить сложно.

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

Вот произвольный снимок экрана с изображением вершины в определенный момент времени, когда делается запрос:

РЕДАКТИРОВАТЬ

В конце концов я понял, что это неправильно настроенный fail2ban сценарий, который добавил мой ip в черный список iptables на определенное время. Мой первый запрос будет работать, но последующие запросы будут заблокированы iptables до истечения срока, что приведет к 504.

Экземпляры EC2 t2.micro какой ужас. Вот, я это сказал. Какой ужас. Если вы запускаете неинтерактивное приложение и не возражаете, если выполнение определенного задания занимает в 10 раз больше времени, чем должно, тогда t2.micros может работать нормально. Однако для любого типа интерактивного веб-приложения они бесполезны.

Я предполагаю, что если вы посмотрите top в периоды, когда это происходит, вы увидите высокий процент кражи ЦП и / или iowait. К сожалению, единственное, что вы можете сделать, чтобы исправить это, - это перейти на более крупный экземпляр.

Если вам не нужны более продвинутые функции, доступные в AWS, это не лучшее решение с точки зрения производительности на доллар. Linode, DO и другие поставщики VPS легко превосходят по производительности экземпляры EC2 аналогичного размера.