В чем преимущество использования ELB перед серверами NGINX?

В чем преимущество использования ELB перед серверами NGINX?

Я изучил множество настроек бэкенда на Amazon Web Services, особенно на Instagram. На ихБлог по инстаграмуони упомянули, что у них есть Elastic Load Balancer перед тремя серверами NGINX, который находится перед их серверами приложений, на которых запущены django/Gunicorn. Зачем это нужно (для буферизации? кэширования?)

Если это так, как можно подключить эти серверы NGINX к серверам приложений django/gunicorn?

решение1

Глядя на пост в Instagram, я не верю, что они используют Nginx для буферизации или кэширования (хотя я могу ошибаться). Я использую что-то похожее, но с HAProxy вместо Nginx.

Вот некоторые из причин, по которым мы выбрали такой подход:

  • Nginx и HAProxy работают на уровне 7, тогда как ELB — на уровне 4. Если вам нужны сервисы уровня 7, ELB не сможет их предоставить.
  • Мягкое завершение соединения при сбое проверки работоспособности. ELB может продолжать передавать трафик в HAProxy/Nginx, пока трафик сливается с неработающего экземпляра. Смотретьhttps://forums.aws.amazon.com/message.jspa?messageID=231571
  • При необходимости вы можете масштабировать слой балансировки нагрузки в режиме реального времени.
  • Улучшенные показатели трафика и производительности каждого экземпляра за слоем HAProxy/Nginx
  • ELB может обнаружить сбой экземпляра HAProxy и прекратить отправку на него трафика.

решение2

Вот несколько моментов, которые приходят мне на ум:

  1. Он распределяет запросы и следит за работоспособностью серверов, поэтому в случае сбоя одного из ваших серверов nginx сайт продолжит работать безупречно.
  2. Amazon делает некоторые смягчения отказа в обслуживании на своей стороне. Если вы занимаетесь балансировкой нагрузки самостоятельно, вы будете платить за весь трафик, который попадает на них. Если Amazon блокирует некоторые атаки, направленные на ваш ELB, вы не платите за эту часть.
  3. Позволяет ограничить группы безопасности серверов nginx только ELB, что делает их более безопасными, чем если бы они были открыты для публичного Интернета.

Связанный контент