Создание шлюза приложений с внутренней подсистемой балансировки нагрузки (ILB)

Шлюз приложений Azure стандартную версию 1 можно настроить с виртуальным IP-адресом для Интернета или внутренней конечной точкой, которая не предоставляется в Интернете, также называемой внутренней конечной точкой подсистемы балансировки нагрузки (ILB). Настройка шлюза с ILB подходит для внутренних бизнес-приложений, недоступных в Интернете. Кроме того, этот вариант конфигурации можно использовать для служб и уровней многоуровневого приложения, размещенного в периметре безопасности без доступа к Интернету, но требующего циклического перебора нагрузки, закрепления сеансов или завершения сеансов по протоколу TLS (Transport Layer Security), который раньше назывался SSL (Secure Sockets Layer).

В этой статье описаны действия по настройке стандартного Шлюз приложений версии 1 с помощью подсистемы балансировки нагрузки.

Подготовка к работе

Примечание.

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

  1. Установите последнюю версию модуля Azure PowerShell по этим инструкциям.
  2. Вы создадите виртуальную сеть и подсеть для шлюза приложений. Убедитесь, что подсеть не используется виртуальной машиной или облачным развертыванием. Сам шлюз приложений должен находиться в подсети виртуальной сети.
  3. Для использования шлюза приложений настраиваются существующие серверы или серверы, для которых в виртуальной сети созданы конечные точки либо же назначен общедоступный или виртуальный IP-адрес.

Что необходимо для создания шлюза приложений?

  • Пул внутренних серверов: список IP-адресов для внутренних серверов. Указанные IP-адреса должны относиться к одной виртуальной сети (но не входить в подсеть шлюза приложений) либо представлять собой общедоступные или виртуальные IP-адреса.
  • Параметры пула внутренних серверов: каждый пул имеет такие параметры, как порт, протокол и соответствие на основе файлов cookie. Эти параметры привязываются к пулу и применяются ко всем серверам в этом пуле.
  • Интерфейсный порт: это общедоступный порт, открытый на шлюзе приложений. Трафик поступает в этот порт, а затем перенаправляется на один из внутренних серверов.
  • Прослушиватель: прослушиватель имеет внешний порт, протокол (Http или Https; регистр имеет значение) и имя SSL-сертификата (если настраивается разгрузка SSL).
  • Правило: правило связывает прослушиватель и пул внутренних серверов и определяет, в какой пул внутренних серверов должен направляться трафик, попадающий в определенный прослушиватель. В настоящее время поддерживается только основное правило. Основное правило предусматривает циклическое распределение нагрузки.

Создание Шлюза приложений

Разница между использованием классической модели развертывания Azure и модели Azure Resource Manager заключается в порядке создания шлюза приложения и элементов, которые нужно настроить. При использовании Resource Manager все элементы, которые будут включены в единый ресурс шлюза приложений, сначала настраиваются по отдельности.

Ниже приведены пошаговые инструкции по созданию шлюза приложений.

  1. Создание группы ресурсов для Resource Manager.
  2. Создание виртуальной сети и подсети для шлюза приложений.
  3. Создание объекта конфигурации шлюза приложений.
  4. Создание ресурса шлюза приложений.

Создание группы ресурсов для Resource Manager.

Для работы с командлетами диспетчера ресурсов Azure необходимо перейти в режим PowerShell. Дополнительные сведения см. в статье Использование Windows PowerShell с диспетчером ресурсов.

Шаг 1

Connect-AzAccount

Шаг 2.

Просмотрите подписки учетной записи.

Get-AzSubscription

Вам будет предложено указать свои учетные данные для проверки подлинности.

Шаг 3.

Выберите, какие подписки Azure будут использоваться.

Select-AzSubscription -Subscriptionid "GUID of subscription"

Шаг 4

Создайте группу ресурсов (если вы используете существующую группу, пропустите этот шаг).

New-AzResourceGroup -Name appgw-rg -location "West US"

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

В приведенном выше примере мы создали группу ресурсов appgw-rg в расположении West US (западная часть США).

Создание виртуальной сети и подсети для шлюза приложений.

В следующем примере показано создание виртуальной сети с помощью диспетчера ресурсов.

Шаг 1

$subnetconfig = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

На этом шаге выполняется назначение диапазона адресов 10.0.0.0/24 переменной подсети, которая будет использоваться для создания виртуальной сети.

Шаг 2

$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $subnetconfig

На этом шаге создается виртуальная сеть appgwvnet в группе ресурсов appgw-rg для региона западная часть США с помощью префикса 10.0.0.0/16 с подсетью 10.0.0.0/24.

Шаг 3.

$subnet = $vnet.subnets[0]

