Roll back migrated resources to classic Application Load Balancer
Stay organized with collections
Save and categorize content based on your preferences.
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:
Roll back the forwarding rule.
Roll back the backend buckets.
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.
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).
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.
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.
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%.
Click Manage migration again.
In the Manage migration pane, for Status change, select Test
by percentage.
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.
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.
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.
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
Change the scheme of the backend service to EXTERNAL and the migration
state to TEST_ALL_TRAFFIC.
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Roll back migrated resources to classic Application Load Balancer\n\nThis document describes how to roll back the [migrated\nresources](/load-balancing/docs/https/migrate-from-classic-global) from the\nglobal external Application Load Balancer infrastructure to the classic Application Load Balancer\ninfrastructure.\n\nUse the following order to roll back a migrated resource within 90 days of\nchanging its load balancing scheme:\n\n1. Roll back the forwarding rule.\n2. Roll back the backend buckets.\n3. Roll back all the backend services attached to the forwarding rule.\n\nTo roll back a backend service to the `EXTERNAL` load balancing scheme, you must\nfirst roll back the forwarding rule.\n\nBefore you begin\n----------------\n\nBefore you roll back migrated resources, make sure that you've [migrated the\nclassic Application Load Balancer resources to the global external Application Load Balancer\ninfrastructure](/load-balancing/docs/https/migrate-from-classic-global) and\nchanged their load balancing schemes to `EXTERNAL_MANAGED`. Remember, only\nresources that were migrated to the `EXTERNAL_MANAGED` scheme from the\n`EXTERNAL` scheme in the last 90 days can be rolled back.\n\nYou must also remove any [advanced traffic management\nfeatures](/load-balancing/docs/https/traffic-management-global) configured on\nthe resources before you start the rollback process.\n\n### Permissions\n\nTo follow this document, you must have permissions to manage load balancer\ncomponents. Make sure you have the [Compute Network Admin\nrole](/compute/docs/access/iam#compute.networkAdmin)\n(`roles/compute.networkAdmin`).\n\nFor more information, see the following pages:\n\n- [Roles and permissions](/load-balancing/docs/access-control)\n- [IAM Conditions for forwarding rules](/load-balancing/docs/access-control/iam-conditions)\n\nRoll back the forwarding rule\n-----------------------------\n\n### Console\n\nTo roll back forwarding rules, use the gcloud CLI.\n\n### gcloud\n\n1. Change the load balancing scheme of the forwarding rule from\n `EXTERNAL_MANAGED` to `EXTERNAL`.\n\n If a backend bucket is attached to the forwarding rule, skip this step and\n [roll back the backend bucket](#roll-back-backend-bucket). \n\n ```\n gcloud compute forwarding-rules update web-map-http-forwarding-rule \\\n --load-balancing-scheme=EXTERNAL \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n2. Optional: Check the logs of the forwarding rule. You see the load\n balancing scheme has changed to `EXTERNAL`.\n\nRoll back the backend bucket\n----------------------------\n\n### Console\n\nTo roll back backend buckets, use the gcloud CLI.\n\n### gcloud\n\n1. Change the scheme of the backend bucket to `EXTERNAL` and the migration\n state to `TEST_ALL_TRAFFIC`.\n\n ```\n gcloud compute forwarding-rules update web-map-http-forwarding-rule \\\n --load-balancing-scheme=EXTERNAL \\\n --external-managed-backend-bucket-migration-state=TEST_ALL_TRAFFIC \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n2. To send some classic Application Load Balancer network traffic to\n the backend bucket, change the migration state of the backend bucket to\n `TEST_BY_PERCENTAGE` and set the percentage.\n\n ```\n gcloud compute forwarding-rules update web-map-http-forwarding-rule \\\n --external-managed-backend-bucket-migration-state=TEST_BY_PERCENTAGE \\\n --external-managed-backend-bucket-migration-testing-percentage=10 \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n\n You can check the [load balancer's\n metrics](/load-balancing/docs/https/https-logging-monitoring#monitoring_metrics)\n to verify that the overall balance of requests matches your configured\n rollback rate.\n3. Change the migration state of the backend bucket to `PREPARE`.\n\n ```\n gcloud compute forwarding-rules update web-map-http-forwarding-rule \\\n --external-managed-backend-bucket-migration-state=PREPARE \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n4. Change the migration state of the backend bucket to its pre-migration state.\n\n ```\n gcloud compute forwarding-rules update web-map-http-forwarding-rule \\\n --clear-external-managed-backend-bucket-migration-state \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n\nRoll back the backend service\n-----------------------------\n\n### Console\n\n**Send traffic to the classic Application Load Balancer infrastructure**\n\n1. In the **Backend services** section, for **`web-backend-service`** , verify the following, and click **Revert** .\n - **Status** : **Migrated**\n - **Migration rate** : **100%**\n - **Scheme activity** : **EXTERNAL: 0% EXTERNAL_MANAGED: 100%**\n2. In the **Manage migration** pane, for **Status change** , select **Test\n all traffic**. This means that all requests are still sent to the global external Application Load Balancer infrastructure.\n3. Click **Save** .\n Wait for some time (at least six minutes) for the\n resource to be migrated. The **Status** column changes to\n **Testing all traffic** and **Scheme activity** to **EXTERNAL: 0%\n EXTERNAL_MANAGED: 100%**.\n\n4. Click **Manage migration** again.\n\n5. In the **Manage migration** pane, for **Status change** , select **Test\n by percentage**.\n\n6. For **Testing percentage** , enter `90`. This means that 90 percent of\n requests continue to go to the global external Application Load Balancer infrastructure\n and the remaining 10 percent of requests will go to the\n classic Application Load Balancer infrastructure for testing.\n\n7. Click **Save**.\n\n Wait for some time (at least six minutes) for the resource to be\n ready. The **Status** column changes to **Testing by %** , **Migration\n rate** to **90%** , and **Scheme activity** will be **EXTERNAL: 10%\n EXTERNAL_MANAGED: 90%**.\n\n After the resource is ready, it sends 90% of requests to the\n global external Application Load Balancer infrastructure and 10% of requests to\n the classic Application Load Balancer infrastructure.\n8. Test the load balancer to ensure that requests are being served as\n expected.\n\n Enter `http://`\u003cvar translate=\"no\"\u003eIP_ADDRESS\u003c/var\u003e in the\n address bar of the web browser. You should see the `Page served\n from: lb-backend-example-xxxx` message.\n9. You can repeat these steps to progressively decrease the percentage of\n traffic sent to the global external Application Load Balancer infrastructure.\n\n The backend service rollback process is complete when you are sending all\n traffic to the classic Application Load Balancer. The **Status** column will be\n **Testing by %** , **Migration rate** set to **0%** , and **Scheme\n activity** will be **EXTERNAL: 100% EXTERNAL_MANAGED: 0%**.\n\n### gcloud\n\n1. Change the scheme of the backend service to `EXTERNAL` and the migration\n state to `TEST_ALL_TRAFFIC`.\n\n ```\n gcloud compute backend-services update web-backend-service \\\n --load-balancing-scheme=EXTERNAL \\\n --external-managed-migration-state=TEST_ALL_TRAFFIC \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n2. To send some classic Application Load Balancer network traffic to\n the backend service, change the migration state of the backend service to\n `TEST_BY_PERCENTAGE` and set the percentage.\n\n ```\n gcloud compute backend-services update web-backend-service \\\n --external-managed-migration-state=TEST_BY_PERCENTAGE \\\n --external-managed-migration-testing-percentage=10 \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n\n You can check the [load balancer's\n metrics](/load-balancing/docs/https/https-logging-monitoring#monitoring_metrics)\n to verify that the overall balance of requests matches your configured\n rollback rate.\n3. Change the migration state of the backend service to `PREPARE`.\n\n ```\n gcloud compute backend-services update web-backend-service \\\n --external-managed-migration-state=PREPARE \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n4. Change the migration state of the backend service to its pre-migration state.\n\n ```\n gcloud compute backend-services update web-backend-service \\\n --clear-external-managed-migration-state \\\n --global\n ```\n\n Wait for some time (at least six minutes).\n5. After rolling back the backend service, check its log. You see the load\n balancing scheme has changed to `EXTERNAL`."]]