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

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

就字面意義來看,您無法將 Azure 外部負載平衡器從某個區域移至另一個區域。 但是,您可以使用 Azure Resource Manager 範本,匯出外部負載平衡器的現有設定和公用 IP 位址。 接著,您可以將負載平衡器和公用 IP 匯出至範本、修改參數以符合目的地區域,然後將範本部署到新的區域,藉此將資源暫存在另一個區域中。 如需 Resource Manager 和範本的詳細資訊,請參閱將資源群組匯出至範本

必要條件

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

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

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

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

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

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

準備及移動

下列程序說明如何使用 Resource Manager 範本,準備外部負載平衡器進行移動,以及如何使用 Azure 入口網站,將外部負載平衡器設定移至目標區域。 首先您必須匯出外部負載平衡器的公用 IP 設定。

注意

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

從入口網站匯出公用 IP 範本並部署公用 IP

  1. 登入 Azure 入口網站,然後選取 [資源群組]

  2. 找出包含來源公用 IP 的資源群組,然後選取該資源群組。

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

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

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

  6. 若要編輯公用 IP 名稱的參數,請將 [參數] 下的 [值] 屬性從來源公用 IP 名稱變更為目標公用 IP 的名稱。 以引號括住名稱。

            {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "publicIPAddresses_myVM1pubIP_name": {
            "value": "<target-publicip-name>"
              }
             }
            }
    
    

    在編輯器中選取 [儲存]

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

  8. 若要編輯公用 IP 將移至其中的目標區域,請變更 resources 下的 location 屬性:

            "resources": [
            {
            "type": "Microsoft.Network/publicIPAddresses",
            "apiVersion": "2019-06-01",
            "name": "[parameters('publicIPAddresses_myPubIP_name')]",
            "location": "<target-region>",
            "sku": {
                "name": "Standard",
                "tier": "Regional"
            },
            "properties": {
                "provisioningState": "Succeeded",
                "resourceGuid": "7549a8f1-80c2-481a-a073-018f5b0b69be",
                "ipAddress": "52.177.6.204",
                "publicIPAddressVersion": "IPv4",
                "publicIPAllocationMethod": "Static",
                "idleTimeoutInMinutes": 4,
                "ipTags": []
               }
               }
             ]
    

    若要取得區域位置代碼,請參閱 Azure 位置。 區域代碼是沒有空格的區域名稱。 例如,美國中部的代碼為 centralus

  9. 如果您想要或需要的話,也可以變更範本中的其他參數,取決於您的需求:

    • SKU。 您可以將設定中公用 IP 的 SKU 從標準變更為基本,或從基本變更為標準,方法是變更 template.json 檔案中 sku 下的 name 屬性:

        "resources": [
       {
          "type": "Microsoft.Network/publicIPAddresses",
          "apiVersion": "2019-06-01",
          "name": "[parameters('publicIPAddresses_myPubIP_name')]",
          "location": "<target-region>",
          "sku": {
              "name": "Standard",
              "tier": "Regional"
          },
      
    • 可用性區域。 您可以變更區域屬性,以變更公用 IP 的區域。 若未指定區域屬性,則會將公用 IP 建立為無區域。 您可以指定單一區域來建立區域公用 IP,或區域備援公用 IP 的所有三個區域。

       "resources": [
      {
         "type": "Microsoft.Network/publicIPAddresses",
         "apiVersion": "2019-06-01",
         "name": "[parameters('publicIPAddresses_myPubIP_name')]",
         "location": "<target-region>",
         "sku": {
             "name": "Standard",
             "tier": "Regional"
         },
         "zones": [
             "1",
             "2",
             "3"
         ],
      
    • 公用 IP 配置方法閒置逾時。 您可以變更公用 IP 配置方法,方法是將 publicIPAllocationMethod 屬性從 Static 變更為 Dynamic,或從 Dynamic 變更為 Static。 您可以將 idleTimeoutInMinutes 屬性變更為所需的值,來變更閒置逾時。 預設值是 4

        "resources": [
       {
          "type": "Microsoft.Network/publicIPAddresses",
          "apiVersion": "2019-06-01",
          "name": "[parameters('publicIPAddresses_myPubIP_name')]",
          "location": "<target-region>",
          "sku": {
              "name": "Standard",
              "tier": "Regional"
          },
          "zones": [
              "1",
              "2",
              "3"
          ],
          "properties": {
              "provisioningState": "Succeeded",
              "resourceGuid": "7549a8f1-80c2-481a-a073-018f5b0b69be",
              "ipAddress": "52.177.6.204",
              "publicIPAddressVersion": "IPv4",
              "publicIPAllocationMethod": "Static",
              "idleTimeoutInMinutes": 4,
              "ipTags": []
      
      

      如需配置方法和閒置逾時值的相關資訊,請參閱建立、變更或刪除公用 IP 位址

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

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

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

  13. 驗證 [基本]>[位置] 是否已設定為您想要部署公用 IP 的目標位置。

  14. 在 [設定] 下,驗證名稱與您先前在參數編輯器中輸入的名稱是否相符。

  15. 選取 [條款及條件] 核取方塊。

  16. 選取 [購買] 以部署目標公用 IP。

  17. 如果您有另一個公用 IP 用於輸出 NAT,以移動負載平衡器,請重複上述步驟,將第二個輸出公用 IP 匯出並部署至目標區域。

從 Azure 入口網站匯出外部負載平衡器範本並部署負載平衡器

  1. 登入 Azure 入口網站,然後選取 [資源群組]

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

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

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

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

  6. 若要編輯外部負載平衡器名稱的參數,請將來源外部負載平衡器名稱的 value 屬性變更為目標外部負載平衡器的名稱。 以引號括住名稱。

       "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion": "1.0.0.0",
       "parameters": {
          "loadBalancers_myLoadbalancer_ext_name": {
          "value": "<target-external-lb-name>"
    },
          "publicIPAddresses_myPubIP_in_externalid": {
          "value": "<target-publicIP-resource-ID>"
    },
    
    
  7. 若要編輯您在先前步驟中移動的目標公用 IP 值,您必須首先取得資源識別碼,然後將其貼入 parameters.json 檔案中。 若要取得識別碼:

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

    2. 找出包含您在先前步驟中所移動公用 IP 的目標資源群組。 選取該連結。

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

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

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

         ```json
         "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
         "contentVersion": "1.0.0.0",
         "parameters": {
            "loadBalancers_myLoadbalancer_ext_name": {
            "value": "<target-external-lb-name>"
      },
            "publicIPAddresses_myPubIP_in_externalid": {
            "value": "<target-publicIP-resource-ID>"
      },
      
      
    6. 在線上編輯器中選取 [儲存]

  8. 如果您已設定負載平衡器的輸出 NAT 和輸出規則,則會在此檔案中看到第三個項目,代表輸出公用 IP 的外部識別碼。 在目標區域中重複上述步驟,以取得輸出公用 IP 的識別碼。 將該識別碼貼入 parameters.json 檔案中:

            "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "parameters": {
                "loadBalancers_myLoadbalancer_ext_name": {
                "value": "<target-external-lb-name>",
    
            },
                "publicIPAddresses_myPubIP_in_externalid": {
                "value": "<target-publicIP-resource-ID>",
    
            },
                "publicIPAddresses_myPubIP_out_externalid": {
                "defaultValue": "<target-publicIP-outbound-resource-ID>",
    
            }
        },
    
  9. 選取 [範本]>[編輯範本],以在線上編輯器中開啟 template.json 檔案。

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

        "resources": [
            {
                "type": "Microsoft.Network/loadBalancers",
                "apiVersion": "2019-06-01",
                "name": "[parameters('loadBalancers_myLoadBalancer_name')]",
                "location": "<target-external-lb-region>",
                "sku": {
                    "name": "Standard",
                    "tier": "Regional"
                },
    
  11. 若要取得區域位置代碼,請參閱 Azure 位置。 區域代碼是沒有空格的區域名稱。 例如,美國中部的代碼為 centralus

  12. 如果您想要或需要的話,也可以變更範本中的其他參數,取決於您的需求:

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

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

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

    • 負載平衡規則. 您可以在 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
                      }
                  }
              ],
      

      如需詳細資訊,請參閱負載平衡器健全狀態探查

    • 輸入 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?

    • 輸出規則. 您可以編輯 template.json 檔案中的 outboundRules 屬性,來新增或移除設定中的輸出規則:

      "outboundRules": [
                  {
                      "name": "myOutboundRule",
                      "etag": "W/\"39e5e9cd-2d6d-491f-83cf-b37a259d86b6\"",
                      "properties": {
                          "provisioningState": "Succeeded",
                          "allocatedOutboundPorts": 10000,
                          "protocol": "All",
                          "enableTcpReset": false,
                          "idleTimeoutInMinutes": 15,
                          "backendAddressPool": {
                              "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/backendAddressPools/myBEPoolOutbound')]"
                          },
                          "frontendIPConfigurations": [
                              {
                                  "id": "[concat(resourceId('Microsoft.Network/loadBalancers', parameters('loadBalancers_myLoadBalancer_name')), '/frontendIPConfigurations/myfrontendIPoutbound')]"
                              }
                          ]
                      }
                  }
              ]
      

      如需詳細資訊,請參閱負載平衡器輸出規則

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

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

  15. 選取 [基本]>[資源群組],以選擇要部署目標負載平衡器的資源群組。 您可以選取 [新建],為目標外部負載平衡器建立新的資源群組。 或者,您可以選擇稍早為公用 IP 建立的現有資源群組。 請確定名稱與現有來源外部負載平衡器的來源資源群組不同。

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

  17. 在 [設定] 下,驗證名稱與您先前在參數編輯器中輸入的名稱是否相符。 驗證是否已針對設定中的任何公用 IP 填入資源識別碼。

  18. 選取 [條款及條件] 核取方塊。

  19. 選取 [購買] 以部署目標公用 IP。

捨棄

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

清理

若要認可變更並完成公用 IP 和外部負載平衡器的移動,請刪除來源公用 IP 和外部負載平衡器或資源群組。 若要這樣做,請從入口網站中的儀表板選取資源群組,然後選取每個頁面頂端的 [刪除]

下一步

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