Elb Против Nginx

Привет еще раз! У меня есть серьезная исследовательская задача, и я хочу поделиться своими результатами с сообществом.

Суть задачи — определить лучший вариант развертывания NGINX на AWS EC2/VPC. Он должен быть лучшим во многих отношениях, особенно с точки зрения высокой доступности и скорости отклика.

Особенно важным фактором является скорость обработки SSL-запросов, поэтому были проведены тесты производительности SSL. Все инстансы расположены в одной сети VPC, ELB также поднимается в той же сети.

Рассматривалось несколько вариантов развертывания, но выбор пал на 2 основные конфигурации, на которых я и тестировал.



Конфигурация 1.ELB



ELB против Nginx

Преимущества:
  • Общий дизайн для многих приложений.

    ELB стоит перед двумя или более экземплярами NGINX, пропускает трафик, тем самым делая конфигурацию высоконадежной (HA).

    Если один из узлов выйдет из строя, трафик на него не пойдет.

  • Легко масштабируемая схема.

Недостатки:
  • Плюс один прыжок в сеть.

  • Не под контролем.



Конфигурация 2. NGINX



ELB против Nginx

Преимущества:
  • Прямой доступ к балансировщику без сторонних прокси.

  • Полный контроль над инфраструктурой.

Недостатки:
  • Настройка высокой надежности осложняется использованием проверок пульса и связи между серверами.

  • Трудно масштабировать


Тестирование

Тестирование проводилось на инстансах m1.medium (3,75 ГиБ памяти, 2 вычислительных модуля EC2 (1 виртуальное ядро с 2 вычислительными модулями EC2)).

В качестве веб-сервера использовался Nginx со страницей по умолчанию.

Тест проводился из другого региона AWS с использованием Apache Bench: 6 конкурирующих пользователей запросили страницу 400 раз.

В каждом случае тест повторялся 100 раз.

Итак, было проведено 4 испытания.

Обе конфигурации отвечали на запросы http и https.

Без SSL

Испытания направлены на выявление влияния ELB на скорость срабатывания конструкции.

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

Но также нужно учитывать, что за ELB может находиться более одного (в нашем случае 2) инстанса NGINX, что может оказаться более производительным, чем один.



График среднего времени ответа


ELB против Nginx

Средний результат всех ответов (в мс): ЭЛБ: 209.586 НГИНКС: 207.934

выводы
Как видите, результаты практически одинаковы.

Хотя на графике конфигурация NGINX стабильно быстрее ELB, разница в 1-2% абсолютно приемлема.

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



SSL

Тесты направлены на определение производительности конфигураций, касающихся SSL-шифрования.

В конфигурации ELB шифрование SSL выполняется ELB; в конфигурации NGINX это выполняет один балансировщик NGINX.

График среднего времени ответа


ELB против Nginx

Средний результат всех ответов (в мс): ЭЛБ: 455.921 НГИНКС: 437.745

выводы
В начале тестирования ELB существенно отставал в ответе.

Но после 30-го запроса мы видим прирост производительности.

Это оправдано тем фактом, что ELB имеет вертикальное масштабирование.

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

Как вы знаете, ELB — это экземпляр m1.micro, который можно масштабировать по вертикали, если он не справляется с поставленными задачами.

Это никак не контролируется и делается автоматически.

Но благодаря партнерству с AWS можно установить минимальную форму для ELB, и, например, ELB никогда не будет меньше m1.medium. Это сделано для того, чтобы максимально ускорить работу инфраструктуры.

Если вы используете этот корпоративный вариант, выбор места для SSL-шифрования зависит от простоты настройки и других факторов.

Эти проблемы пока не решены, но результаты испытаний показали, что обе конфигурации примерно эквивалентны.



Послесловие

Тесты производительности проводились в конфигурациях с ELB и без него на AWS EC2/VPC. Индикаторы показывают, что наличие ELB очень незначительно влияет на время отклика, хотя и упрощает настройку решений высокой доступности.

Кроме того, при использовании дополнительных опций AWS не имеет особого значения, где выполняется обработка SSL. В остальных случаях при достаточной мощности ( по крайней мере не t1.micro ), на ELB его проводить не следует. Если у вас есть другие интересные идеи о том, как сравнить эти конфигурации, я открыт для них.

Теперь все работает, и вы можете легко запустить еще несколько тестов.

УПД Тесты проводились для HAproxy. Как и ожидалось, HAproxy немного быстрее, чем NGINX. Среднее время запроса:

  • HАпрокси: 203.345 РС
  • ELB через HAProxy: 204.97 РС
Общая картина выглядит так:

ELB против Nginx

Теги: #Nginx #тестирование #aws #Amazon Web Services #elb
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.