Esercizio: Creare siti Web

Completato

In questo esercizio si crea una coppia di macchine virtuali con un servizio di bilanciamento del carico interno e si installa l'app Web di registrazione dei veicoli. Si configura anche una rete virtuale con un endpoint privato che Frontdoor può usare per connettersi alle macchine virtuali privatamente. Si distribuisce infine il sito Web di rinnovo delle licenze in un'istanza del servizio app di Azure e si stabilisce la connettività privata con Frontdoor.

Creare le macchine virtuali e distribuire il sito di registrazione dei veicoli

  1. Aprire Azure Cloud Shell nel browser e accedere alla directory con accesso alla sottoscrizione in cui si vogliono creare le risorse.

  2. Eseguire il comando seguente in Cloud Shell per creare una variabile per archiviare il nome del gruppo di risorse e un gruppo di risorse per le risorse. Sostituire <resource group name> con un nome per il gruppo di risorse e <location> con l'area di Azure in cui si vogliono distribuire le risorse.

    Nota

    Se è necessario trovare il nome della posizione, è possibile usare il comando seguente: az account list-locations -o table

    RG=<resource group name>
    az group create --name $RG --location <location>
    
  3. Nella finestra di Cloud Shell a destra eseguire il comando seguente. Questo comando usa l'interfaccia della riga di comando di Azure per creare una rete virtuale denominata vehicleappvnet. Si tratta di una rete privata che fornisce gli indirizzi nell'intervallo da 10.0.0.0 a 10.0.255.255. Il comando crea anche una subnet denominata webServerSubnet, con l'intervallo di indirizzi da 10.0.1.0 a 10.0.1.255. Questa subnet contiene le macchine virtuali.

    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
    
  4. Per scaricare lo script che crea le macchine virtuali, eseguire il comando seguente.

    git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
    
  5. Creare un gruppo di sicurezza di rete (NSG) e una regola del gruppo di sicurezza di rete da applicare ai server Web durante la creazione.

    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
    
  6. Per creare e configurare le macchine virtuali per i server Web, eseguire i comandi seguenti. Le macchine virtuali vengono denominate webServer1 e webServer2. Ogni macchina virtuale esegue Ubuntu Server. Viene creato un account utente amministratore per ogni macchina virtuale, con il nome utente azureuser. In ogni macchina virtuale è installata l'app Web di registrazione dei veicoli.

    Il primo comando viene eseguito in modo asincrono per permettere la creazione di entrambe le macchine virtuali contemporaneamente.

    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
    
  7. Per verificare che entrambe le macchine virtuali siano state create correttamente, eseguire il comando seguente.

    az vm list \
        --resource-group $RG \
        --show-details \
        --output table
    

    L'output dovrebbe essere simile al seguente. Prima di continuare, assicurarsi che PowerState sia impostato su Esecuzione della macchina virtuale in corso per entrambe le macchine virtuali.

    Name          ResourceGroup      PowerState    PublicIps    Fqdns    Location        Zones
    ------------  -----------------  ------------  -----------  -------  --------------  -------
    webServer1    MyResourceGroup    VM running                          southcentralus
    webServer2    MyResourceGroup    VM running                          southcentralus
    

Creare un servizio di bilanciamento del carico interno e aggiungere macchine virtuali al pool back-end

  1. Per creare una risorsa di bilanciamento del carico interno, eseguire il comando seguente.

    az network lb create \
        --resource-group $RG \
        --name webServerILB \
        --sku standard \
        --vnet-name vehicleAppVnet \
        --subnet webServerSubnet \
        --frontend-ip-name webServerIP \
        --backend-pool-name webServerBackendPool
    
  2. Per creare un probe di integrità per controllare la disponibilità di ogni istanza di macchina virtuale, eseguire il comando seguente.

    az network lb probe create \
        --resource-group $RG \
        --lb-name webServerILB \
        --name webServerHealthProbe \
        --protocol tcp \
        --port 80
    
  3. Per creare una regola di bilanciamento del carico per distribuire il traffico ai server Web, eseguire il comando seguente.

    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
    
  4. Per aggiungere entrambi i server Web al pool back-end del servizio di bilanciamento del carico interno, eseguire i comandi seguenti.

    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
    

Il servizio di collegamento privato è necessario per stabilire la comunicazione privata tra Frontdoor e le risorse di origine. Un endpoint privato è l'elemento con cui Frontdoor stabilisce una connessione per ottenere una connessione interna nella rete Microsoft.

  1. Per creare un servizio di collegamento privato e associarlo al servizio di bilanciamento del carico interno, eseguire i comandi seguenti. Il primo comando disabilita i criteri di rete dei collegamenti privati nella subnet per consentire la creazione del servizio di collegamento privato.

    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
    
  2. Per creare l'endpoint privato in una rete virtuale, eseguire i comandi seguenti. Le richieste per stabilire la connettività a questo endpoint privato vengono approvate 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
    

Sono state create le macchine virtuali che eseguono l'app Web di registrazione dei veicoli. Entrambe le macchine virtuali sono identiche e fanno parte della stessa rete virtuale. Sono stati configurati anche un servizio di collegamento privato e un endpoint privato per accedere alle macchine controllate dal servizio di bilanciamento del carico interno.

Creare il servizio app e distribuire il sito per il rinnovo delle patenti

  1. Per iniziare, eseguire il comando seguente per generare un nome univoco per il sito Web.

    APPSERVICE="licenserenewal$RANDOM"
    
  2. Si esegue quindi il comando seguente per creare un piano di servizio app che viene usato dall'app Web.

    az appservice plan create \
        --resource-group $RG \
        --name vehicleAppServicePlan \
        --location eastus \
        --sku FREE
    
  3. Infine, creare l'app Web e distribuire il sito per il rinnovo delle patenti.

    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
    

Si esaminerà ora più in dettaglio la configurazione di Frontdoor.