Criar um gateway de aplicativo com um ILB (balanceador de carga interno)

O Azure Application Gateway Standard v1 pode ser configurado com um VIP voltado para a Internet ou com um ponto de extremidade interno que não está exposto à Internet, também conhecido como ponto de extremidade ILB (balanceador de carga interno). Configurar o gateway com um ILB é útil para as aplicações de linha de negócio internas não expostas à Internet. Também é útil para serviços e camadas dentro de um aplicativo de várias camadas que ficam em um limite de segurança que não está exposto à Internet, mas ainda requer distribuição de carga round-robin, aderência de sessão ou TLS (Transport Layer Security), anteriormente conhecido como Secure Sockets Layer (SSL), terminação.

Este artigo orienta você pelas etapas para configurar um gateway de aplicativo Standard v1 com um ILB.

Antes de começar

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

  1. Instale a versão mais recente do módulo do Azure PowerShell seguindo as instruções de instalação.
  2. Vai criar uma rede virtual e uma sub-rede para o Application Gateway. Verifique se a sub-rede não está a ser utilizada por nenhuma máquina virtual ou implementação na nuvem. O Application Gateway tem de constar, por si só, numa sub-rede de rede virtual.
  3. Os servidores que irá configurar para utilizar o gateway de aplicação devem existir. Caso contrário, os respetivos pontos finais terão de ser criados na rede virtual ou com um IP/VIP público atribuído.

O que é necessário para criar um gateway de aplicação?

  • Pool de servidores back-end: a lista de endereços IP dos servidores back-end. Os endereços IP listados devem pertencer à rede virtual, mas numa sub-rede diferente para o gateway de aplicação, ou ser um IP/VIP público.
  • Definições do conjunto de servidores de back-end: cada conjunto tem definições como a porta, o protocolo e a afinidade com base em cookies. Estas definições estão associadas a um conjunto e são aplicadas a todos os servidores do referido conjunto.
  • Porta frontend: esta porta é a porta pública aberta no gateway de aplicativo. O tráfego chega a esta porta, sendo posteriormente redirecionado para um dos servidores de back-end.
  • Ouvinte: O ouvinte tem uma porta frontend, um protocolo (Http ou Https, que diferenciam maiúsculas de minúsculas) e o nome do certificado SSL (se configurar o descarregamento de SSL).
  • Regra: A regra vincula o ouvinte e o pool de servidores back-end e define para qual pool de servidores back-end o tráfego deve ser direcionado quando atinge um ouvinte específico. Atualmente, apenas é suportada a regra básica. A regra básica refere-se à distribuição de carga round robin.

Criar um gateway de aplicação

A diferença entre a utilização do Azure Clássico e do Azure Resource Manager é a ordem pela qual vai criar o gateway de aplicação e os itens que devem ser configurados. Com o Resource Manager, todos os itens que irão constituir um gateway de aplicação serão configurados individualmente e, em seguida, reunidos para criar o recurso do gateway de aplicação.

Os passos necessários para criar um gateway de aplicação encontram-se descritos abaixo:

  1. Criar um grupo de recursos para o Resource Manager
  2. Criar uma rede virtual e uma sub-rede para o gateway de aplicação
  3. Criar um objeto de configuração do gateway de aplicação
  4. Criar um recurso do gateway de aplicação

Criar um grupo de recursos para o Resource Manager

Não se esqueça de mudar o modo do PowerShell para utilizar o cmdlets do Azure Resource Manager. Para obter mais informações, veja Using Windows PowerShell with Resource Manager (Usar o Windows PowerShell com o Resource Manager).

Passo 1

Connect-AzAccount

Passo 2

Verifique as subscrições da conta.

Get-AzSubscription

Ser-lhe-á solicitado para autenticar com as suas credenciais.

Passo 3

Escolha qual das suas subscrições do Azure utilizar.

Select-AzSubscription -Subscriptionid "GUID of subscription"

Passo 4

Crie um grupo de recursos (ignore este passo se estiver a utilizar um grupo de recursos existente).

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

O Azure Resource Manager requer que todos os grupos de recursos especifiquem uma localização, Isto é utilizado como a localização predefinida para recursos nesse grupo de recursos. Verifique se todos os comandos para criar um gateway de aplicação utilizam o mesmo grupo de recursos.

