Início Rápido: Direcionar o tráfego da Web com o Gateway de Aplicativo do Azure usando o Azure PowerShell

Neste início rápido, você usará o Azure PowerShell para criar um gateway de aplicativo. Em seguida, você o testará para verificar se ele funciona corretamente.

O gateway de aplicativo direciona o tráfego da Web do aplicativo para recursos específicos em um pool de back-end. Você atribuirá ouvintes a portas, criará regras e adicionará recursos a um pool de back-end. Para simplificar, este artigo usa uma configuração simples com um endereço IP de front-end público, um ouvinte básico para hospedar um site no gateway de aplicativo, uma regra básica de roteamento de solicitação e duas máquinas virtuais no pool de back-end.

Diagrama conceitual da configuração do início rápido.

Conclua também este início rápido usando a CLI do Azure ou o portal do Azure.

Observação

O front-end do Gateway de Aplicativo já dá suporte aos endereços de IP de pilha dupla (Versão prévia). Agora você pode criar até quatro endereços IP de front-end: dois endereços IPv4 (públicos e privados) e dois endereços IPv6 (públicos e privados).

Pré-requisitos

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Captura de tela que mostra um exemplo de Experimente para o Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou o comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.

  4. Pressione Enter para executar o código ou o comando.

Observação

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

Conectar-se ao Azure

Para se conectar com o Azure, execute Connect-AzAccount.

Criar um grupo de recursos

No Azure, você pode alocar recursos relacionados a um grupo de recursos. Você pode usar um grupo de recursos existente ou criar um novo.

Para criar um grupo de recursos, use o cmdlet New-AzResourceGroup:

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Criar recursos da rede

Para que o Azure se comunique entre os recursos que você cria, ele precisa de uma rede virtual. A sub-rede de gateway de aplicativo pode conter apenas gateways de aplicativo. Nenhum outro recurso é permitido. Você pode criar uma nova sub-rede do Gateway de aplicativo ou usar uma existente. Crie duas sub-redes neste exemplo: uma para o gateway de aplicativo e outra para os servidores de back-end. É possível configurar o endereço IP de front-end do Gateway de Aplicativo como Público ou Privado, de acordo com o caso de uso. Neste exemplo, você escolherá um endereço IP público de front-end.

  1. Crie as configurações de sub-rede usando New-AzVirtualNetworkSubnetConfig.
  2. Crie a rede virtual com as configurações de sub-rede usando New-AzVirtualNetwork.
  3. Crie o endereço IP público usando New-AzPublicIpAddress.

Observação

As políticas de ponto de extremidade de serviço de rede virtual atualmente não têm suporte em uma sub-rede do Gateway de Aplicativo.

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.21.0.0/24
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.21.1.0/24
New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.21.0.0/16 `
  -Subnet $agSubnetConfig, $backendSubnetConfig
New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

Criar um Gateway de Aplicativo

O SKU Standard v2 é usado neste exemplo.

Criar as configurações de IP e porta de front-end

  1. Use New-AzApplicationGatewayIPConfiguration para criar a configuração que associa a sub-rede que você criou ao gateway de aplicativo.
  2. Use New-AzApplicationGatewayFrontendIPConfig para criar a configuração que atribui o endereço IP público que você criou anteriormente para o gateway de aplicativo.
  3. Use New-AzApplicationGatewayFrontendPort para atribuir a porta 80 para acessar o gateway de aplicativo.
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myAGSubnet
$pip    = Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress 
$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip
$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

Observação

O front-end do gateway de aplicativo agora dá suporte a endereços IP de pilha dupla (Visualização Pública). Agora você pode criar até quatro endereços IP de front-end: dois endereços IPv4 (públicos e privados) e dois endereços IPv6 (públicos e privados).

Criar o pool de back-end

  1. Use New-AzApplicationGatewayBackendAddressPool para criar o pool de back-end para o gateway de aplicativo. O pool de back-end está vazio por enquanto. Ao criar as NICs do servidor de back-end na próxima seção, você as adicionará ao pool de back-end.
  2. Defina as configurações para o pool de back-end com New-AzApplicationGatewayBackendHttpSetting.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
  -Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 30

Criar o ouvinte e adicionar uma regra

O Azure requer um ouvinte para habilitar o gateway de aplicativo para rotear o tráfego corretamente para o pool de back-end. O Azure também requer uma regra para o ouvinte saber qual pool de back-end deve ser usado para tráfego de entrada.

  1. Crie um ouvinte usando New-AzApplicationGatewayHttpListener com a configuração de front-end e a porta de front-end que você criou anteriormente.
  2. Use New-AzApplicationGatewayRequestRoutingRule para criar uma regra chamada rule1.
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name myAGListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $defaultlistener `
  -BackendAddressPool $backendPool `
  -BackendHttpSettings $poolSettings

Criar o gateway de aplicativo

Agora que você criou os recursos de suporte necessário, crie o gateway de aplicativo:

  1. Use New-AzApplicationGatewaySku para especificar parâmetros para o gateway de aplicativo.
  2. Use New-AzApplicationGateway para criar o gateway de aplicativo.
$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $backendPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

Dica

Você pode modificar os valores dos parâmetros Name e Tier para usar um SKU diferente. Por exemplo: Basic.

Servidores de back-end

Agora que você criou o Gateway de Aplicativo, crie as máquinas virtuais de back-end que hospedarão os sites. Um back-end pode ser composto por NICs, conjuntos de dimensionamento de máquinas virtuais, endereço de IP público, endereço de IP interno, nomes de domínio totalmente qualificados (FQDN) e back-ends multilocatários, como o Serviço de Aplicativo do Azure.

Neste exemplo, você cria duas máquinas virtuais para serem usadas como servidores de back-end para o Gateway de Aplicativo. Você também pode instalar o IIS nas máquinas virtuais para verificar se o Azure criou o gateway de aplicativo com êxito.

Criar duas máquinas virtuais

  1. Obtenha a configuração do pool de back-end do Gateway de Aplicativo criado recentemente com Get-AzApplicationGatewayBackendAddressPool.
  2. Crie um adaptador de rede com New-AzNetworkInterface.
  3. Crie uma configuração de máquina virtual com New-AzVMConfig.
  4. Crie a máquina virtual com New-AzVM.

Quando você executa o exemplo de código a seguir para criar as máquinas virtuais, o Azure solicita credenciais. Insira um nome de usuário e uma senha:

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myAppGateway
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

Testar o gateway de aplicativo

Embora o IIS não seja exigido para criar o gateway de aplicativo, você o instalou neste início rápido para verificar se o Azure criou o gateway de aplicativo com êxito.

Use o IIS para testar o gateway de aplicativo:

  1. Execute Get-AzPublicIPAddress para obter o endereço IP público do gateway de aplicativo.
  2. Copie e cole o endereço IP público na barra de endereços do seu navegador. Quando atualizar o navegador, você deverá ver o nome da máquina virtual. Uma resposta válida verifica se o gateway de aplicativo foi criado com êxito e é capaz de conectar-se com êxito ao back-end.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Teste o gateway de aplicativo

Limpar os recursos

Quando não precisar mais dos recursos que você criou com o gateway de aplicativo, exclua o grupo de recursos. Ao excluir o grupo de recursos, exclua também o gateway de aplicativo e todos os recursos relacionados a ele.

Para excluir o grupo de recursos, chame o cmdlet Remove-AzResourceGroup:

Remove-AzResourceGroup -Name myResourceGroupAG

Próximas etapas