Эластичный бобовый стебель с изменением типа ELB

Кто-нибудь знает, можно ли изменить существующую среду AWS Elastic Beanstalk на Application Load Balancer (вместо классической).

Насколько мне известно, только приложения ELB могут быть защищены с помощью AWS WAF и DDOS «Shield», поэтому любое существующее приложение EB не может воспользоваться этими функциями, поскольку они имеют классические ELB.


person David    schedule 10.10.2017    source источник


Ответы (3)


Здравствуйте, согласно документации AWS:

Консоль управления средой Elastic Beanstalk поддерживает создание и управление средой Elastic Beanstalk только с помощью Classic Load Balancer. Для других вариантов см. Application Load Balancer и Балансировщик сетевой нагрузки.

Также

Примечание. Вы можете установить тип балансировщика нагрузки только во время создания среды. (Обратитесь к AWS Documetnation)

Поэтому При развертывании приложения на Elastic Beanstalk через AWS CLI:

Пытаться

eb create test-env --elb-type network

or

eb create test-env --elb-type application

person Kush Vyas    schedule 10.10.2017
comment
Спасибо, как жаль. Это означает, что любые существующие среды не могут быть изменены, как я полагаю. - person David; 10.10.2017
comment
На данный момент нет, согласно официальной документации AWS, отметьте вопрос решенным, если ответ развеивает ваши сомнения. - person Kush Vyas; 10.10.2017
comment
Раздражает, насколько застенчивы официальные документы по этому поводу в другие места. Вы можете использовать мастер миграции балансировщика нагрузки EC2, чтобы сгенерировать второй балансировщик нагрузки приложения, который будет перенаправлен на классический, если вы не возражаете заплатить дважды и он служит вашим целям. - person thadk; 23.10.2018
comment
Похоже, этот ответ больше не соответствует действительности. С помощью консоли можно создать Application Load Balancer. Я тоже это делал сам. aws .amazon.com / about-aws / whats-new / 2018/04 / - person Almog Cohen; 08.08.2019
comment
действительно, теперь можно щелкнуть балансировщик нагрузки, чтобы настроить его на любой тип, включая общее приложение. Однако после настройки его по-прежнему невозможно изменить. - person Vincent Gerris; 13.01.2021

Невозможно изменить тип балансировщика нагрузки для существующей среды, но я использовал следующий процесс для создания клонированной среды с балансировщиком нагрузки приложения (вместо классического).

  1. В консоли сохраните конфигурацию исходного env.
  2. В терминале eb config get [save name] вы получите файл в .elasticbeanstalk\saved_configs.
  3. Отредактируйте файл, чтобы добавить

OptionSettings: aws:elasticbeanstalk:environment: LoadBalancerType: application

и удалите (если они у вас есть):

aws:elb:loadbalancer: CrossZone: true aws:elb:policies: ConnectionDrainingEnabled: true aws:elb:listener:443: [whatever]

Вы можете использовать эту возможность для внесения других изменений, например для обновления PlatformArn

  1. Сохраните измененную конфигурацию как [новое имя сохранения].
  2. В терминале eb config put [new save name].
  3. Обновите свой .ebextensions, чтобы он имел LoadBalancerType: application и, при необходимости, добавьте слушателя в elbv2. Вы также можете создать в консоли вручную позже.

aws:elbv2:listener:443: ListenerEnabled: true SSLPolicy: ELBSecurityPolicy-TLS-1-2-2017-01 SSLCertificateArns: [your cert id] DefaultProcess: default Protocol: HTTPS Rules: ''

  1. Создайте новый env с eb create [new env name] --cfg [new save name]

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

person Arik Yavilevich    schedule 08.09.2018
comment
Это хороший ответ, но не так-то просто следовать ему, чтобы на самом деле внести изменения. - person Almog Cohen; 08.08.2019
comment
Это больше не работает. при редактировании, сохранении, выгрузке и загрузке измененной конфигурации теперь возникает ошибка. Невозможно загрузить конфигурацию: исключение проверки конфигурации: параметр типа LoadBalancer не может быть изменен. [! [когда я пытался это сделать] [1]] [1] [1]: i .stack.imgur.com / 7PgTJ.png - person Kapil Aggarwal; 27.09.2019
comment
@KapilAggarwal Вы создаете новую среду с новой конфигурацией или пытаетесь применить новую конфигурацию к существующей? Что произойдет, если вы используете eb config put [new save name], как описано, а не консоль для загрузки? - person Arik Yavilevich; 28.09.2019

Самый простой способ изменить существующее приложение для использования балансировщика нагрузки - это использовать как консоль, так и интерфейс командной строки:

  1. В консоли сохраните конфигурацию приложения исходного env. Запишите это имя. Мы будем использовать его как <saved-config-name>.
  2. Под версиями приложения обратите внимание на последнюю метку версии. Мы будем использовать его как <app-version>.
  3. Из интерфейса командной строки запустите eb create <new-environment-name> --elb-type application --cfg <saved-config-name> --version <app-version>
  4. Если у вас были настроены протоколы HTTP в старом приложении, во вновь созданном приложении настройте его в консоли в разделе Балансировщик нагрузки -> Прослушиватели с соответствующим сертификатом.
person Almog Cohen    schedule 07.08.2019
comment
Стоит отметить, что этого самого по себе недостаточно для обновления всей среды EB - вам нужно будет правильно настроить любые параметры, связанные с балансировщиком нагрузки, включая, например, прослушивания, сертификаты SSL, конфигурацию группы безопасности и т. Д. - person danimal; 21.10.2019