Video: [CLOUD][AMAZON AWS] - #24 Gestire una macchina virtuale EC2 2024
Qualche anno fa, scegliendo quale istanza usare per un'applicazione era un affare semplice. Amazon Web Services (AWS) ha fornito alcuni tipi di istanze che variavano in modo prevalentemente lineare; vale a dire, se volevi più potenza di elaborazione, hai selezionato un tipo di istanza che conteneva più ECU, ed è stato fornito con una maggiore quantità di memoria e spazio di archiviazione - una passeggiata.
È molto più difficile ora decidere quale tipo di istanza usare, perché Amazon ha lanciato (scusate il gioco di parole) diverse famiglie di istanze progettate per aiutarvi a ottimizzare per un certo tipo di funzionalità.
Ad esempio, cosa succede se la tua applicazione ha un uso intensivo della memoria, come alcune applicazioni di analisi? Prima dovevi usare un'istanza della famiglia di tipi di istanze standard e dovevi usare istanze con grandi quantità di memoria che portavano un numero elevato di ECU, anche se l'applicazione non richiedeva molta potenza di elaborazione. È proprio così.
I tipi di immagine sono solo un lato della moneta EC2. Devi anche considerare i tipi di istanze: i tipi di macchine virtuali che puoi eseguire in AWS.
Le istanze variano in base alla quantità di tre tipi di risorse di calcolo:
-
Potenza di elaborazione: Ogni istanza ha un certo numero di EC2 unità di calcolo s (ECU), che è una quantità di potenza di elaborazione benchmark (l'equivalente della capacità della CPU di un 1. 0-1. 2 GHz 2007 Opteron o del processore Xeon 2007). Ad esempio, la piccola istanza in AWS ha 1 unità di calcolo EC2 o 1 ECU.
-
Memoria: Ogni istanza contiene una determinata quantità di memoria, misurata in gigabyte. Una piccola istanza ha 1. 7 GB di memoria.
-
Archiviazione: Ogni istanza ha una certa quantità di spazio su disco. Una piccola istanza ha 170 GB di spazio su disco.
A seconda del tipo di istanza, parte della memoria del disco associata a un'istanza può essere fornita in formato non formattato, prima che possa essere utilizzata, deve essere formattata con un file system utilizzabile dal sistema operativo dell'istanza.
-
Connettività di rete: Ogni istanza viene fornita con una scheda di rete virtuale (NIC), che utilizza per comunicare con altri dispositivi o servizi. Ad ogni istanza vengono assegnati due indirizzi IP: un indirizzo privato utilizzato esclusivamente all'interno di AWS e un indirizzo pubblico utilizzato per l'accesso a Internet all'istanza.
Non tutti i tipi di istanza ottengono solo una NIC. Le istanze all'interno del Virtual Private Cloud (VPC) di AWS possono avere più di una scheda NIC.
Ovviamente, da un lato, questo è un dilemma positivo perché potresti trovare una famiglia ben sintonizzata per il profilo di utilizzo della tua applicazione; d'altra parte (e c'è sempre d'altra parte), devi usare la dovuta diligenza nel decidere quale famiglia di istanze sia la più adatta alla tua applicazione (che richiede di capire in dettaglio le caratteristiche operative della tua applicazione).
Nella documentazione EC2, Amazon descrive le offerte di istanze EC2 (ad alta CPU, ad esempio) come famiglie, e le diverse dimensioni di istanze (M1, dove M sta per medium, ad esempio), come tipi.
Nell'esperienza, quasi tutti gli altri (inclusi i dipendenti AWS) fanno riferimento a una famiglia dalla documentazione AWS come tipo ("Questa è un'istanza di tipo ad alta CPU", ad esempio) e tipo dalla documentazione AWS come dimensione ("Questa è un'istanza di dimensioni grandi M1", ad esempio). Questa discussione usa l'approccio più comune perché è il modo in cui lo sentite discusso da quasi tutti, ma anche perché è più logico.
Con ciò, saltare in una descrizione dei tipi di istanza:
-
Micro: Molto, molto piccolo; fornisce una quantità limitata di CPU e memoria, anche se i tipi di istanze Micro possono scoppiare a 2 ECU per brevi periodi. Utilizzare questo tipo per applicazioni a bassa velocità e siti Web a basso traffico. Il tipo Micro è disponibile anche come parte del piano di utilizzo gratuito di AWS, utile per l'apprendimento e la sperimentazione.
-
Standard: Il tipo "medio" e di gran lunga il più utilizzato; offre un bilanciamento di CU, memoria e disco adatto per le applicazioni mainstream.
-
CPU alta: Va per unità di elaborazione superiore anziché per memoria ed è adatto per applicazioni di elaborazione pesanti. Un'applicazione di calcolo del numero è il caso d'uso canonico per le istanze con CPU alta.
-
Memoria alta: Aumenta la memoria anziché la CPU. Questo tipo è adatto per applicazioni di database, app di analisi e app che fanno affidamento sulla memoria cache. Se si esegue un prodotto di livello caching come memcached, questo tipo di istanza è una buona scelta.
-
High I / O: Fornisce high-throughput (input + output - I / O, in altre parole) ed è adatto per applicazioni che spostano molti dati. È una buona scelta per eseguire il proprio servizio di archiviazione di valore chiave, come Cassandra o MongoDB, piuttosto che utilizzare il servizio DynamoDB di AWS. Le istanze High I / O hanno connessioni ad alto throughput (10 Gbps) e utilizzano unità a stato solido per fornire prestazioni disco elevate.
-
Cluster Compute: Fornisce un numero elevato di ECU e reti ad alte prestazioni (10 Gbps). Questo tipo di istanza, che è adatto per attività di calcolo ad alte prestazioni (applicazioni molto grandi per il crunch specialistico, come l'analisi sismica sul campo petrolifero), funziona su hardware specializzato, con AMI personalizzate che utilizzano anche un tipo diverso e più efficiente di virtualizzazione come macchine strettamente connesse per migliori prestazioni di rete.
-
Cluster GPU: Analogamente alle istanze Cluster Compute, ma utilizza unità di elaborazione grafica (si pensi al processore all'interno della scheda grafica del PC, se sei un giocatore) che sono più adatte a determinati tipi di applicazioni, includendo alcune varianti di analisi di rete ad alte prestazioni di calcolo (HPC). Le istanze di cluster GPU operano in modo simile alle istanze di Cluster Compute, sebbene con chip CPU diversi nei server su cui queste istanze vengono eseguite.