web-dev-qa-db-fra.com

Elastic Beanstalk Change ELB Type

Quelqu'un sait-il s'il est possible de changer un environnement AWS Elastic Beanstalk existant en un équilibreur de charge d'application (au lieu d'un classique).

Pour autant que je sache, seules les ELB d'application peuvent être protégées avec AWS WAF et DDOS "Shield", de sorte que toute application EB existante ne peut pas tirer parti de ces fonctionnalités car elles disposent d'ELB classiques.

19
David

Bonjour selon la documentation AWS:

La console de gestion de l'environnement Elastic Beanstalk prend uniquement en charge la création et la gestion d'un environnement Elastic Beanstalk avec un équilibreur de charge classique. Pour d'autres options, voir Application Load Balancer et Network Load Balancer.

Aussi

Remarque Vous ne pouvez définir le type d'équilibreur de charge que lors de la création de l'environnement. ( Reportez-vous à la documentation d'AWS )

Ainsi, lorsque vous déployez l'application sur Elastic Beanstalk via AWS CLI :

Essayer

eb create test-env --elb-type network

ou

eb create test-env --elb-type application

14
Kush Vyas

Il n'est pas possible de modifier le type d'équilibreur de charge pour un environnement existant, mais j'ai utilisé le processus suivant pour créer un environnement cloné avec un équilibreur de charge d'application (au lieu de classique).

  1. Dans la console, enregistrez la configuration de l'env d'origine.
  2. Dans le terminal, eb config get [save name], vous obtiendrez un fichier dans .elasticbeanstalk\saved_configs.
  3. Modifiez le fichier à ajouter

OptionSettings: aws:elasticbeanstalk:environment: LoadBalancerType: application

et supprimez (si vous en avez):

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

Vous pouvez utiliser cette opportunité pour effectuer d'autres modifications, telles que la mise à niveau PlatformArn

  1. Enregistrez la configuration modifiée sous [nouveau nom de sauvegarde].
  2. Dans le terminal, eb config put [new save name].
  3. Mettez à jour votre .ebextensions avoir LoadBalancerType: application et éventuellement ajouter un écouteur à elbv2. Vous pouvez également créer manuellement dans la console ultérieurement.

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

  1. Créez un nouvel env avec eb create [new env name] --cfg [new save name]

Vous allez maintenant avoir un nouvel environnement avec un type d'équilibreur de charge différent côte à côte avec votre ancien environnement. Vous pouvez effectuer des tests, effectuer d'autres modifications de configuration, puis si tout va bien, permuter les CNAME et mettre fin à l'environnement précédent.

19
Arik Yavilevich

Le moyen le plus simple que j'ai trouvé pour modifier une application existante pour utiliser l'équilibreur de charge d'application est d'utiliser à la fois la console et la CLI:

  1. Dans la console, enregistrez la configuration d'application de l'env d'origine. Notez ce nom. Nous l'utiliserons comme <saved-config-name>.
  2. Sous Versions d'application notez la dernière Version Label. Nous l'utiliserons comme <app-version>.
  3. Depuis la CLI, exécutez eb create <new-environment-name> --elb-type application --cfg <saved-config-name> --version <app-version>
  4. Si vous aviez des HTTP configurés dans l'ancienne application, dans la nouvelle application créée, reconfigurez-la dans la console sous Load Balancer -> Listeners avec le certificat approprié.
0
Almog Cohen