Exercício - Criar websites
Neste exercício, você cria um par de máquinas virtuais atrás de um balanceador de carga interno e instala o aplicativo Web de registro de veículos. Você também configura uma rede virtual com um ponto de extremidade privado que o Front Door pode usar para se conectar às máquinas virtuais de forma privada. Por fim, você implanta o site de renovação de licença em uma instância do Serviço de Aplicativo do Azure e também estabelece conectividade privada com o Front Door.
Criar máquinas virtuais e implantar o site de registro de veículos
Abra o Azure Cloud Shell no seu navegador e inicie sessão no diretório com acesso à subscrição onde pretende criar recursos.
Execute o seguinte comando no Cloud Shell para criar uma variável para armazenar o nome do seu grupo de recursos e um grupo de recursos para as suas implementações. Substitua
<resource group name>
por um nome para seu grupo de recursos e<location>
com a região do Azure na qual você deseja implantar seus recursos.Observação
Se você precisar encontrar o nome do local, você pode usar o seguinte comando: az account list-locations -o table
RG=<resource group name> az group create --name $RG --location <location>
Na janela do Cloud Shell à direita, execute o seguinte comando. Este comando usa a interface de linha de comando do Azure para criar uma rede virtual chamada
vehicleappvnet
. É uma rede privada que fornece endereços no intervalo de 10.0.0.0 a 10.0.255.255. O comando também cria uma sub-rede chamadawebServerSubnet
, com o intervalo de endereços 10.0.1.0 a 10.0.1.255. Esta sub-rede contém as máquinas virtuais.az network vnet create \ --resource-group $RG \ --name vehicleAppVnet \ --address-prefixes 10.0.0.0/16 \ --subnet-name webServerSubnet \ --subnet-prefixes 10.0.1.0/24
Para baixar o script que cria as máquinas virtuais, execute o seguinte comando.
git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
Crie um NSG (Grupo de Segurança de Rede) e uma regra NSG para aplicar aos servidores Web durante a criação.
az network nsg create \ --resource-group $RG \ --name webNSG az network nsg rule create \ --resource-group $RG \ --nsg-name webNSG \ --name myNSGRuleHTTP \ --protocol '*' \ --direction inbound \ --source-address-prefix '*' \ --source-port-range '*' \ --destination-address-prefix '*' \ --destination-port-range 80 \ --access allow \ --priority 200
Para criar e configurar as máquinas virtuais para os servidores Web, execute os seguintes comandos. As máquinas virtuais são chamadas de
webServer1
ewebServer2
. Cada máquina virtual executa o Ubuntu Server. Uma conta de usuário administrativo é criada para cada máquina virtual, com o nome de usuárioazureuser
. Cada máquina virtual tem a aplicação Web de registo de veículos instalada.O primeiro comando é executado de forma assíncrona para permitir que ambas as máquinas virtuais sejam criadas simultaneamente.
az vm create \ --resource-group $RG \ --name webServer1 \ --image Ubuntu2204 \ --admin-username azureuser \ --generate-ssh-keys \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --public-ip-address "" \ --nsg webNSG \ --custom-data module-files/scripts/vmconfig.sh \ --no-wait az vm create \ --resource-group $RG \ --name webServer2 \ --image Ubuntu2204 \ --admin-username azureuser \ --generate-ssh-keys \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --public-ip-address "" \ --nsg webNSG \ --custom-data module-files/scripts/vmconfig.sh
Para confirmar se ambas as máquinas virtuais foram criadas com êxito, execute o seguinte comando.
az vm list \ --resource-group $RG \ --show-details \ --output table
Você deverá ver um resultado semelhante ao seguinte. Antes de continuar, verifique se o PowerState está com a VM em execução para ambas as máquinas virtuais.
Name ResourceGroup PowerState PublicIps Fqdns Location Zones ------------ ----------------- ------------ ----------- ------- -------------- ------- webServer1 MyResourceGroup VM running southcentralus webServer2 MyResourceGroup VM running southcentralus
Criar um balanceador de carga interno e adicionar máquinas virtuais ao pool de back-end
Para criar um recurso de balanceador de carga interno, execute o seguinte comando.
az network lb create \ --resource-group $RG \ --name webServerILB \ --sku standard \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --frontend-ip-name webServerIP \ --backend-pool-name webServerBackendPool
Para criar uma investigação de integridade para verificar a disponibilidade de cada instância de VM, execute o seguinte comando.
az network lb probe create \ --resource-group $RG \ --lb-name webServerILB \ --name webServerHealthProbe \ --protocol tcp \ --port 80
Para criar uma regra de balanceamento de carga para distribuir o tráfego para os servidores Web, execute o seguinte comando.
az network lb rule create \ --resource-group $RG \ --lb-name webServerILB \ --name myHTTPRule \ --protocol tcp \ --frontend-port 80 \ --backend-port 80 \ --frontend-ip-name webServerIP \ --backend-pool-name webServerBackendPool \ --probe-name webServerHealthProbe \ --idle-timeout 15 \ --enable-tcp-reset true
Para adicionar ambos os servidores Web ao pool de back-end do balanceador de carga interno, execute os seguintes comandos.
az network nic ip-config address-pool add \ --address-pool webServerBackendPool \ --lb-name webServerILB \ --ip-config-name ipconfigwebServer1 \ --nic-name webServer1VMNic \ --resource-group $RG az network nic ip-config address-pool add \ --address-pool webServerBackendPool \ --lb-name webServerILB \ --ip-config-name ipconfigwebServer2 \ --nic-name webServer2VMNic \ --resource-group $RG
Criar um serviço de link privado e um ponto de extremidade privado
O serviço de ligação privada é necessário para estabelecer uma comunicação privada entre a Front Door e os recursos de origem. Um ponto de extremidade privado é onde o Front Door estabelece uma conexão para conseguir uma ligação interna pela rede Microsoft.
Para criar um serviço de link privado e associá-lo ao balanceador de carga interno, execute os seguintes comandos. O primeiro comando desativa a política de rede de link privado na sub-rede para permitir que o serviço de link privado seja criado.
az network vnet subnet update \ --name webServerSubnet \ --resource-group $RG \ --vnet-name vehicleAppVnet \ --disable-private-link-service-network-policies true az network private-link-service create \ --resource-group $RG \ --name myPrivateLinkService \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --lb-name webServerILB \ --lb-frontend-ip-configs webServerIP
Para criar o ponto de extremidade privado em uma rede virtual, execute os seguintes comandos. As solicitações para estabelecer conectividade com esse ponto de extremidade privado são aprovadas automaticamente.
export resourceid=$(az network private-link-service show \ --name myPrivateLinkService \ --resource-group $RG \ --query id \ --output tsv) az network private-endpoint create \ --connection-name myPEconnectiontoPLS \ --name myPrivateEndpoint \ --private-connection-resource-id $resourceid \ --resource-group $RG \ --subnet webServerSubnet \ --manual-request false \ --vnet-name vehicleAppVnet
Agora você criou as máquinas virtuais que executam o aplicativo Web de registro de veículos. Ambas as máquinas virtuais são idênticas e fazem parte da mesma rede virtual. Você também configurou um serviço de ligação privada e um ponto de extremidade privado para acessar as máquinas virtuais atrás de um balanceador de carga interno.
Criar o Serviço de Aplicativo e implantar o site de renovação de licença
Para começar, para gerar um nome exclusivo para o site, execute o seguinte comando.
APPSERVICE="licenserenewal$RANDOM"
Em seguida, para criar um plano de serviço de aplicativo para o uso do aplicativo web, execute o seguinte comando.
az appservice plan create \ --resource-group $RG \ --name vehicleAppServicePlan \ --location eastus \ --sku FREE
Por fim, crie o aplicativo Web e implante o site de renovação de licença.
az webapp create \ --resource-group $RG \ --name $APPSERVICE \ --plan vehicleAppServicePlan \ --deployment-source-url https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway \ --deployment-source-branch appService
Agora, vamos dar uma olhada mais de perto na configuração do Front Door.