На этом шаге выполняется присвоение объекта подсети переменной $subnet для выполнения следующих действий.

Создание объекта конфигурации шлюза приложений.

Шаг 1

$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

На этом шаге создается конфигурация IP-адреса шлюза приложений с именем gatewayIP01. При запуске Шлюз приложений получает IP-адрес из подсети, настроенной и маршрутив сетевой трафик к IP-адресам в серверном пуле IP-адресов. Помните, что для каждого экземпляра требуется отдельный IP-адрес.

Шаг 2

$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 10.1.1.8,10.1.1.9,10.1.1.10

На этом шаге настраивается пул IP-адресов серверной части с именем pool01 с IP-адресами 10.1.1.8, 10.1.9, 10.1.1.10. Это IP-адреса, получающие сетевой трафик, поступающий из конечной точки внешнего IP-адреса. Замените приведенные выше IP-адреса и добавьте IP-адреса конечных точек своего приложения.

Шаг 3.

$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled

Этот шаг настраивает параметр шлюза приложений pooletting01 для сетевого трафика с балансировкой нагрузки в серверном пуле.

Шаг 4

$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01  -Port 80

Этот шаг настраивает внешний IP-порт с именем frontendport01 для ILB.

Шаг 5

$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -Subnet $subnet

На этом шаге создается интерфейсная IP-конфигурация с именем fipconfig01 и связывает ее с частным IP-адресом из текущей подсети виртуальной сети.

Шаг 6

$listener = New-AzApplicationGatewayHttpListener -Name listener01  -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp

На этом шаге создается прослушиватель с именем "listener01" и связывает интерфейсный порт с конфигурацией внешнего IP-адреса.

Шаг 7

$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

На этом шаге выполняется создание правила маршрутизации rule01 для настройки поведения подсистемы балансировки нагрузки.

Шаг 8

$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2

На этом шаге выполняется настройка размера экземпляра шлюза приложений.

Примечание.

Значение по умолчанию для емкости — 2. Для имени SKU вы можете выбрать значения Standard_Small, Standard_Medium или Standard_Large.

Создание шлюза приложений с помощью командлета New-AzureApplicationGateway

Создайте шлюз приложений со всеми элементами конфигурации, описанными выше. В этом примере шлюз приложений называется "appgwtest".

$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location "West US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku

На этом шаге создается шлюз приложений со всеми элементами конфигурации, описанными выше. В этом примере шлюз приложений называется appgwtest.

Удаление шлюза приложений

Чтобы удалить шлюз приложений, по порядку выполните указанные ниже действия.

  1. Остановите шлюз с помощью командлета Stop-AzApplicationGateway.
  2. Удалите шлюз с помощью командлета Remove-AzApplicationGateway.
  3. С помощью командлета Get-AzureApplicationGateway проверьте, удален ли шлюз.

Шаг 1

Получите объект шлюза приложений и свяжите его с переменной $getgw.

$getgw =  Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

Шаг 2

С помощью командлета Stop-AzApplicationGateway остановите шлюз приложений. В данном примере командлет Stop-AzApplicationGateway показан в первой строке, а за ним следуют выходные данные.

Stop-AzApplicationGateway -ApplicationGateway $getgw  
VERBOSE: 9:49:34 PM - Begin Operation: Stop-AzureApplicationGateway
VERBOSE: 10:10:06 PM - Completed Operation: Stop-AzureApplicationGateway
Name       HTTP Status Code     Operation ID                             Error
----       ----------------     ------------                             ----
Successful OK                   ce6c6c95-77b4-2118-9d65-e29defadffb8

Когда шлюз будет остановлен, удалите службу с помощью командлета Remove-AzApplicationGateway.

Remove-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Force
VERBOSE: 10:49:34 PM - Begin Operation: Remove-AzureApplicationGateway
VERBOSE: 10:50:36 PM - Completed Operation: Remove-AzureApplicationGateway
Name       HTTP Status Code     Operation ID                             Error
----       ----------------     ------------                             ----
Successful OK                   055f3a96-8681-2094-a304-8d9a11ad8301

Примечание.

Если указать параметр -force, запрос на подтверждение удаления не появится.

Для проверки того, удалена ли служба, используйте командлет Get-AzApplicationGateway. Этот шаг не является обязательным.

Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg
VERBOSE: 10:52:46 PM - Begin Operation: Get-AzureApplicationGateway

Get-AzureApplicationGateway : ResourceNotFound: The gateway doesn't exist.

Следующие шаги

Чтобы настроить разгрузку SSL, ознакомьтесь с настройкой шлюза приложений для разгрузки SSL.

Дополнительные сведения о параметрах балансировки нагрузки в целом см. в статьях: