Change Elastic Beanstalk ALB from internal to public internet-facing?



I have an EB stack which initially deploys to UAT internally and so has an internal load balancer (YAML: "LoadBalancerScheme: internal"). For production deployment, we simply change stage variables called by the YAML, so it updates the EB with production values. This works fine with classic ELB. But with ALB (ELBv2), it fails with:

The following target groups cannot be associated with more than one load balancer Is it not possible to change an existing EB environment from internal to public load balancer of the same type? If not, any good workarounds without deploying a completely separate environment (which is what I've been doing)?


1 Answer
Accepted Answer

Hey there, You mention that you are trying to change an Elastic Beanstalk ALB from internal to public internet-facing.

With that being said unfortunately it is not possible to change the Application Load Balancer from an internal Load Balancer to a public Load Balancer. The only way it can be changed is by creating a new Application Load Balancer to replace the current ALB. Since you created your environment with Elastic Beanstalk you will also need to create a new environment with the same app code but with a public ALB. Using Elastic Beanstalk helps avoid downtime.

To minimise downtime or to get no downtime in changing from an internal to public load balancer, you may use of blue-green deployments [1]. In order to use blue-green deployments you will have to create a new environment with the configuration you want , in your use case using an internet facing load balancer. When the environment is done deploying, you can perform testing to make sure that the environment is working as expected. Once this is done, you can simply swap the URL of the two environments by choosing the option in the 'Actions' tab in the new environment.



answered 2 years ago
  • Thanks, I figured that was the case, since I've never been able to get around it. Pretty ridiculous limitation that EB as an orchestration tool can't simply replace the ALB with another ALB without a whole new environment, which is why I figured I'd ask, in case I was missing a workaround. So I guess I'll stick with blue/green as usual.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions