Esercizio - Distribuire un set di scalabilità nel portale di Azure

Completato

Nello scenario di esempio si decide di usare un set di scalabilità per eseguire l'applicazione Web per la società di spedizione. La società di spedizione può mantenere brevi tempi di risposta per gli utenti anche in caso di variazioni del carico di lavoro usando un set di scalabilità.

La prima attività consiste nel creare un set di scalabilità. Configurarlo per eseguire un server Web, in questo caso nginx. Dopo aver configurato correttamente il set di scalabilità, distribuire l'applicazione Web. Configurare quindi un probe di integrità usato da Azure per verificare la disponibilità di ogni macchina virtuale (VM) nel set di scalabilità. Infine, testare il set di scalabilità inviando richieste da un Web browser.

Nota

Questo esercizio è facoltativo. Se non si dispone di un account Azure, è possibile leggere le istruzioni in modo da comprendere come usare l'API REST per recuperare le metriche.

Se si vuole completare l'esercizio, ma non si ha una sottoscrizione di Azure o si preferisce non usare il proprio account, creare un account gratuito prima di iniziare.

Distribuire un set di scalabilità di macchine virtuali

  1. Accedere al portale di Azure e aprire Azure Cloud Shell.

  2. Nella barra degli strumenti nella parte superiore della finestra di Cloud Shell selezionare Impostazioni>Vai alla versione classica.

  3. In Cloud Shell avviare l'editor di codice e creare un file denominato cloud-init.yaml.

    code cloud-init.yaml
    
  4. Aggiungere il testo seguente al file:

    #cloud-config
    package_upgrade: true
    packages:
      - nginx
    write_files:
      - owner: www-data:www-data
      - path: /var/www/html/index.html
        content: |
            Hello world from Virtual Machine Scale Set !
    runcmd:
      - service nginx restart
    

    Questo file contiene le informazioni di configurazione per l'installazione di nginx nelle macchine virtuali del set di scalabilità.

  5. Selezionare CTRL+S per salvare il file, quindi CTRL+Q per chiudere l'editor di codice.

  6. Eseguire il comando seguente per creare un nuovo gruppo di risorse per il set di scalabilità:

    az group create --location eastus --name myResourceGroup
    
  7. Eseguire il comando seguente per creare il set di scalabilità di macchine virtuali:

    az vmss create \
      --resource-group myResourceGroup \
      --name webServerScaleSet \
      --image Ubuntu2204 \
      --upgrade-policy-mode automatic \
      --custom-data cloud-init.yaml \
      --admin-username azureuser \
      --generate-ssh-keys
    

    Per impostazione predefinita, il nuovo set di scalabilità di macchine virtuali include due istanze e un servizio di bilanciamento del carico.

    Nota

    Il flag custom-data specifica che la configurazione della macchina virtuale deve usare le impostazioni nel file cloud-init.yaml dopo la creazione della macchina virtuale. È possibile usare un file cloud-init per installare pacchetti aggiuntivi, configurare la sicurezza e scrivere nei file quando la macchina viene installata per la prima volta.

    Per altre informazioni, vedere Supporto di cloud-init per macchine virtuali in Azure.

Configurare il set di scalabilità di macchine virtuali

  1. Eseguire il comando seguente per aggiungere un probe di integrità al servizio di bilanciamento del carico:

    az network lb probe create \
      --lb-name webServerScaleSetLB \
      --resource-group myResourceGroup \
      --name webServerHealth \
      --port 80 \
      --protocol Http \
      --path /
    

    Il probe di integrità esegue il ping sulla radice del sito Web attraverso la porta 80. Se il sito Web non risponde, il server viene considerato non disponibile. Il servizio di bilanciamento del carico non instrada il traffico al server.

  2. Eseguire il comando seguente per configurare il servizio di bilanciamento del carico per instradare il traffico HTTP alle istanze del set di scalabilità:

    az network lb rule create \
      --resource-group myResourceGroup \
      --name webServerLoadBalancerRuleWeb \
      --lb-name webServerScaleSetLB \
      --probe-name webServerHealth \
      --backend-pool-name webServerScaleSetLBBEPool \
      --backend-port 8080 \
      --frontend-ip-name loadBalancerFrontEnd \
      --frontend-port 8080 \
      --protocol tcp
    

Eseguire il test del set di scalabilità di macchine virtuali

  1. Nel menu laterale del portale di Azure selezionare Gruppi di risorse>myResourceGroup.

  2. Selezionare il set di scalabilità di macchine virtuali webServerScaleSet.

  3. Nella pagina Panoramica prendere nota dell'indirizzo IP pubblico del set di scalabilità di macchine virtuali.

    Screenshot del portale di Azure che mostra la pagina Panoramica del set di scalabilità di macchine virtuali.

  4. Selezionare Instances (Istanze). Verificare che il set di scalabilità contenga due macchine virtuali in esecuzione.

    Screenshot del portale di Azure che mostra le istanze per il set di scalabilità di macchine virtuali.

  5. Selezionare un'istanza e passare alla pagina Proprietà. Verificare che le macchine virtuali eseguano Ubuntu Linux.

    Screenshot del portale di Azure che mostra il sistema operativo per il set di scalabilità di macchine virtuali.

  6. Nel Web browser passare all'indirizzo IP pubblico del set di scalabilità. Verificare che venga visualizzato il messaggio Hello World dal set di scalabilità di macchine virtuali!.