No exemplo anterior, criamos um grupo de recursos chamado "appgw-rg" e o local "West US".

Criar uma rede virtual e uma sub-rede para o gateway de aplicação

O exemplo que se segue mostra como criar uma rede virtual utilizando o Resource Manager:

Passo 1

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

Esta etapa atribui o intervalo de endereços 10.0.0.0/24 a uma variável de sub-rede a ser usada para criar uma rede virtual.

Passo 2

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

Esta etapa cria uma rede virtual chamada "appgwvnet" no grupo de recursos "appgw-rg" para a região Oeste dos EUA usando o prefixo 10.0.0.0/16 com sub-rede 10.0.0.0/24.

Passo 3

$subnet = $vnet.subnets[0]

Esta etapa atribui o objeto de sub-rede à variável $subnet para as próximas etapas.

Criar um objeto de configuração do gateway de aplicação

Passo 1

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

Esta etapa cria uma configuração IP do gateway de aplicativo chamada "gatewayIP01". Quando o Application Gateway é iniciado, ele pega um endereço IP da sub-rede configurada e roteia o tráfego de rede para os endereços IP no pool de IP de back-end. Note que cada instância terá um endereço IP.

Passo 2

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

Esta etapa configura o pool de endereços IP de back-end chamado "pool01" com endereços IP "10.1.1.8, 10.1.1.9, 10.1.1.10". Esses são os endereços IP que recebem o tráfego de rede que vem do ponto de extremidade IP frontend. Deve substituir os endereços IP acima para adicionar os seus próprios pontos finais do endereço IP da aplicação.

Passo 3

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

Esta etapa define a configuração do gateway de aplicativo "poolsetting01" para o tráfego de rede com balanceamento de carga no pool de back-end.

Passo 4

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

Esta etapa configura a porta IP frontend chamada "frontendport01" para o ILB.

Passo 5

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

Esta etapa cria a configuração de IP frontend chamada "fipconfig01" e a associa a um IP privado da sub-rede de rede virtual atual.

Passo 6

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

Esta etapa cria o ouvinte chamado "listener01" e associa a porta frontend à configuração IP do frontend.

Passo 7

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

Esta etapa cria a regra de roteamento do balanceador de carga chamada "rule01" que configura o comportamento do balanceador de carga.

Passo 8

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

Esta etapa configura o tamanho da instância do gateway de aplicativo.

Nota

O valor padrão para Capacidade é 2. Para Sku Name, você pode escolher entre Standard_Small, Standard_Medium e Standard_Large.

Criar um gateway de aplicação com o New-AzureApplicationGateway

Cria um gateway de aplicativo com todos os itens de configuração das etapas anteriores. Neste exemplo, o gateway de aplicação é designado “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

Esta etapa cria um gateway de aplicativo com todos os itens de configuração das etapas anteriores. No exemplo, o gateway de aplicação é designado “appgwtest”.

Eliminar um gateway de aplicação

Para excluir um gateway de aplicativo, você precisa executar as seguintes etapas na ordem:

  1. Utilize o cmdlet Stop-AzApplicationGateway para parar o gateway.
  2. Utilize o cmdlet Remove-AzApplicationGateway para remover o gateway.
  3. Verifique se o gateway foi removido com o cmdlet Get-AzureApplicationGateway.

Passo 1

Obtenha o objeto do gateway de aplicação e associe-o a uma variável “$getgw”.

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

Passo 2

Utilize Stop-AzApplicationGateway para parar o gateway de aplicação. Este exemplo mostra o Stop-AzApplicationGateway cmdlet na primeira linha, seguido pela saída.

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

Assim que o gateway de aplicação estiver no estado parado, utilize o cmdlet Remove-AzApplicationGateway para remover o serviço.

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

Nota

Pode utilizar o comutador -force para eliminar a mensagem de confirmação de remoção.

Para verificar se o serviço foi removido, pode utilizar o cmdlet Get-AzApplicationGateway. Este passo não é necessário.

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

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

Próximos passos

Se pretender configurar a descarga de SSL, veja Configure an application gateway for SSL offload (Configurar um gateway de aplicação para a descarga de SSL).

Se pretender obter mais informações sobre as opções de balanceamento de carga em geral, veja: