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.
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
Change the load balancing scheme of the forwarding rule from
EXTERNAL_MANAGED
toEXTERNAL
.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).
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
Change the scheme of the backend bucket to
EXTERNAL
and the migration state toTEST_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).
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.
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).
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
- 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%
- 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 thePage 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 toTEST_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).
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.
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).
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).
After rolling back the backend service, check its log. You see the load balancing scheme has changed to
EXTERNAL
.