Перемещение внешней подсистемы балансировки нагрузки в другой регион с помощью портал Azure

Существуют разные сценарии, когда может потребоваться переместить существующие ресурсы Azure из одного региона в другой. Например, в целях тестирования может потребоваться создать другой внешний балансировщик нагрузки с той же конфигурацией. Также может потребоваться переместить внешний балансировщик нагрузки в другой регион в рамках планирования аварийного восстановления.

Переместить внешний балансировщик нагрузки Azure из одного региона в другой невозможно в буквальном смысле слова. Но вы можете использовать шаблон Azure Resource Manager для экспорта существующей конфигурации и общедоступного IP-адреса внешнего балансировщика нагрузки. Затем можно разместить ресурс в другом регионе, экспортировав балансировщик нагрузки и общедоступный IP-адрес в шаблон, изменив параметры в соответствии с регионом назначения и развернув шаблон в новом регионе. Дополнительные сведения о Resource Manager и шаблонах см. в разделе Экспорт групп ресурсов в шаблоны.

Предварительные требования

  • Убедитесь, что внешний балансировщик нагрузки Azure расположен в том регионе Azure, из которого вы намерены его переместить.

  • Внешние балансировщики нагрузки Azure нельзя перемещать между регионами. Необходимо связать новую подсистему балансировки нагрузки с ресурсами в целевом регионе.

  • Чтобы экспортировать конфигурацию внешней подсистемы балансировки нагрузки и развернуть шаблон для создания внешней подсистемы балансировки нагрузки в другом регионе, необходимо назначить роль участника сети или выше.

  • Определите структуру сети в исходном регионе и все ресурсы, которые вы сейчас используете. Сюда могут входить, помимо прочего, балансировщики нагрузки, группы безопасности сети, общедоступные IP-адреса и виртуальные сети.

  • Убедитесь, что ваша подписка Azure позволяет создавать внешние балансировщики нагрузки в целевом регионе. Свяжитесь со службой поддержки, чтобы включить необходимые квоты.

  • Убедитесь, что у вашей подписки достаточно ресурсов для поддержки добавления балансировщиков нагрузки. Ознакомьтесь со статьей Подписка Azure, границы, квоты и ограничения службы.

Подготовка и перемещение

В следующих процедурах показано, как подготовить внешний балансировщик нагрузки для перемещения с помощью шаблона Resource Manager и переместить конфигурацию внешнего балансировщика нагрузки в целевой регион с помощью портала Azure. Сначала необходимо экспортировать конфигурацию общедоступного IP-адреса внешнего балансировщика нагрузки.

Примечание

Для взаимодействия с Azure рекомендуется использовать модуль Azure Az PowerShell. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Экспорт шаблона общедоступного IP-адреса и развертывание общедоступного IP-адреса на портале

  1. Войдите в портал Azure и выберитеГруппы ресурсов.

  2. Найдите группу ресурсов, содержащую общедоступный IP-адрес источника, и выберите ее.

  3. Выберите Параметры>Экспорт шаблона.

  4. Выберите Развертывание в разделе Экспорт шаблона.

  5. Выберите ШАБЛОН>Изменить параметры, чтобы открыть файл parameters.js в интерактивном редакторе.

  6. Чтобы изменить параметр имени общедоступного IP-адреса, измените значение свойства value в разделе параметры, выбрав вместо имени исходного общедоступного 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-адрес, измените свойство 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. Номер SKU для общедоступного IP-адреса в конфигурации можно изменить, перейдя от уровня "Стандартный" к уровню "Базовый" или наоборот путем изменения значения свойства name в разделе sku файла template.json.

        "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-адрес, используемый при преобразовании сетевых адресов исходящего трафика для перемещаемого балансировщика нагрузки, повторите предыдущие шаги для экспорта и развертывания в целевом регионе второго общедоступного IP-адреса для исходящего трафика.

