Mover o balanceador de carga interno do Azure para outra região usando o portal do Azure

Há vários cenários em que é possível mover o balanceador de carga interno do Azure existentes de uma região para outra. Por exemplo, talvez você queira criar um balanceador de carga interno com a mesma configuração para teste. Talvez você também queira mover um balanceador de carga interno para outra região como parte do planejamento de recuperação de desastre.

Não é possível mover os balanceadores de carga internos do Azure de uma região para outra. No entanto, você pode usar um modelo do Azure Resource Manager para exportar a configuração existente e a rede virtual de um balanceador de carga interno. Em seguida, você pode preparar o recurso em outra região, exportando balanceador de carga interno para um modelo, modificando os parâmetros para corresponder à região de destino e, em seguida, implantando o modelo na nova região. Para obter mais informações sobre o Resource Manager e modelos, consulte Início Rápido: Crie e implante modelos do Azure Resource Manager usando o portal do Azure.

Pré-requisitos

  • Verifique se balanceador de carga interno do Azure está na região do Azure da qual você quer mover.

  • Os balanceadores de carga internos do Azure não podem ser movidos entre regiões. Você precisará associar o novo balanceador de carga aos recursos na região de destino.

  • Para exportar uma configuração de balanceador de carga interno e implantar um modelo para criar um balanceador de carga interno em outra região, você precisará da função de Colaborador de Rede ou superior.

  • Identifique o layout de rede de origem e todos os recursos que você está usando atualmente. Esse layout inclui, mas não se limita a, balanceadores de carga, grupos de segurança de rede (NSGs), máquinas virtuais e redes virtuais.

  • Verifique se a assinatura do Azure permite criar balanceadores de carga internos na região de destino usada. Contate o suporte para habilitar a cota necessária.

  • Certifique-se de que sua assinatura tenha recursos suficientes para dar suporte à adição de balanceadores de carga para esse processo. Veja Assinatura do Azure e limites de serviços, cotas e restrições

Preparar e mover

As etapas a seguir mostram como preparar o balanceador de carga interno para a migração usando um modelo do Resource Manager, bem como mover o balanceador de carga interno para a região de destino usando o portal do Azure. Como parte desse processo, a configuração de rede virtual do balanceador de carga interno deve ser incluída, e deve ser feita primeiro, antes de mover o balanceador de carga interno.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Exportar o modelo de rede virtual e implantar do portal do Azure

  1. Faça logon no portal do Azure>Grupos de Recursos.

  2. Localize o grupo de recursos que contém a rede virtual de origem e clique nele.

  3. Selecione >Configurações>Exportar modelo.

  4. Escolha Implantar na folha Exportar modelo.

  5. Clique em MODELO>Editar parâmetros para abrir o arquivo parameters.json no editor online.

  6. Para editar o parâmetro do nome da rede virtual, altere a propriedade value em parameters:

    {
        "$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. Altere o valor de nome de rede virtual de origem no editor para um nome de sua escolha para a VNet de destino. É necessário colocar o nome entre aspas.

  8. Clique em Salvar no editor.

  9. Selecione MODELO>Editar modelo para abrir o arquivo template.json no editor online.

  10. Para editar a região de destino em que o VNET será movido, altere a propriedade location em recursos:

    "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. Para obter códigos de localização de região, consulte Locais do Azure. O código de uma região é o nome da região em inglês sem espaços, por exemplo, EUA Central = centralus.

  12. Você também pode alterar outros parâmetros no arquivo template.json se quiser, e eles podem ser opcionais dependendo dos seus requisitos:

    • Espaço de Endereço: o espaço de endereço da VNET pode ser alterado antes de salvar, modificando a seção recursos>addressSpace e alterando a propriedade addressPrefixes no arquivo template.json:

              "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"
                      ]
                  },
      
      
    • Sub-rede: o nome da sub-rede e o espaço de endereço de sub-rede podem ser alterados ou adicionados modificando a seção sub-redes do arquivo template.json. O nome da sub-rede pode ser alterado alterando a propriedade name. O espaço de endereço de sub-rede pode ser alterado alterando a propriedade addressPrefix no arquivo template.json:

              "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"
                  }
                  }
      
              ]
      

      No arquivo template.json, para alterar o prefixo do endereço, ele deve ser editado em dois locais, na seção listada acima e na seção tipo listada abaixo. Altere a propriedade addressPrefix para corresponder à que está acima:

       "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. Clique em Salvar no editor online.

  14. Clique em Assinatura>BÁSICA para escolher a assinatura da qual a VNet de destino será implantada.

  15. Selecione Grupo de recursos>BÁSICO para escolher o grupo de recursos no qual a VNet de destino será implantada. Você pode selecionar Criar para criar um grupo de recursos para a VNet de destino. Verifique se o nome não é o mesmo que o grupo de recursos de origem da VNet existente.

  16. Verifique se Local>BÁSICO está definido como o local de destino onde você deseja que a VNet seja implantada.

  17. Em CONFIGURAÇÕES, verifique se o nome corresponde àquele que você inseriu anteriormente no editor de parâmetros.

  18. Marque a caixa em TERMOS E CONDIÇÕES.

  19. Clique no botão Comprar para implantar a rede virtual de destino.

