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

Completato

Nello scenario di esempio si è deciso di usare un set di scalabilità per eseguire l'applicazione Web per la società di spedizioni. L'uso di un set di scalabilità consente alla società di assicurare tempi di risposta brevi per gli utenti, anche in caso di variazioni del carico di lavoro.

La prima attività consiste nel creare un set di scalabilità. Verrà configurato per eseguire un server Web, in questo caso nginx. Dopo aver configurato correttamente il set di scalabilità, si distribuirà l'applicazione Web. Si configurerà quindi un probe di integrità che verrà usato da Azure per verificare la disponibilità di ogni macchina virtuale nel set di scalabilità. Si eseguirà infine il test del 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. In Cloud Shell avviare l'editor di codice e creare un file denominato cloud-init.yaml.

    code cloud-init.yaml
    
  3. 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à.

  4. Premere CTRL+S per salvare il file e quindi CTRL+Q per chiudere l'editor di codice.

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

    az group create --location eastus --name myResourceGroup
    
  6. 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 indirizzerà il traffico al server.

  2. Eseguire il comando seguente per configurare il servizio di bilanciamento del carico per indirizzare 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 80 \
      --frontend-ip-name loadBalancerFrontEnd \
      --frontend-port 80 \
      --protocol tcp
    

Eseguire il test del set di scalabilità di macchine virtuali

  1. Nel portale di Azure selezionare Gruppi di risorse>scalesetrg a sinistra.

  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. In Impostazioni selezionare 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 scheda Proprietà. Verificare che nelle macchine virtuali sia in esecuzione 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 from Virtual Machine Scale Set !.

    Screenshot dell'app Web in esecuzione in un Web browser con il messaggio desiderato.