使用 Azure 入口網站將 Azure 內部負載平衡器移至另一個區域

有許多情況會讓您想要將現有的內部負載平衡器從某個區域移至另一個區域。 例如,您可能想要使用相同的設定,來建立內部負載平衡器以進行測試。 您也可能想要將內部負載平衡器移至另一個區域,作為災害復原計畫的一部分。

Azure 內部負載平衡器無法從某個區域移至另一個區域。 不過,您可使用 Azure Resource Manager 範本,來匯出內部負載平衡器的現有設定和虛擬網路。 接著,您可以將負載平衡器和虛擬網路匯出至範本、修改參數以符合目的地區域,然後將範本部署到新的區域,藉此將資源暫存在另一個區域中。 如需有關 Resource Manager 和範本的詳細資訊,請參閱快速入門:使用 Azure 入口網站建立及部署 Azure Resource Manager 範本 (部分機器翻譯)。

必要條件

  • 請確定 Azure 內部負載平衡器位於您要從中移動的 Azure 區域中。

  • 無法在區域之間移動 Azure 內部負載平衡器。 您必須將新的負載平衡器與目標區域中的資源建立關聯。

  • 若要匯出內部負載平衡器設定並部署範本,以在另一個區域中建立內部負載平衡器,您需要網路參與者角色或更高的角色。

  • 識別來源網路配置,以及您目前使用的所有資源。 此配置包括 (但不限於) 負載平衡器、網路安全性群組、虛擬機器及虛擬網路。

  • 驗證您的 Azure 訂用帳戶是否允許您在所使用的目標區域中建立內部負載平衡器。 請連絡支援人員啟用所需的配額。

  • 請確認訂用帳戶具有足夠資源,可支援新增此流程的負載平衡器。 請參閱 Azure 訂用帳戶和服務限制、配額與限制

準備及移動

下列步驟說明如何使用 Resource Manager 範本,準備內部負載平衡器進行移動,以及如何使用 Azure 入口網站,將內部負載平衡器設定移至目標區域。 作為此流程的一部分,必須包含內部負載平衡器的虛擬網路設定,而且必須先完成此設定,然後才能移動內部負載平衡器。

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