Экспорт шаблона внешнего балансировщика нагрузки и развертывание балансировщика нагрузки на портале Azure

  1. Войдите в портал Azure и выберитеГруппы ресурсов.

  2. Найдите группу ресурсов, содержащую исходный внешний балансировщик нагрузки, и выберите его.

  3. Выберите Параметры>Экспорт шаблона.

  4. Выберите Развертывание в разделе Экспорт шаблона.

  5. Выберите ШАБЛОН>Изменить параметры, чтобы открыть файл parameters.js в интерактивном редакторе.

  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. Чтобы изменить целевой регион, куда будет перемещена конфигурация внешнего балансировщика нагрузки, измените свойство location в разделе resources файла template.json.

        "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 для внешнего балансировщика нагрузки в конфигурации можно изменить, перейдя от категории "Стандартный" к категории "Базовый" или наоборот путем изменения значения свойства name в разделе sku файла template.json.

      "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 в категориях "Базовый" и "Стандартный" см. в статье Обзор Load Balancer (ценовой категории "Стандартный") Azure.

    • Правила балансировки нагрузки. Добавлять или удалять правила балансировки нагрузки в конфигурации можно путем добавления или удаления записей в разделе loadBalancingRules файла 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')]"
                          }
                      }
                  }
              ]
      

      Сведения о правилах балансировки нагрузки см. в разделе Что такое Azure Load Balancer?.

    • Пробы. Добавить или удалить пробу для балансировщика нагрузки в конфигурации можно путем добавления или удаления записи в разделе probes файла template.json.

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

      Дополнительные сведения см. в статье Пробы работоспособности Load Balancer.

    • Правила NAT для входящего трафика. Добавить или удалить правила NAT для входящего трафика, относящиеся к балансировщику нагрузки, можно путем добавления или удаления записей в разделе inboundNatRules файла 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
                      }
                  }
              ]
      

      Чтобы завершить добавление или удаление правила NAT для входящего трафика, оно должно присутствовать в качестве свойства type в конце файла 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
          }
      }
      

      Сведения о правилах NAT для входящего трафика см. в статье Что такое Azure Load Balancer?.

    • Правила для исходящего трафика. Правила исходящего трафика можно добавлять или удалять в конфигурации путем изменения свойства outboundRules в файле template.json.

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

      Дополнительные сведения см. в статье Правила для исходящего трафика Load Balancer.

  13. Выберите Сохранить в интерактивном редакторе.

  14. Откройте ОСНОВЫ>Подписка, чтобы выбрать подписку, которая будет использоваться при развертывании целевого внешнего балансировщика нагрузки.

  15. Выберите ОСНОВЫ>Группа ресурсов, чтобы выбрать группу ресурсов, где будет развернут целевой балансировщик нагрузки. Чтобы создать новую группу ресурсов для целевого внешнего балансировщика нагрузки, можно выбрать Создать. Можно также выбрать существующую группу ресурсов, созданную ранее для общедоступного IP-адреса. Убедитесь, что ее имя не совпадает с именем исходной группы ресурсов для существующего исходного внешнего балансировщика нагрузки.

  16. Убедитесь, что параметру ОСНОВЫ>Расположение присвоено значение в виде целевого расположения, где должен быть развернут внешний балансировщик нагрузки.

  17. В разделе ПАРАМЕТРЫ проверьте, что имя совпадает с именем, введенным ранее в редакторе параметров. Убедитесь, что поля идентификаторов ресурсов заполнены для всех общедоступных IP-адресов в конфигурации.

  18. Установите флажок УСЛОВИЯ.

  19. Нажмите кнопку Приобрести, чтобы развернуть целевой общедоступный IP-адрес.

Игнорировать

Если вы хотите удалить целевой общедоступный IP-адрес и внешний балансировщик нагрузки, удалите ту группу ресурсов, где они содержатся. Для этого выберите группу ресурсов на панели мониторинга портала, а затем выберите Удалить в верхней части страницы обзора.

Очистка

Чтобы зафиксировать изменения и завершить перемещение общедоступного IP-адреса и внешнего балансировщика нагрузки, удалите исходный общедоступный IP-адрес и внешний балансировщик нагрузки или группу ресурсов. Для этого выберите группу ресурсов на панели мониторинга портала, а затем выберите Удалить в верхней части каждой страницы.

Дальнейшие действия

В этом руководстве вы узнали, как перемещать внешний балансировщик нагрузки Azure из одного региона в другой и очищать исходные ресурсы. Дополнительные сведения о перемещении ресурсов между регионами и аварийном восстановлении в Azure см. в следующих статьях: