Gerir o tráfego da Web com um gateway de aplicação com a CLI do Azure

O gateway de aplicação serve para gerir e proteger o tráfego da Web para os servidores que mantém. Você pode usar a CLI do Azure para criar um gateway de aplicativo que usa um Conjunto de Dimensionamento de Máquina Virtual para servidores back-end. Neste exemplo, o conjunto de escala contém duas instâncias de máquina virtual. O conjunto de escala é adicionado ao pool de back-end padrão do gateway de aplicativo.

Neste artigo, vai aprender a:

  • Configurar a rede
  • Criar um gateway de aplicação
  • Criar um conjunto de escala de máquina virtual com o pool de back-end padrão

Se preferir, você pode concluir este procedimento usando o Azure PowerShell.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

  • Este tutorial requer a versão 2.0.4 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.

Criar um grupo de recursos

Um grupo de recursos é um contentor lógico no qual os recursos do Azure são implementados e geridos. Crie um grupo de recursos com az group create.

O exemplo seguinte cria um grupo de recursos com o nome myResourceGroupAG na localização eastus.

az group create --name myResourceGroupAG --location eastus

Criar recursos de rede

Crie a rede virtual denominada myVNet e a sub-rede denominada myAGSubnet com az network vnet create. Em seguida, você pode adicionar a sub-rede chamada myBackendSubnet necessária para os servidores back-end usando az network vnet subnet create. Crie o endereço IP público denominado myAGPublicIPAddress com az network public-ip create.

az network vnet create \
 --name myVNet \
 --resource-group myResourceGroupAG \
 --location eastus \
 --address-prefix 10.0.0.0/16 \
 --subnet-name myAGSubnet \
 --subnet-prefix 10.0.1.0/24

az network vnet subnet create \
 --name myBackendSubnet \
 --resource-group myResourceGroupAG \
 --vnet-name myVNet \
 --address-prefix 10.0.2.0/24

az network public-ip create \
 --resource-group myResourceGroupAG \
 --name myAGPublicIPAddress \
 --allocation-method Static \
 --sku Standard

Criar um gateway de aplicação

Utilize az network application-gateway create para criar o gateway de aplicação denominado myAppGateway. Quando cria um gateway de aplicação com a CLI do Azure, especifica informações de configuração, tais como a capacidade, sku e definições de HTTP. O gateway de aplicativo é atribuído a myAGSubnet e myPublicIPAddress que você criou anteriormente.

az network application-gateway create \
 --name myAppGateway \
 --location eastus \
 --resource-group myResourceGroupAG \
 --vnet-name myVNet \
 --subnet myAGsubnet \
 --capacity 2 \
 --sku Standard_v2 \
 --http-settings-cookie-based-affinity Disabled \
 --frontend-port 80 \
 --http-settings-port 80 \
 --http-settings-protocol Http \
 --public-ip-address myAGPublicIPAddress \
 --priority 100

A criação do gateway de aplicação pode demorar vários minutos. Depois que o gateway de aplicativo for criado, você verá estes novos recursos:

  • appGatewayBackendPool - um gateway de aplicação tem de ter, pelo menos, um conjunto de endereços de back-end.
  • appGatewayBackendHttpSettings - especifica que a porta 80 e um protocolo HTTP são utilizados para a comunicação.
  • appGatewayHttpListener - o serviço de escuta predefinido associado a appGatewayBackendPool.
  • appGatewayFrontendIP - atribui myAGPublicIPAddress a appGatewayHttpListener.
  • rule1 - a regra de encaminhamento predefinida associada a appGatewayHttpListener.

Criar um Conjunto de Dimensionamento de Máquinas Virtuais

Neste exemplo, você cria um Conjunto de Dimensionamento de Máquina Virtual que fornece servidores para o pool de back-end no gateway de aplicativo. As máquinas virtuais no conjunto de dimensionamento são associadas a myBackendSubnet e appGatewayBackendPool. Para criar o conjunto de dimensionamento, utilize az vmss create.

az vmss create \
 --name myvmss \
 --resource-group myResourceGroupAG \
 --image Ubuntu2204 \
 --admin-username azureuser \
 --admin-password Azure123456! \
 --instance-count 2 \
 --vnet-name myVNet \
 --subnet myBackendSubnet \
 --vm-sku Standard_DS2 \
 --upgrade-policy-mode Automatic \
 --app-gateway myAppGateway \
 --backend-pool-name appGatewayBackendPool

Instalar o NGINX

Agora você pode instalar o NGINX no Conjunto de Dimensionamento de Máquina Virtual para poder testar a conectividade HTTP com o pool de back-end.

az vmss extension set \
 --publisher Microsoft.Azure.Extensions \
 --version 2.0 \
 --name CustomScript \
 --resource-group myResourceGroupAG \
 --vmss-name myvmss \
 --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'

Testar o gateway de aplicação

Para obter o endereço IP público do gateway de aplicação, utilize az network public-ip show. Copie o endereço IP público e cole-o na barra de endereço do browser.

az network public-ip show \
 --resource-group myResourceGroupAG \
 --name myAGPublicIPAddress \
 --query [ipAddress] \
 --output tsv

Test base URL in application gateway

Clean up resources (Limpar recursos)

Quando já não forem necessários, remova o grupo de recursos, o gateway de aplicação e todos os recursos relacionados.

az group delete --name myResourceGroupAG --location eastus

Próximos passos

Restringir o tráfego da Web com uma firewall de aplicações Web