Elastic Load Balancing
User Guide

Migrate Your Classic Load Balancer

If you have an existing Classic Load Balancer and you have determined that an Application Load Balancer or a Network Load Balancer would meet your needs, you can migrate your Classic Load Balancer. After you have completed the migration process, you can take advantage of the features of your new load balancer.

Step 1: Create a New Load Balancer

Create an Application Load Balancer or a Network Load Balancer with a configuration that is equivalent to your Classic Load Balancer.

  • Create a new load balancer, with the same scheme (Internet-facing or internal), subnets, and security groups as the Classic Load Balancer.

  • Create one target group for your load balancer, with the same health check settings that you have for your Classic Load Balancer.

  • Do one of the following:

    • If your Classic Load Balancer is attached to an Auto Scaling group, attach your target group to the Auto Scaling group. This also registers the Auto Scaling instances with the target group.

    • Register your EC2 instances with your target group.

  • Create one or more listeners, each with a default rule that forwards requests to the target group. If you create an HTTPS listener, you can specify the same certificate that you specified for your Classic Load Balancer, and we recommend that you use the default security policy.

  • If your Classic Load Balancer has tags, review them and add the relevant tags to your new load balancer.

You can create the load balancer and target group step-by-step using the AWS Management Console, AWS CLI, or an AWS SDK. Alternatively, you can create them using the Load Balancer Copy Utility, which you can find on GitHub.


Step 2: Gradually Redirect Traffic to Your New Load Balancer

After your instances are registered with your new load balancer, you can begin the process of testing your new load balancer as you gradually redirect traffic.

To redirect traffic to your new load balancer gradually

  1. Paste the DNS name of your new load balancer into the address field of an Internet-connected web browser. If everything is working, the browser displays the default page of your server.

  2. Create a new DNS record that associates your domain name with your new load balancer. If your DNS service supports weighting, specify a weight of 1 in the new DNS record and a weight of 9 in the existing DNS record for your Classic Load Balancer. This directs 10% of the traffic to the new load balancer and 90% of the traffic to the Classic Load Balancer.

  3. Monitor your new load balancer to verify that it is receiving traffic and routing requests to your instances.


    The time-to-live (TTL) in the DNS record is 60 seconds, which means that any DNS server that resolves your domain name keeps the record information in its cache for 60 seconds. Therefore, these DNS servers can still route traffic to your Classic Load Balancer for up to 60 seconds after you complete the previous step and the changes start to propagate to DNS servers around the world. During propagation, traffic could be directed to either load balancer.

  4. Continue to update the weight of your DNS records until all traffic is directed to your new load balancer. When you are finished, you can delete the DNS record for your Classic Load Balancer.

Step 3: Update References to Your Classic Load Balancer

Now that you have migrated your Classic Load Balancer, be sure to update any references to it, such as the following:

  • Scripts that use the AWS CLI aws elb commands (instead of the aws elbv2 commands)

  • Code that uses Elastic Load Balancing API version 2012-06-01 (instead of version 2015-12-01)

  • IAM policies that use API version 2012-06-01 (instead of version 2015-12-01)

  • Processes that use CloudWatch metrics

  • AWS CloudFormation templates


Step 4: Delete the Classic Load Balancer

After you've redirected all traffic to the new load balancer and all existing requests that were routed to the Classic Load Balancer have completed, you can delete the Classic Load Balancer.