2016-02-10 3 views
14

Как назначить статический IP-адрес для ELB. Похоже, я не могу.Назначение статического IP-адреса для балансировщика нагрузки AWS

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

В некоторых статьях также упоминается, что я могу использовать экземпляр EC2 в качестве обратного прокси. Но сможет ли один прокси справиться с большим количеством трафика?

Любое решение для этого?

+1

Возможный дубликат [AWS Load Balancer со статическим IP-адресом] (http://stackoverflow.com/questions/13767349/aws-load-balancer-with-a-static-ip-address) –

+0

AWS [объявил Балансировщик сетевой нагрузки] (https://aws.amazon.com/blogs/aws/new-network-load-balancer-effortless-scaling-to-millions-of-requests-per-second/), который поддерживает назначение статических IP-адресов (EIPs). Он работает на уровне TCP, поэтому вы не сможете использовать функции уровня 7, такие как липкость ELB или завершение ssl. – Patrick

ответ

30

AWS»Elastic Load Balancer фактически резинку на двух уровнях, как описано здесь: http://shlomoswidler.com/2009/07/elastic-in-elastic-load-balancing-elb.html

Первый уровень является сам балансировки нагрузки. Чтобы удостовериться, что ELB может масштабироваться до любого объема, который у вас есть, и разрывается на любой том, который вы вдруг сталкиваетесь, AWS назначает «статическое» имя DNS-сервера (например, MyDomainELB-918273645.us-east-1.elb.amazonaws.com). Это имя узла указывает на несколько IP-адресов. Вы можете видеть, что (из командной строки), запустив

$ host MyDomainELB-918273645.us-east-1.elb.amazonaws.com 
MyDomainELB-918273645.us-east-1.elb.amazonaws.com 172.31.7.2 
MyDomainELB-918273645.us-east-1.elb.amazonaws.com 172.31.11.33 

Вторая форма упругости в пределах УДР, очевидно, то ELB направляет запрос к одному из экземпляров EC2 в бассейне.

Итак, вы можете видеть, что попытка назначить статический IP-адрес балансировщику нагрузки будет обречена на провал.

Использование экземпляра EC2 в качестве обратного прокси-сервера также может показаться самопровозглашаемым, поскольку тогда вы создадите узкое место, прежде чем даже попасть в ELB. Мог бы просто создать свой собственный балансировщик нагрузки.

Рекомендуемое решение (которое вы указали) - это создать CNAME, который указывает на имя хоста ELB (которое не изменится).

т.е. my-app.mycompany.com -> MyDomainELB-918273645.us-east-1.elb.amazonaws.com

Это позволит вам интегрировать масштабируемое приложение, позади ELB в вашем домене.

Я не уверен, что полностью понимаю, почему вы не можете создать CNAME в своем DNS или что это связано с направлением почтового трафика, можете ли вы объяснить?

+0

Если я изменю CNAME, тогда мой почтовый трафик также направит на AWS. Я не хочу этого. Мое доменное имя зарегистрировано в 1 и 1. Если я изменю CNAME, то моя почта 1and1 не будет работать. Пожалуйста, помогите –

+4

Вы не можете просто добавить CNAME? Вы получаете только 1 CNAME? Не потому, что это называется 1and1, не так ли? – Brooks

+1

CNAME предназначен только для поддоменов. Как насчет основного домена? Как я могу указать example.com на балансировку нагрузки? –

0

Вы должны добавить запись CNAME в вашу зону NDS, чтобы сделать это работает:

yourhostname IN CNAME some-lb-XXXXX.elb.amazon.com. 

не забыл точку в конце имени балансировки нагрузки.

3

Новая функция в AWS (я считаю, что это было объявлено в Re: Invent 2017) позволяет создавать статические IP-адреса с сетевыми балансирами нагрузки (NLB). NLB может обрабатывать только параметры уровня 4 (TCP), а не HTTP (уровень 7).

Вы можете назначить один Эластичный IP-адрес для каждой зоны доступности.

Подробнее см. В AWS blog post или NLB documentation.

«Классический балансировщик нагрузки» и «Балансировщик нагрузки приложений» не поддерживают статические IP-адреса.Если вам нужна функция, предоставляемая только теми, вам нужно вернуться к решению CNAME, описанному выше.