Roll back migrated resources to classic Application Load Balancer

This document describes how to roll back the migrated resources from the global external Application Load Balancer infrastructure to the classic Application Load Balancer infrastructure.

Use the following order to roll back a migrated resource within 90 days of changing its load balancing scheme:

  1. Roll back the forwarding rule.
  2. Roll back the backend buckets.
  3. Roll back all the backend services attached to the forwarding rule.

To roll back a backend service to the EXTERNAL load balancing scheme, you must first roll back the forwarding rule.

Before you begin

Before you roll back migrated resources, make sure that you've migrated the classic Application Load Balancer resources to the global external Application Load Balancer infrastructure and changed their load balancing schemes to EXTERNAL_MANAGED. Remember, only resources that were migrated to the EXTERNAL_MANAGED scheme from the EXTERNAL scheme in the last 90 days can be rolled back.

You must also remove any advanced traffic management features configured on the resources before you start the rollback process.

Permissions

To follow this document, you must have permissions to manage load balancer components. Make sure you have the Compute Network Admin role (roles/compute.networkAdmin).

For more information, see the following pages:

Roll back the forwarding rule

Console

To roll back forwarding rules, use the gcloud CLI.

gcloud

  1. Change the load balancing scheme of the forwarding rule from EXTERNAL_MANAGED to EXTERNAL.

    If a backend bucket is attached to the forwarding rule, skip this step and roll back the backend bucket.

    gcloud compute forwarding-rules update web-map-http-forwarding-rule \
      --load-balancing-scheme=EXTERNAL \
      --global
    

    Wait for some time (at least six minutes).

  2. Optional: Check the logs of the forwarding rule. You see the load balancing scheme has changed to EXTERNAL.

Roll back the backend bucket

Console

To roll back backend buckets, use the gcloud CLI.

gcloud

  1. Change the scheme of the backend bucket to EXTERNAL and the migration state to TEST_ALL_TRAFFIC.

    gcloud compute forwarding-rules update web-map-http-forwarding-rule \
      --load-balancing-scheme=EXTERNAL \
      --external-managed-backend-bucket-migration-state=TEST_ALL_TRAFFIC \
      --global
    

    Wait for some time (at least six minutes).

  2. To send some classic Application Load Balancer network traffic to the backend bucket, change the migration state of the backend bucket to TEST_BY_PERCENTAGE and set the percentage.

    gcloud compute forwarding-rules update web-map-http-forwarding-rule \
      --external-managed-backend-bucket-migration-state=TEST_BY_PERCENTAGE \
      --external-managed-backend-bucket-migration-testing-percentage=10 \
      --global
    

    Wait for some time (at least six minutes).

    You can check the load balancer's metrics to verify that the overall balance of requests matches your configured rollback rate.

  3. Change the migration state of the backend bucket to PREPARE.

    gcloud compute forwarding-rules update web-map-http-forwarding-rule \
      --external-managed-backend-bucket-migration-state=PREPARE \
      --global
    

    Wait for some time (at least six minutes).

  4. Change the migration state of the backend bucket to its pre-migration state.

    gcloud compute forwarding-rules update web-map-http-forwarding-rule \
      --clear-external-managed-migration-state \
      --global
    

    Wait for some time (at least six minutes).

Roll back the backend service

Console

Send traffic to the classic Application Load Balancer infrastructure

  1. In the Backend services section, for web-backend-service, verify the following, and click Revert.
    • Status: Migrated
    • Migration rate: 100%
    • Scheme activity: EXTERNAL: 0% EXTERNAL_MANAGED: 100%
  2. In the Manage migration pane, for Status change, select Test all traffic. This means that all requests are still sent to the global external Application Load Balancer infrastructure.
  3. Click Save. Wait for some time (at least six minutes) for the resource to be migrated. The Status column changes to Testing all traffic and Scheme activity to EXTERNAL: 0% EXTERNAL_MANAGED: 100%.

  4. Click Manage migration again.

  5. In the Manage migration pane, for Status change, select Test by percentage.

  6. For Testing percentage, enter 90. This means that 90 percent of requests continue to go to the global external Application Load Balancer infrastructure and the remaining 10 percent of requests will go to the classic Application Load Balancer infrastructure for testing.

  7. Click Save.

    Wait for some time (at least six minutes) for the resource to be ready. The Status column changes to Testing by %, Migration rate to 90%, and Scheme activity will be EXTERNAL: 10% EXTERNAL_MANAGED: 90%.

    After the resource is ready, it sends 90% of requests to the global external Application Load Balancer infrastructure and 10% of requests to the classic Application Load Balancer infrastructure.

  8. Test the load balancer to ensure that requests are being served as expected.

    Enter http://IP_ADDRESS in the address bar of the web browser. You should see the Page served from: lb-backend-example-xxxx message.

  9. You can repeat these steps to progressively decrease the percentage of traffic sent to the global external Application Load Balancer infrastructure.

    The backend service rollback process is complete when you are sending all traffic to the classic Application Load Balancer. The Status column will be Testing by %, Migration rate set to 0%, and Scheme activity will be EXTERNAL: 100% EXTERNAL_MANAGED: 0%.

gcloud

  1. Change the scheme of the backend service to EXTERNAL and the migration state to TEST_ALL_TRAFFIC.

    gcloud compute backend-services update web-backend-service \
      --load-balancing-scheme=EXTERNAL \
      --external-managed-migration-state=TEST_ALL_TRAFFIC \
      --global
    

    Wait for some time (at least six minutes).

  2. To send some classic Application Load Balancer network traffic to the backend service, change the migration state of the backend service to TEST_BY_PERCENTAGE and set the percentage.

    gcloud compute backend-services update web-backend-service \
      --external-managed-migration-state=TEST_BY_PERCENTAGE \
      --external-managed-migration-testing-percentage=10 \
      --global
    

    Wait for some time (at least six minutes).

    You can check the load balancer's metrics to verify that the overall balance of requests matches your configured rollback rate.

  3. Change the migration state of the backend service to PREPARE.

    gcloud compute backend-services update web-backend-service \
      --external-managed-migration-state=PREPARE \
      --global
    

    Wait for some time (at least six minutes).

  4. Change the migration state of the backend service to its pre-migration state.

    gcloud compute backend-services update web-backend-service \
      --clear-external-managed-migration-state \
      --global
    

    Wait for some time (at least six minutes).

  5. After rolling back the backend service, check its log. You see the load balancing scheme has changed to EXTERNAL.