匯出虛擬網路範本,並從 Azure 入口網站進行部署

  1. 登入 Azure 入口網站> [資源群組]

  2. 找到包含來源虛擬網路的資源群組,然後選取該群組。

  3. 選取 >[設定>匯出範本]

  4. 選擇 [匯出範本] 下的 [部署]

  5. 選取 [範本]>[編輯參數],在線上編輯器中開啟 parameters.json 檔案。

  6. 若要編輯虛擬網路名稱的參數,請變更 parameters 下的 value 屬性:

    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "virtualNetworks_myVNET1_name": {
                "value": "<target-virtual-network-name>"
            }
        }
    }
    
  7. 將編輯器中的來源虛擬名稱值變更為您選擇的目標 VNET 名稱。 請確實以引號括住名稱。

  8. 在編輯器中選取 [儲存]

  9. 選取 [範本]>[編輯範本],在線上編輯器中開啟 template.json 檔案。

  10. 若要編輯 VNET 將移至其中的目標區域,請在 resources 下方變更 location 屬性:

    "resources": [
                {
                    "type": "Microsoft.Network/virtualNetworks",
                    "apiVersion": "2019-06-01",
                    "name": "[parameters('virtualNetworks_myVNET1_name')]",
                    "location": "<target-region>",
                    "properties": {
                        "provisioningState": "Succeeded",
                        "resourceGuid": "6e2652be-35ac-4e68-8c70-621b9ec87dcb",
                        "addressSpace": {
                            "addressPrefixes": [
                                "10.0.0.0/16"
                            ]
                        },
    
    
  11. 若要取得區域位置代碼,請參閱 Azure 位置。 區域名稱除去空格即為區域代碼,Central US = centralus

  12. 您也可以根據需求而選擇變更 template.json 檔案中的其他參數:

    • 位址空間 - 您可以改變 VNET 的位址空間,方法是修改 resources>addressSpace 區段,然後變更 template.json 檔案中的 addressPrefixes 屬性:

              "resources": [
                  {
                  "type": "Microsoft.Network/virtualNetworks",
                  "apiVersion": "2019-06-01",
                  "name": "[parameters('virtualNetworks_myVNET1_name')]",
                  "location": "<target-region",
                  "properties": {
                  "provisioningState": "Succeeded",
                  "resourceGuid": "6e2652be-35ac-4e68-8c70-621b9ec87dcb",
                  "addressSpace": {
                      "addressPrefixes": [
                      "10.0.0.0/16"
                      ]
                  },
      
      
    • 子網路 - 您可以變更或新增子網路名稱和子網路位址空間,方法是修改 template.json 檔案的 subnets 區段。 您可以改變 name 屬性來變更子網路的名稱。 您可以變更子網路位址空間,方法是改變 template.json 檔案中的 addressPrefix 屬性:

              "subnets": [
                  {
                  "name": "subnet-1",
                  "etag": "W/\"d9f6e6d6-2c15-4f7c-b01f-bed40f748dea\"",
                  "properties": {
                  "provisioningState": "Succeeded",
                  "addressPrefix": "10.0.0.0/24",
                  "delegations": [],
                  "privateEndpointNetworkPolicies": "Enabled",
                  "privateLinkServiceNetworkPolicies": "Enabled"
                  }
                  },
                  {
                  "name": "GatewaySubnet",
                  "etag": "W/\"d9f6e6d6-2c15-4f7c-b01f-bed40f748dea\"",
                  "properties": {
                  "provisioningState": "Succeeded",
                  "addressPrefix": "10.0.1.0/29",
                  "serviceEndpoints": [],
                  "delegations": [],
                  "privateEndpointNetworkPolicies": "Enabled",
                  "privateLinkServiceNetworkPolicies": "Enabled"
                  }
                  }
      
              ]
      

      template.json 檔案中,若要變更位址首碼,必須在下列兩個位置進行編輯:上面列出的區段和下面列出的 type 區段。 變更 addressPrefix 屬性以符合上述:

       "type": "Microsoft.Network/virtualNetworks/subnets",
         "apiVersion": "2019-06-01",
         "name": "[concat(parameters('virtualNetworks_myVNET1_name'), '/GatewaySubnet')]",
            "dependsOn": [
               "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_myVNET1_name'))]"
                 ],
            "properties": {
               "provisioningState": "Succeeded",
               "addressPrefix": "10.0.1.0/29",
               "serviceEndpoints": [],
               "delegations": [],
               "privateEndpointNetworkPolicies": "Enabled",
               "privateLinkServiceNetworkPolicies": "Enabled"
                }
               },
                {
                "type": "Microsoft.Network/virtualNetworks/subnets",
                "apiVersion": "2019-06-01",
                "name": "[concat(parameters('virtualNetworks_myVNET1_name'), '/subnet-1')]",
                   "dependsOn": [
                      "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_myVNET1_name'))]"
                        ],
                   "properties": {
                      "provisioningState": "Succeeded",
                      "addressPrefix": "10.0.0.0/24",
                      "delegations": [],
                      "privateEndpointNetworkPolicies": "Enabled",
                      "privateLinkServiceNetworkPolicies": "Enabled"
                       }
                }
       ]
      
  13. 在線上編輯器中選取 [儲存]

  14. 選取 [基本]>[訂用帳戶],以選擇要部署目標 VNET 的訂用帳戶。

  15. 選取 [基本]>[資源群組],以選擇要部署目標 VNET 的資源群組。 您可以選取 [新建],為目標 VNET 建立新的資源群組。 請確定名稱與現有 VNET 的來源資源群組不同。

  16. 確認 [基本]>[位置] 已設為您想要部署 VNET 的目標位置。

  17. 在 [設定] 底下,確認名稱與您在上方參數編輯器中輸入的名稱一致。

  18. 勾選 [條款及條件] 底下的方塊。

  19. 選取 [購買] 按鈕以部署目標虛擬網路。

匯出內部負載平衡器範本,並從 Azure PowerShell 部署

  1. 選取 Azure 入口網站>[資源群組]

  2. 找出包含來源內部負載平衡器的資源群組,然後選取該資源群組。

  3. 選取 >[設定>匯出範本]

  4. 選擇 [匯出範本] 下的 [部署]

  5. 選取 [範本]>[編輯參數],在線上編輯器中開啟 parameters.json 檔案。

  6. 若要編輯內部負載平衡器名稱的參數,請將來源內部負載平衡器名稱的 defaultValue 屬性變更為目標內部負載平衡器的名稱,並確定名稱是以引號括住:

         "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
         "contentVersion": "1.0.0.0",
         "parameters": {
            "loadBalancers_myLoadBalancer_name": {
            "defaultValue": "<target-internal-lb-name>",
            "type": "String"
             },
            "virtualNetworks_myVNET2_internalid": {
             "defaultValue": "<target-vnet-resource-ID>",
             "type": "String"
             }
    
  7. 若要編輯上面移動的目標虛擬網路值,您必須先取得資源識別碼,然後將其複製並貼入 parameters.json 檔案中。 若要取得識別碼:

    1. 在另一個瀏覽器索引標籤或視窗中,選取 Azure 入口網站>[資源群組]

    2. 找出包含上述步驟中移動之虛擬網路的目標資源群組,然後選取該資源群組。

    3. 選取 [設定]>>[屬性]

    4. 在入口網站的右側,醒目提示 [資源識別碼],並將其複製到剪貼簿。 或者,您可以選取 [資源識別碼] 路徑右邊的 [複製到剪貼簿] 按鈕。

    5. 將資源識別碼貼入編輯參數編輯器的 defaultValue 屬性中,該編輯器是在其他瀏覽器視窗或索引標籤中開啟:

       "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion": "1.0.0.0",
       "parameters": {
          "loadBalancers_myLoadBalancer_name": {
          "defaultValue": "<target-internal-lb-name>",
          "type": "String"
           },
          "virtualNetworks_myVNET2_internalid": {
           "defaultValue": "<target-vnet-resource-ID>",
           "type": "String"
           }
      
    6. 在線上編輯器中選取 [儲存]

  8. 選取 [範本]>[編輯範本],在線上編輯器中開啟 template.json 檔案。

  9. 若要編輯內部負載平衡器設定將移至其中的目標區域,請在 template.json 檔案中變更 resources 下的 location 屬性:

        "resources": [
            {
                "type": "Microsoft.Network/loadBalancers",
                "apiVersion": "2019-06-01",
                "name": "[parameters('loadBalancers_myLoadBalancer_name')]",
                "location": "<target-internal-lb-region>",
                "sku": {
                    "name": "Standard",
                    "tier": "Regional"
                },
    
  10. 若要取得區域位置代碼,請參閱 Azure 位置。 區域名稱除去空格即為區域代碼,Central US = centralus

  11. 您也可以根據需求而選擇變更範本中的其他參數:

    • SKU - 您可以變更 template.json 檔案中的 sku>name 屬性,以將設定中內部負載平衡器的 SKU 從標準變更為基本,或從基本變更為標準:

      "resources": [
      {
          "type": "Microsoft.Network/loadBalancers",
          "apiVersion": "2019-06-01",
          "name": "[parameters('loadBalancers_myLoadBalancer_name')]",
          "location": "<target-internal-lb-region>",
          "sku": {
              "name": "Standard",
              "tier": "Regional"
          },
      

      如需基本和標準 SKU 負載平衡器之間差異的詳細資訊,請參閱 Azure Standard Load Balancer 概觀

    • 可用性區域 - 您可以變更區域屬性,以變更負載平衡器的前端區域。 如果未指定區域屬性,則會將前端建立為無區域。 您可以指定單一區域來建立區域前端,或區域備援前端的所有 3 個區域。

      "frontendIPConfigurations": [
      { 
          "name": "myfrontendIPinbound",
          "etag": "W/\"39e5e9cd-2d6d-491f-83cf-b37a259d86b6\"",
          "type": "Microsoft.Network/loadBalancers/frontendIPConfigurations",
          "properties": {
              "provisioningState": "Succeeded",
              "privateIPAddress": "10.0.0.6",
              "privateIPAllocationMethod": "Dynamic",
              "subnet": {
                  "id": "[concat(parameters('virtualNetworks_myVNET2_internalid'), '/subnet-1')]"
              },
              "loadBalancingRules": [
                  {
                      "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/loadBalancingRules/myInboundRule')]"
                  }
              ],
              "privateIPAddressVersion": "IPv4"
          },
          "zones": [
              "1",
              "2",
              "3"
          ]
      },
      

      如需有關可用性區域的詳細資訊,請參閱 Azure 中的區域和可用性區域

    • 負載平衡規則 - 您可以在 template.json 檔案中新增或移除 loadBalancingRules 區段中的項目,來新增或移除設定中的負載平衡規則:

      "loadBalancingRules": [
                  {
                      "name": "myInboundRule",
                      "etag": "W/\"39e5e9cd-2d6d-491f-83cf-b37a259d86b6\"",
                      "properties": {
                          "provisioningState": "Succeeded",
                          "frontendIPConfiguration": {
                              "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/frontendIPConfigurations/myfrontendIPinbound')]"
                          },
                          "frontendPort": 80,
                          "backendPort": 80,
                          "enableFloatingIP": false,
                          "idleTimeoutInMinutes": 4,
                          "protocol": "Tcp",
                          "enableTcpReset": false,
                          "loadDistribution": "Default",
                          "disableOutboundSnat": true,
                          "backendAddressPool": {
                              "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/backendAddressPools/myBEPoolInbound')]"
                          },
                          "probe": {
                              "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/probes/myHTTPProbe')]"
                          }
                      }
                  }
              ]
      

      如需負載平衡規則的詳細資訊,請參閱什麼是 Azure Load Balancer?

    • 探查 - 您可以在 template.json 檔案中新增或移除 probes 區段中的項目,來新增或移除設定中負載平衡器的探查:

      "probes": [
                  {
                      "name": "myHTTPProbe",
                      "etag": "W/\"39e5e9cd-2d6d-491f-83cf-b37a259d86b6\"",
                      "properties": {
                          "provisioningState": "Succeeded",
                          "protocol": "Http",
                          "port": 80,
                          "requestPath": "/",
                          "intervalInSeconds": 15,
                          "numberOfProbes": 2
                      }
                  }
              ],
      

      如需 Azure Load Balancer 健全狀態探查的詳細資訊,請參閱 Load Balancer 健全狀態探查

    • 輸入 NAT 規則 - 您可以在 template.json 檔案中新增或移除 inboundNatRules 區段中的項目,來新增或移除負載平衡器的輸入 NAT 規則:

      "inboundNatRules": [
                  {
                      "name": "myInboundNATRule",
                      "etag": "W/\"39e5e9cd-2d6d-491f-83cf-b37a259d86b6\"",
                      "properties": {
                          "provisioningState": "Succeeded",
                          "frontendIPConfiguration": {
                              "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/frontendIPConfigurations/myfrontendIPinbound')]"
                          },
                          "frontendPort": 4422,
                          "backendPort": 3389,
                          "enableFloatingIP": false,
                          "idleTimeoutInMinutes": 4,
                          "protocol": "Tcp",
                          "enableTcpReset": false
                      }
                  }
              ]
      

      若要完成輸入 NAT 規則的新增或移除,必須在 template.json 檔案結尾新增或移除以 type 屬性表示的規則:

      {
          "type": "Microsoft.Network/loadBalancers/inboundNatRules",
          "apiVersion": "2019-06-01",
          "name": "[concat(parameters('loadBalancers_myLoadBalancer_name'), '/myInboundNATRule')]",
          "dependsOn": [
              "[resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name'))]"
          ],
          "properties": {
              "provisioningState": "Succeeded",
              "frontendIPConfiguration": {
                  "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/frontendIPConfigurations/myfrontendIPinbound')]"
              },
              "frontendPort": 4422,
              "backendPort": 3389,
              "enableFloatingIP": false,
              "idleTimeoutInMinutes": 4,
              "protocol": "Tcp",
              "enableTcpReset": false
          }
      }
      

      如需輸入 NAT 規則的詳細資訊,請參閱什麼是 Azure Load Balancer?

  12. 在線上編輯器中選取 [儲存]

  13. 選取 [基本]>[訂用帳戶],以選擇要部署目標內部負載平衡器的訂用帳戶。

  14. 選取 [基本]>[資源群組],以選擇要部署目標負載平衡器的資源群組。 您可以選取 [新建],為目標內部負載平衡器建立新的資源群組,或選擇在上述步驟中為虛擬網路建立的現有資源群組。 請確定名稱與現有內源外部負載平衡器的來源資源群組不同。

  15. 驗證 [基本]>[位置] 是否已設為您要部署內部負載平衡器的目標位置。

  16. 在 [設定] 底下,確認名稱與您在上方參數編輯器中輸入的名稱一致。 驗證是否已針對設定中的任何虛擬網路填入資源識別碼。

  17. 勾選 [條款及條件] 底下的方塊。

  18. 選取 [購買] 按鈕以部署目標虛擬網路。

捨棄

如果您想要捨棄目標虛擬網路和內部負載平衡器,請刪除包含目標虛擬網路和內部負載平衡器的資源群組。 若要這樣做,請從入口網站的儀表板上選取資源群組,然後選取概觀頁面頂端的 [刪除]

清理

若要認可變更並完成虛擬網路和內部負載平衡器的移動,請刪除來源虛擬網路和內部負載平衡器或資源群組。 若要執行此操作,請從入口網站中的儀表板選取虛擬網路和內部負載平衡器或資源群組,然後選取每個頁面頂端的 [刪除]

下一步

在本教學課程中,您已將 Azure 內部負載平衡器從某個區域移至另一個區域,並清除了來源資源。 若要深入了解如何在 Azure 中的區域之間移動資源和災害復原,請參閱: