AWS Insight: Как работает ELB

в 11:47, , рубрики: Amazon Web Services, AWS, elb, Блог компании EPAM Systems Ukraine, Облачные вычисления, метки: ,

Привет! image

Хочу поведать читателям Хабрахабра о сервисе Elastic Load Balancer, который входит в состав Enterprise Compute Cloud. Многие давно уже пользуются сервисом ELB, но не знают как работает сервис изнутри. Я немного владею этой информацией — многочасовые митинги с саппортом AWS иногда гораздо познавательнее документации на сайте.

Итак, начнём с основ, потом перейдём к внутренностям.

Что такое ELB.

Elastic Load Balancer — это сервис, предоставляющий балансировку запросов между инстансами EC2/VPC. Соответственно есть 2 типа ELB, которые

  • видны из интернета — EC2/VPC
  • не видны из интернета — VPC

Возможности ELB

ELB умеет проксировать следующие протоколы:

  • http
  • https
  • tcp
  • ssl (secure tcp)

Причём как слушатели, так и получатели могут быть любой комбинации. Например http-http (просто прокси) или tcp — https (если SSL терминация производится на стороне инстансов)

ELB умеет проксировать порты:

  • 25
  • 80
  • 443
  • 1024-65535

Настройка ELB

В консоли находим пункт Load Balancers и там тыцаем Create Load Balancer. Первый скрин — настройка портов и протоколов:
AWS Insight: Как работает ELB

Далее, т.к. мы выбрали HTTPS, нам нужен сертификат для терминации SSL. AWS спрашивает у нас настройки:
AWS Insight: Как работает ELB

Далее настраиваем хелсчек — проверка здоровья хоста. Если хелсчек положительный, инстанс будет в списке на балансировку. Отрицательный — на инстанс не будут отправляться запросы:
AWS Insight: Как работает ELB

Хелсчеки можно настроить на те же протоколы, что и балансировку, на http/https можно добавить имя странички или путь.

Ну и в финале — нужно выбрать инстансы, которые вы хотите добавить под ELB (на скриншоте просто пример)
AWS Insight: Как работает ELB

Последний скрин — как всегда проверка деталей:
AWS Insight: Как работает ELB

Просмотрели, решили, что всё ок и создали ELB.

Как настроить домен на ELB

У EC2 ELB есть 3 адреса, по которым к ним можно обращаться. Это не IP адреса, а URL:

  • myelb-1161081434.us-east-1.elb.amazonaws.com (A Record)
  • ipv6.myelb-1161081434.us-east-1.elb.amazonaws.com (AAAA Record)
  • dualstack.myelb-1161081434.us-east-1.elb.amazonaws.com (A or AAAA Record)

Есть 2 пути настроить свой домен на ELB и зависят они от того, какие серверы имён вы используете. Рекомендуется использовать Amazon Route 53, т.к. он интегрирован с ELB и там всё легко настраивается через A запись:
AWS Insight: Как работает ELB

Если же вы используете другие DNS сервисы/серверы — ваш путь CNAME.

Sticky session

ELB способен обрабатывать куки для Sticly session. Эти функции можно настроить в конфигурации после создания ELB:
AWS Insight: Как работает ELB

Автомасштабирование ELB

Тут хотелось бы рассказать о том, как масштабируется ELB и как он себя ведёт под нагрузкой. Я уже опубликовывал статью, в которой сравнивал производительность ELB, NGINX и HAproxy. Там я затронул момент масштабирования. ELB вертикально промасштабировался с t1.micto до m1.small:
image

По словам представителей техподдержки Amazon Web Services при увеличении нагрузки на ELB проходит от одной до семи минут перед тем, как произойдёт масштабирование сервера. IP адрес может быть поменян, поэтому не рекомендуется использовать IP адреса для доменов (я описал выше выход из ситуации).

Для отдельных случаев ELB может быть «разогрет» до нужного шейпа, чтобы выдерживать большие нагрузки. «Разогрев производится» через запросы в техподдержку.

Автомасштабирование EC2/VPC

ELB играет немаловажную роль в автомасштабировании инстансов EC2. Имя ELB указывается в конфигах групп автомасштабирования и, собственно, всё крутится вокруг них. Подробнее об этом можно прочесто в моей статье.

У ELB ещё есть много нюансов работы, но основное я рассказал.

Есть ли у вас опыт работы с ELB? Интересные факты?

Автор: korjik

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js