Exportar o modelo de balanceador de carga interno e implantar do Azure PowerShell

  1. Faça logon no portal do Azure>Grupos de Recursos.

  2. Localize o grupo de recursos que contém o balanceador de carga interno de origem e clique nele.

  3. Selecione >Configurações>Exportar modelo.

  4. Escolha Implantar na folha Exportar modelo.

  5. Clique em MODELO>Editar parâmetros para abrir o arquivo parameters.json no editor online.

  6. Para editar o parâmetro do nome do balanceador de carga interno, altere a propriedade defaultValue do nome do balanceador de carga interno de origem para o nome do balanceador de carga interno de destino. Verifique se o nome está entre aspas:

         "$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. Para editar o valor da rede virtual de destino que foi movida acima, primeiro você deve obter a ID do recurso e, em seguida, copiá-la e colá-la no arquivo parameters.json. Para obter a ID:

    1. Faça logon no portal do Azure>Grupos de Recursos em outra guia ou janela do navegador.

    2. Localize o grupo de recursos de destino que contém a rede virtual movida das etapas acima e clique nela.

    3. Selecione >Configurações>Propriedades.

    4. Na folha à direita, realce a ID do Recurso e copie-a para a área de transferência. Como alternativa, você pode clicar no botão copiar para a área de transferência à direita do caminho da ID do recurso.

    5. Cole a ID do recurso na propriedade defaultValue no editor Editar Parâmetros aberto na outra janela do navegador ou na guia:

       "$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. Clique em Salvar no editor online.

  8. Selecione MODELO>Editar modelo para abrir o arquivo template.json no editor online.

  9. Para editar a região de destino em que a configuração do balanceador de carga interno será movida, altere a propriedade local em recursos no arquivo template.json:

        "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. Para obter códigos de localização de região, consulte Locais do Azure. O código de uma região é o nome da região em inglês sem espaços, por exemplo, EUA Central = centralus.

  11. Você também pode alterar outros parâmetros no modelo se quiser, e eles podem ser opcionais dependendo dos seus requisitos:

    • Sku: você pode alterar a sku do balanceador de carga interno na configuração de padrão para básico ou de básico para padrão alterando a propriedade sku>name no arquivo template.json:

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

      Para obter mais informações sobre as diferenças entre os balanceadores de carga do sku básico e padrão, consulte Visão geral do Azure Standard Load Balancer

    • Zona de disponibilidade – você pode alterar as zonas do front-end do balanceador de carga alterando a propriedade de zona. Se a propriedade da zona não for especificada, o front-end será criado sem zona. Você pode especificar uma única zona para criar um front-end zonal ou todas as três zonas para um front-end com redundância de zona.

      "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"
          ]
      },
      

      Para obter mais informações sobre as zonas de disponibilidade, confira Regiões e zonas de disponibilidade no Azure.

    • Regras de balanceamento de carga: você pode adicionar ou remover regras de balanceamento de carga na configuração adicionando ou removendo entradas na seção loadBalancingRules do arquivo template.json:

      "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')]"
                          }
                      }
                  }
              ]
      

      Para obter mais informações sobre regras de balanceamento de carga, confira O que é o Azure Load Balancer?

    • Investigações: você pode adicionar ou remover uma investigação do balanceador de carga na configuração adicionando ou removendo entradas para a seção investigações do arquivo template.json:

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

      Para obter mais informações sobre investigações de integridade no Azure Load Balancer, consulte Investigações de integridade do Load Balancer

    • Regras NAT de entrada: você pode adicionar ou remover regras NAT de entrada do balanceador de carga adicionando ou removendo entradas para a seção inboundNatRules do arquivo template.json:

      "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
                      }
                  }
              ]
      

      Para concluir a adição ou remoção de uma regra NAT de entrada, a regra deve estar presente ou removida como uma propriedade de type no final do arquivo template.json:

      {
          "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
          }
      }
      

      Para obter mais informações sobre regra NAT de entrada, confira O que é o Azure Load Balancer?

  12. Clique em Salvar no editor online.

  13. Clique na >assinaturaBÁSICA para escolher a assinatura na qual o balanceador de carga interno de destino será implantado.

  14. Selecione Grupo de recursos>BÁSICO para escolher o grupo de recursos no qual o balanceador de carga de destino será implantado. Você pode clicar em Criar para criar um grupo de recursos para o balanceador de carga interno de destino ou escolher o grupo de recursos existente que foi criado acima para a rede virtual. Verifique se o nome não é o mesmo que o grupo de recursos de origem do balanceador interno de carga de origem existente.

  15. Verifique se Local>BÁSICO está definido como o local de destino onde você deseja que o balanceador de carga interno seja implantado.

  16. Em CONFIGURAÇÕES, verifique se o nome corresponde àquele que você inseriu anteriormente no editor de parâmetros. Verifique se as IDs de recurso são populadas para as redes virtuais na configuração.

  17. Marque a caixa em TERMOS E CONDIÇÕES.

  18. Clique no botão Comprar para implantar a rede virtual de destino.

Descartar

Se você quiser descartar a rede virtual de destino e o balanceador de carga interno, exclua o grupo de recursos no qual eles estão contidos. Para fazer isso, selecione o grupo de recursos em seu painel no portal e, em seguida, selecione Excluir na parte superior da página de visão geral.

Limpeza

Para confirmar as alterações e concluir a movimentação da rede virtual e do balanceador de carga interno, exclua ambos ou o grupo de recursos. Para fazer isso, selecione a rede virtual e o balanceador de carga interno ou o grupo de recursos no seu painel no portal e selecione Excluir na parte superior de cada página.

Próximas etapas

Neste tutorial, você moveu um balanceador de carga interna do Azure de uma região para outra e limpou os recursos de origem. Para saber mais sobre como mover recursos entre regiões e recuperação de desastres no Azure, confira: