Кто-нибудь знает, возможно ли изменить существующую среду AWS Elastic Beanstalk на балансировщик нагрузки приложения (вместо классического).
Насколько я знаю, только приложение ELB может быть защищено AWS WAF и DDOS "Shield", поэтому любое существующее приложение EB не может воспользоваться этими функциями, поскольку у них есть классические ELB.
Ответ 1
Здравствуйте, согласно документации AWS:
Консоль управления средой Elastic Beanstalk поддерживает только создание и управление средой Elastic Beanstalk с помощью Classic Балансировщик нагрузки. Другие параметры см. в разделе Балансировщик нагрузки приложения и Балансировщик сетевой нагрузки.
Также
Примечание Вы можете установить тип балансировщика нагрузки только в среде творчество. (См. документацию AWS)
Поэтому при развертывании приложения в Elastic Beanstalk через интерфейс командной строки AWS:
Попробуйте
eb create test-env --elb-type network
или
eb create test-env --elb-type application
Ответ 2
Невозможно изменить тип балансировки нагрузки для существующей среды, но я использовал следующий процесс для создания клонированной среды с балансиром нагрузки приложения (вместо классического).
- В консоли сохраните конфигурацию исходного env.
- В терминале
eb config get [save name]
, вы получите файл в .elasticbeanstalk\saved_configs
. - Отредактируйте файл для добавления
OptionSettings: aws:elasticbeanstalk:environment: LoadBalancerType: application
и удалите (если у вас есть):
aws:elb:loadbalancer: CrossZone: true aws:elb:policies: ConnectionDrainingEnabled: true aws:elb:listener:443: [whatever]
Вы можете использовать эту возможность для других изменений, таких как обновление PlatformArn
- Сохраните измененную конфигурацию как [новое имя сохранения].
- В терминале
eb config put [new save name]
. - Обновите свои
.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: ''
- Создайте новый env с
eb create [new env name] --cfg [new save name]
Теперь у вас будет новая среда с другим балансировщиком нагрузки рядом друг с другом со старой средой. Вы можете выполнить тестирование, внести дополнительные изменения в конфигурацию, а затем, если все будет хорошо, замените CNAME и завершите предыдущую среду.
Ответ 3
Я нашел самый простой способ изменить существующее приложение для использования балансировщика нагрузки приложения - использовать консоль и интерфейс командной строки:
- В консоли сохраните конфигурацию приложения исходного env. Запишите это имя вниз. Мы будем использовать его как
<saved-config-name>
.
- Под версиями приложения обратите внимание на последнюю метку версии. Мы будем использовать его как
<app-version>
.
- Из CLI запустите
eb create <new-environment-name> --elb-type application --cfg <saved-config-name> --version <app-version>
- Если в старом приложении вы настроили HTTP, заново настройте его в консоли в разделе Load Balancer ->Listeners с соответствующим сертификатом.