AWS: добавить второй внутренний балансировщик нагрузки к эластичному стеблю бобов в terraform - PullRequest
3 голосов
/ 03 июня 2019

Можно ли манипулировать группой автоматического масштабирования beanstalk и целевой группой в terraform, добавляя дополнительный (внутренний) балансировщик нагрузки? Если да, то как?

Я хочу иметь 2 балансировщика нагрузки, один внутренний, а другой общедоступный. Я нашел этот обходной путь от AWS:

https://aws.amazon.com/it/blogs/networking-and-content-delivery/using-static-ip-addresses-for-application-load-balancers/

Есть ли более разумное решение?

Ответы [ 2 ]

2 голосов
/ 14 июня 2019

Я думаю, что это может быть идеально достигнуто, но вам нужно небольшое изменение в подходе.

У вас не будет 2 балансировщиков нагрузки внутри EB, но вместо этого ваш beanstalk будет описывать инфраструктуру, начиная со второго балансировщика нагрузки, установленную как внутреннюю, и затем вы добавите еще один общедоступный балансировщик нагрузки, который указывает наБалансировщик нагрузки BE.

Мы можем достичь этого гораздо проще, чем тот, который предлагается в блоге AWS.

Для этого ваши настройки BE будут примерно такими же, как у вас, но:

  • установите балансировщик нагрузки в качестве типа сети.Это единственный тип, который позволит вам иметь статические IP-адреса в балансировщике нагрузки.
  • установить балансировщик нагрузки как внутренний (внутри конфигурации сети beanstalk, установить видимость как внутренний и снять флажок "назначить общедоступный IP-адрес)обратиться к экземплярам EC2 ... "
  • назначить эластичные IP-адреса вашему балансировщику нагрузки, по крайней мере, 2, в разных зонах доступности.
  • остальная часть вашего Beanstalk остается такой же, как у вас.

Теперь создайте общедоступный балансировщик нагрузки:

  • Это может быть любой тип, который вам нужен. Может быть, ALB, если вы хотите выполнить SSL-завершение или любую другую магию уровня 7. Также,он должен быть общедоступным
  • создать новую целевую группу. Тип цели для этой группы должен быть IP.
  • Зарегистрируйте 2 Elastic IP-адреса вашего балансировщика сетевой нагрузки выше.
  • Добавьте слушателя к вашему ALB, указывающему на эту целевую группу

, и это сделает волшебство. Вам нужно будет проверить, как это сделать в terraform, но подход довольно простЯ уверен, что Terraform позволит вам сделать это.


Преимущество этого по сравнению с блогом AWS (который предназначен для совершенно других целей) состоит в том, что здесь внутренний балансировщик нагрузки является сетевым, а внешний не должен быть.Поскольку NLB является внутренним, вы избегаете больших накладных расходов в инфраструктуре, а также избегаете динамической логики, такой как лямбда, которую они предлагают регистрировать IP-адреса.Благодаря такому подходу вы получаете гораздо более декларативную архитектуру, которую легче описать в виде terraform, и которую легче поддерживать в процессе эксплуатации.

0 голосов
/ 08 июня 2019

Вы можете связать целевую группу только с одним балансировщиком нагрузки.Как только вы свяжете целевую группу с балансировщиком нагрузки, эта целевая группа больше не будет доступна для связи с другим ALB.

Возможно, вы могли бы обойти другие подходы, такие как правила портов и групп безопасности, или создать вторую целевую группу.

Ничто из того, для чего предназначен Elastic beanstalk.Это просто простой способ для разработчиков использовать код и оставаться в стороне от базовой инфраструктуры.Когда уровень сложности увеличивается, пора уходить от EB.

...