Pianificare il dimensionamento e la rete
La macchina virtuale di Azure è un tipo di risorsa di calcolo IaaS (infrastruttura distribuita come servizio) comune in Azure. Rispetto ai servizi di calcolo PaaS (piattaforma distribuita come servizio), le macchine virtuali di Azure offrono maggiore flessibilità e controllo sul sistema operativo della macchina virtuale e sulla relativa configurazione. L'aumento del controllo e della flessibilità richiede una maggiore pianificazione per supportare risultati ottimali.
Questa unità descrive i fattori generali e le considerazioni per la pianificazione delle distribuzioni di macchine virtuali Linux di Azure. Il processo di pianificazione deve considerare gli aspetti di calcolo, rete e archiviazione della configurazione della macchina virtuale. Alcune di queste caratteristiche sono specifiche del sistema operativo, e i dettagli di implementazione possono variare tra le diverse distribuzioni di Linux.
Microsoft collabora con importanti fornitori di Linux per integrare i loro prodotti con la piattaforma Azure. Per sfruttare appieno questa integrazione, è possibile creare macchine virtuali di Azure usando immagini predefinite per varie distribuzioni Linux comuni, ad esempio SUSE, Red Hat e Ubuntu. Facoltativamente, è possibile creare un'immagine personalizzata di una distribuzione Linux da eseguire nell'ambiente cloud. In questo caso, potrebbero essere necessari altre azioni nel processo di provisioning delle macchine virtuali di Azure.
In entrambi i casi, questo modulo di apprendimento può aiutare a ottimizzare ulteriormente la distribuzione risultante. L’ottimizzazione richiede una conoscenza approfondita delle risorse della macchina virtuale di Azure e delle relative dipendenze.
Informazioni sulle dipendenze delle risorse
Quando si crea una macchina virtuale di Azure, è anche necessario creare diverse risorse associate da cui dipende la macchina virtuale di Azure per fornire funzionalità complete al sistema operativo virtualizzato. Tali risorse includono:
Dischi virtuali per archiviare il sistema operativo, le applicazioni e i dati.
Una rete virtuale con una o più subnet per connettere la macchina virtuale di Azure ad altri servizi di Azure o ai data center locali.
Interfaccia di rete per connettere la macchina virtuale di Azure a una subnet della rete virtuale.
Nota
È necessario che ogni interfaccia di rete abbia almeno un indirizzo IP privato assegnato in modo dinamico o statico. Gli indirizzi IP privati non sono risorse di Azure separate, ma fanno parte della configurazione della subnet.
Un gruppo di risorse per ospitare la macchina virtuale di Azure.
Facoltativamente, un indirizzo IP pubblico associato all'interfaccia di rete della macchina virtuale, per fornire l'accesso in ingresso diretto alla macchina virtuale da Internet.
Dopo aver compreso le dipendenze delle risorse delle macchine virtuali di Azure, è possibile iniziare a pianificare il dimensionamento delle macchine virtuali.
Pianificare il ridimensionamento
Per determinare le dimensioni appropriate della macchina virtuale di Azure, è necessario prendere in considerazione il carico di lavoro previsto. Le dimensioni scelte determinano le caratteristiche seguenti della macchina virtuale:
- Potenza di elaborazione
- Memoria
- Capacità di archiviazione
- Prestazioni
- Supporto per funzionalità di rete avanzate
Importante
Le macchine virtuali di Azure hanno limiti di quota della CPU virtuale (vCPU), che è necessario tenere in considerazione durante la pianificazione. Per aumentare i limiti di quota dopo la distribuzione, è necessario inviare una richiesta online al supporto di Azure.
Azure offre un'ampia gamma di dimensioni con specifiche e prezzi diversi per soddisfare un'ampia gamma di esigenze. Le dimensioni delle macchine virtuali sono raggruppate in più categorie, che rappresentano i tipi di carichi di lavoro per cui sono ottimizzate. Ogni categoria include una o più serie, o famiglie, che condividono caratteristiche hardware di base comuni ma offrono una gamma di dimensioni diverse.
L'elenco seguente mostra i tipi di carico di lavoro e i casi d'uso comuni per ogni tipo di carico di lavoro. Ogni tipo di carico di lavoro ha famiglie corrispondenti che includono varie dimensioni.
- Utilizzo generico: Per test e sviluppo, database medio-piccoli e server Web con traffico da medio a ridotto.
- Utilizzo di calcolo elevato: Per server Web con livelli medi di traffico, dispositivi di rete, processi batch e server applicazioni.
- Utilizzo di memoria elevato : Per server di database relazionali, cache medio-grandi e analisi in memoria.
- Utilizzo dello spazio di archiviazione elevato: Database Big Data, SQL e NoSQL che richiedono una velocità effettiva di disco e di input/output (I/O) elevata.
- Unità di elaborazione grafica (GPU) abilitata: Livelli intensivi di rendering della grafica o modifica di video e training e inferenza dei modelli con Deep Learning.
- High-performance computing (HPC): Macchine virtuali con CPU più veloci e potenti, dotate di interfacce di rete opzionali a velocità effettiva elevata che supportano Accesso diretto a memoria remota (RDMA).
Quando si pianificano le dimensioni delle macchine virtuali di Azure, considerare anche i fattori seguenti:
- La modifica della serie o delle dimensioni delle macchine virtuali di Azure, pur essendo un'operazione semplice e comune, richiede il riavvio del sistema operativo. Per evitare i riavvii, ridimensionare la macchina virtuale in modo appropriato dall'inizio, se possibile.
- La disponibilità delle dimensioni delle macchine virtuali varia in base all'area, quindi tenere conto della disponibilità a livello di area quando si pianifica la distribuzione.
- Il numero massimo di dischi che è possibile collegare a una macchina virtuale di Azure dipende dalle dimensioni.
Altre considerazioni sulle dimensioni
Prendere in considerazione l'uso del selettore di macchine virtuali di Microsoft Azure per identificare le dimensioni più appropriate della macchina virtuale in funzione del tipo di carico di lavoro, del sistema operativo, del software installato e dell'area di distribuzione.
Se si intende usare le stesse macchine virtuali Azure o macchine virtuali di dimensioni simili nella stessa area per un periodo prolungato, è consigliabile usare Prenotazioni di Azure per ridurre il costo di calcolo fino al 72%.
Per ridurre il costo delle macchine virtuali di Azure per carichi di lavoro in grado di gestire le interruzioni, ad esempio i processi di elaborazione batch, usare Macchine virtuali spot di Azure.
Pianificare la rete
Le macchine virtuali comunicano con le risorse esterne usando una rete virtuale. Una rete virtuale rappresenta una rete privata all'interno di un'area di Azure. È possibile connetterre reti virtuali ad altre reti, incluse le reti che risiedono nei data center locali e applicare regole di traffico per controllare la connettività in ingresso e in uscita.
Ogni rete virtuale designa uno spazio indirizzi IP costituito in genere da uno o più intervalli di indirizzi privati, come definito dalla RFC (Request For Comments) 1918. Come per le reti locali, è possibile dividere lo spazio degli indirizzi della rete virtuale in più subnet per isolare i carichi di lavoro delle macchine virtuali di Azure. Ogni subnet all'interno di una rete virtuale rappresenta un intervallo di indirizzi privato. Per applicare l'isolamento del carico di lavoro, associare un gruppo di sicurezza di rete (NGS) a ogni subnet.
Ogni macchina virtuale di Azure include una o più interfacce di rete e ogni interfaccia si connette a una subnet all'interno della stessa rete virtuale. Azure assegna automaticamente ogni macchina virtuale nella subnet un indirizzo IP dall'intervallo della subnet. Azure riserva i primi quattro e l'ultimo indirizzo IP in ogni subnet per il proprio uso e non li assegna.
Anche se è possibile creare una rete virtuale e le subnet durante il processo di provisioning delle macchine virtuali, l'approccio consigliato prevede di avviare la pianificazione della distribuzione di macchine virtuali di Azure con l’ambiente di rete. Dopo aver preso in considerazione tutti i requisiti di rete e aver creato le reti virtuali corrispondenti, è possibile procedere con la distribuzione delle macchine virtuali di Azure.
Durante la pianificazione delle reti virtuali e subnet di Azure, è necessario tenere presente i seguenti principi di progettazione:
- Assicurarsi che gli spazi indirizzi non si sovrappongano. Se si desidera connettere le reti virtuali e le reti locali, gli spazi di indirizzi IP non possono sovrapporsi.
- Usare un numero minore di reti virtuali più grandi anziché un numero maggiore di reti virtuali più piccole. Questa procedura consente di ridurre al minimo il sovraccarico di gestione e di facilitare la scalabilità.
Larghezza di banda di rete
Anche se una macchina virtuale di Azure può avere più interfacce di rete, la larghezza di banda disponibile dipende completamente dalle dimensioni. In genere, alle macchine virtuali più grandi viene assegnata una larghezza di banda maggiore rispetto alle macchine virtuali più piccole.
Per misurare la quantità effettiva di larghezza di banda della rete rispetto ai limiti assegnati, Azure prende in considerazione solo il traffico in uscita. Tutto il traffico di rete inviato dalla macchina virtuale viene conteggiato nel limite, indipendentemente dalla destinazione del traffico.
Azure non è direttamente limitata sulla piattaforma. Tuttavia, fattori come l'utilizzo delle risorse di archiviazione e di calcolo influiscono sulla quantità di dati in ingresso che una macchina virtuale di Azure può elaborare.
Pianificare la connettività remota
Nell'ambito della pianificazione della distribuzione, considerare anche l'approccio più adatto per fornire connettività remota. Per le macchine virtuali Linux, la connettività remota prevede in genere l'uso di Secure Shell (SSH) per implementare la crittografia in transito di una sessione della shell del terminale.
Per eseguire l'autenticazione tramite una connessione SSH, è possibile usare un nome utente e password o una coppia di chiavi SSH. Usare password per le connessioni SSH rende la macchina virtuale vulnerabile ad attacchi di forza bruta. L'uso delle chiavi SSH è il modo più sicuro e consigliato per connettersi a una macchina virtuale Linux con SSH.
Anche quando si usano le chiavi SSH, per impostazione predefinita è necessario aprire la connettività all'indirizzo IP pubblico associato alla scheda di rete della macchina virtuale Azure di destinazione. Questo indirizzo IP pubblico espone a potenziali minacce esterne e costituisce un possibile vettore di attacco. Per attenuare questo rischio, è consigliabile implementare Azure Bastion l’accesso just-in-time (JIT) alla macchina virtuale.
Nota
Negli scenari ibridi, per eliminare la necessità di indirizzi IP pubblici durante la connessione dall'ambiente locale alle macchine virtuali di Azure, è possibile usare una rete privata virtuale da sito a sito (VPN) o Azure ExpressRoute.
Azure Bastion
Il servizio Azure Bastion viene distribuito in una subnet dedicata di una rete virtuale con connettività alla macchina virtuale di destinazione. Azure Bastion funge da broker per le connessioni SSH esterne tramite HTTPS disponibili solo dal portale di Azure. Azure Bastion elimina la necessità di assegnare indirizzi IP pubblici all'interfaccia di rete della macchina virtuale di destinazione e garantisce anche che solo gli utenti autenticati e autorizzati correttamente possano avviare connessioni SSH.
Accesso just-in-time alle macchine virtuali
L'accesso JIT alle macchine virtuali è una funzionalità di Microsoft Defender per il cloud che limita l'accesso a un indirizzo IP pubblico associato all'interfaccia di rete di una macchina virtuale di Azure. Questi limiti regolano dinamicamente il gruppo di sicurezza di rete in modo da consentire le connessioni in entrata solo da un intervallo di indirizzi IP designato durante una determinata finestra temporale. Come per Azure Bastion, gli utenti devono eseguire l'autenticazione prima di avviare una connessione dal portale di Azure.