このドキュメントでは、グローバル外部アプリケーション ロードバランサ インフラストラクチャから従来のアプリケーション ロードバランサ インフラストラクチャに移行されたリソースをロールバックする方法について説明します。
ロード バランシング スキームを変更してから 90 日以内に移行したリソースをロールバックする場合は、次の順序で行います。
- 転送ルールをロールバックする。
- バックエンド バケットをロールバックする。
- 転送ルールに関連付けられているすべてのバックエンド サービスをロールバックする。
バックエンド サービスを EXTERNAL ロード バランシング スキームにロールバックするには、まず転送ルールをロールバックする必要があります。
始める前に
移行したリソースをロールバックする前に、従来のアプリケーション ロードバランサのリソースをグローバル外部アプリケーション ロードバランサ インフラストラクチャに移行し、ロード バランシング スキームを EXTERNAL_MANAGED に変更していることを確認します。ロールバックできるのは、過去 90 日以内に EXTERNAL スキームから EXTERNAL_MANAGED スキームに移行されたリソースのみです。
また、ロールバック プロセスを開始する前に、リソースに構成されている高度なトラフィック管理機能を削除する必要があります。
必要なロール
ロードバランサ コンポーネントの管理に必要な権限を取得するには、プロジェクトに対する Compute ネットワーク管理者(roles/compute.networkAdmin)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
詳しくは次のページをご覧ください。
転送ルールをロールバックする
コンソール
転送ルールをロールバックするには、gcloud CLI を使用します。
gcloud
転送ルールのロード バランシング スキームを
EXTERNAL_MANAGEDからEXTERNALに変更します。バックエンド バケットが転送ルールに関連付けられている場合は、この手順をスキップして、バックエンド バケットをロールバックします。
gcloud compute forwarding-rules update FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --globalFORWARDING_RULE_NAMEは、転送ルールの名前に置き換えます。例:web-map-http-forwarding-rule6 分以上待ちます。
省略可: 転送ルールのログを確認します。ロード バランシング スキームが
EXTERNALに変更されていることが確認できます。
バックエンド バケットをロールバックする
コンソール
バックエンド バケットをロールバックするには、gcloud CLI を使用します。
gcloud
バックエンド バケットのスキーマを
EXTERNALに、移行ステータスをTEST_ALL_TRAFFICに変更します。gcloud compute forwarding-rules update FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --external-managed-backend-bucket-migration-state=TEST_ALL_TRAFFIC \ --global6 分以上待ちます。
従来のアプリケーション ロードバランサのネットワーク トラフィックの一部をバックエンド バケットに送信するには、バックエンド バケットの移行ステータスを
TEST_BY_PERCENTAGEに変更し、割合を指定します。 たとえば、90のようにします。これにより、リクエストの 90% が引き続きグローバル外部アプリケーション ロードバランサ インフラストラクチャに送信され、残りの 10% のリクエストはテストとして従来のアプリケーション ロードバランサ インフラストラクチャに送信されます。gcloud compute forwarding-rules update FORWARDING_RULE_NAME \ --external-managed-backend-bucket-migration-state=TEST_BY_PERCENTAGE \ --external-managed-backend-bucket-migration-testing-percentage=90 \ --global6 分以上待ちます。
ロードバランサの指標から、リクエストの全体的なバランスが構成したロールバック率と一致していることを確認できます。
バックエンド バケットの移行ステータスを
PREPAREに変更します。gcloud compute forwarding-rules update FORWARDING_RULE_NAME \ --external-managed-backend-bucket-migration-state=PREPARE \ --global6 分以上待ちます。
バックエンド バケットの移行ステータスを移行前のステータスに変更します。
gcloud compute forwarding-rules update FORWARDING_RULE_NAME \ --clear-external-managed-backend-bucket-migration-state \ --global6 分以上待ちます。
バックエンド サービスをロールバックする
コンソール
従来のアプリケーション ロードバランサ インフラストラクチャにトラフィックを送信する
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
ロードバランサの名前をクリックします。例:
web-map-http[移行] タブをクリックします。
[バックエンド サービス] セクションで、バックエンド サービスについて次の項目を確認し、[元に戻す] をクリックします。
- ステータス: 移行済み
- 移行率: 100%
- スキームのアクティビティ: EXTERNAL: 0% EXTERNAL_MANAGED: 100%
[移行を管理] ペインの [ステータスの変更] で [すべてのトラフィックをテスト] を選択します。これにより、すべてのリクエストが引き続きグローバル外部アプリケーション ロードバランサ インフラストラクチャに送信されます。
[保存] をクリックします。リソースの移行が完了するまで 6 分以上待ちます。[ステータス] 列が [すべてのトラフィックをテスト中] に変わり、[スキームのアクティビティ] が [EXTERNAL: 0% EXTERNAL_MANAGED: 100%] になります。
[移行を管理] をクリックします。
[移行を管理] ペインの [ステータスの変更] で [割合を指定してテスト] を選択します。
[テストの割合] に、グローバル外部アプリケーション ロードバランサ インフラストラクチャに送信するリクエストの割合を入力します。たとえば、
90のようにします。これにより、リクエストの 90% が引き続きグローバル外部アプリケーション ロードバランサ インフラストラクチャに送信され、残りの 10% のリクエストはテストとして従来のアプリケーション ロードバランサ インフラストラクチャに送信されます。[保存] をクリックします。
リソースの準備が完了するまで 6 分以上待ちます。[ステータス] 列が [テスト中(%)] に変わり、[移行率] が [90%]、[スキームのアクティビティ] が [EXTERNAL: 10% EXTERNAL_MANAGED: 90%] になります。
リソースの準備が完了すると、リクエストの 90% がグローバル外部アプリケーション ロードバランサ インフラストラクチャに送信され、10% のリクエストが従来のアプリケーション ロードバランサ インフラストラクチャに送信されます。
ロードバランサをテストして、リクエストが想定どおりに処理されていることを確認します。
ウェブブラウザのアドレスバーに「
http://IP_ADDRESS」と入力します。Page served from: lb-backend-example-xxxxというメッセージが表示されます。この手順を繰り返し、グローバル外部アプリケーション ロードバランサ インフラストラクチャに送信するトラフィックの割合を徐々に減らしていきます。
すべてのトラフィックを従来のアプリケーション ロードバランサに送信するようになったら、バックエンド サービスのロールバック プロセスは完了です。[ステータス] 列は [ テスト中(%)]、[移行率] は [0%]、[スキームのアクティビティ] は [EXTERNAL: 100% EXTERNAL_MANAGED: 0%] になります。
gcloud
バックエンド サービスのスキーマを
EXTERNALに、移行ステータスをTEST_ALL_TRAFFICに変更します。gcloud compute backend-services update BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL \ --external-managed-migration-state=TEST_ALL_TRAFFIC \ --globalBACKEND_SERVICE_NAMEは、バックエンド サービスの名前に置き換えます。例:web-backend-service6 分以上待ちます。
従来のアプリケーション ロードバランサのネットワーク トラフィックの一部をバックエンド サービスに送信するには、バックエンド サービスの移行ステータスを
TEST_BY_PERCENTAGEに変更し、割合を指定します。 たとえば、90のようにします。これにより、リクエストの 90% が引き続きグローバル外部アプリケーション ロードバランサ インフラストラクチャに送信され、残りの 10% のリクエストはテストとして従来のアプリケーション ロードバランサ インフラストラクチャに送信されます。gcloud compute backend-services update BACKEND_SERVICE_NAME \ --external-managed-migration-state=TEST_BY_PERCENTAGE \ --external-managed-migration-testing-percentage=90 \ --global6 分以上待ちます。
ロードバランサの指標から、リクエストの全体的なバランスが構成したロールバック率と一致していることを確認できます。
バックエンド サービスの移行ステータスを
PREPAREに変更します。gcloud compute backend-services update BACKEND_SERVICE_NAME \ --external-managed-migration-state=PREPARE \ --global6 分以上待ちます。
バックエンド サービスの移行ステータスを移行前のスタータスに変更します。
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --clear-external-managed-migration-state \ --global6 分以上待ちます。
バックエンド サービスのロールバック完了後、ログを確認します。ロード バランシング スキームが
EXTERNALに変更されていることが確認できます。