У меня есть N
веб-приложения. Каждое веб-приложение обслуживается другим именем хоста в моем домене и развертывается в 2 экземплярах, работающих в AWS. Другими словами, у меня есть 2N
экземпляры, разделенные на пары, которые запускают N
различные веб-приложения.
Я хотел бы настроить один AWS Elastic Load Balancer, который будет передавать запрос одному из двух экземпляров, обслуживающих его, на основе Host
заголовка. Возможно ли это с использованием одного ELB или мне потребуется развернуть N
ELB, по одному для каждой пары экземпляров?
amazon-web-services
amazon-elb
thesamet
источник
источник
Ответы:
Один ELB направляет трафик ровно одному набору экземпляров и распределяет входящий трафик всем экземплярам, находящимся за ним. Он не осуществляет выборочную маршрутизацию трафика на основе анализа трафика любого уровня 7, такого как
Host:
заголовок.Вам нужен один ELB для каждого набора экземпляров. Как вы описываете, это один ELB для каждого веб-приложения.
Если вашей основной целью запуска ELB является разгрузка SSL с использованием подстановочного сертификата (у меня есть одна система, спроектированная таким образом, с десятками приложений, расположенных по адресу many-different-domains.my-wildcard-cert-domain.com), тогда экземпляры «позади» ELB может работать обратный прокси-сервер, такой как HAProxy (или несколько других альтернатив, таких как Varnish), который может принимать решения о маршрутизации уровня 7, а затем перенаправлять трафик на соответствующее подмножество машин позади них, что также позволяет использовать более сложные балансировка нагрузки и имеет преимущество, предоставляя вам статистику и счетчики трафика, совокупные и раздельные.
Промежуточные экземпляры ^^^^ могут оценивать
Host:
заголовки (помимо всего прочего) и даже записывать значение файла cookie сеанса в свои журналы для анализа.Эта настройка также позволяет мне запускать несколько приложений на перекрывающихся подмножествах экземпляров, где это уместно, и делать много других вещей, которые ELB не поддерживает напрямую. Он также возвращает пользовательскую страницу «503» в случае, если приложение перегружено или иным образом становится недоступным, что ELB не делает самостоятельно. Здесь я изобразил 2 прокси-сервера, и ни по какой другой причине, кроме вашего упоминания номера 2 в вопросе. В моей настройке фактически 3, по одному на каждую зону доступности в регионе, где это развернуто.
источник
Host:
заголовка. Этот ответ был верным, когда я писал его в 2014 году, но, похоже, пришло время для обновления. Спасибо, что снова обратили на это мое внимание.По состоянию на август 2016 года Amazon ELB предлагает два разных типа балансировщиков нагрузки:
Для вашего случая применение Application Load Balancer кажется идеальным. Однако он ограничен 10 правилами, поэтому он будет работать легко, только если ваш
N
размер не превышает 10.источник
В вашем списке экземпляров ec2 вы видите два экземпляра, верно? Но в каждом случае у вас много веб-приложений? Вы используете виртуальный хост для развертывания каждого?
Вам нужен всего один ELB, чтобы разделить плату на ваших хостах. Пример:
Я думаю, что лучше, ты дашь мне больше своего сценария и, возможно, я смогу тебе помочь.
С уважением.
ОБНОВИТЬ
Если у вас есть разные веб-приложения на экземплярах EC2, вам необходимо иметь два эластичных балансировщика нагрузки (ELB). Каждый на пару экземпляров. Всего четыре экземпляра
источник
2N
приложения. Есть N веб-приложений, по два экземпляра для каждого. Я отредактирую вопрос, чтобы уточнить это.