{count, plural, one {Corso} other {Corsi}}
Amazon EC2 (Elastic Compute Cloud) è un elemento chiave di AWS. Ti permette di avviare server virtuali nel cloud che possono scalare in base alle tue esigenze. Tuttavia, non tutte le istanze EC2 sono uguali e scegliere il tipo giusto può fare una grande differenza in termini di prestazioni e costi.
In questa guida ti spiegherò i diversi tipi di istanze EC2, i loro utilizzi e come scegliere quella che funziona meglio per te.
Cosa sono i tipi di istanze EC2?
Quando avvii un'istanza in AWS, dovrai scegliere un tipo di istanza. Ogni tipo è un pacchetto diverso di potenza di calcolo, che include CPU, memoria, storage e capacità di rete. Questi tipi aiutano ad abbinare le esigenze della tua applicazione alla giusta quantità di risorse, così non paghi più di quanto utilizzi.
Ecco perché scegliere il tipo di istanza giusto è la base per costruire un'infrastruttura efficiente e conveniente. È uno dei modi migliori per assicurarti che la tua configurazione cloud funzioni senza intoppi e scali insieme al tuo carico di lavoro.
Il ruolo delle famiglie di istanze
AWS raggruppa i tipi di istanze in famiglie. Ogni famiglia ha profili di prestazioni simili, così è più facile trovare quella giusta per il tuo lavoro.
Per esempio:
- Istanze ottimizzate per il calcolo sono ottime per il batch processing e l'high-performance computing.
- Istanze ottimizzate per la memoria sono più adatte a lavori che richiedono una notevole quantità di RAM, come database in-memory o analytics in tempo reale.
- Istanze generiche sono perfette quando serve un equilibrio tra risorse di calcolo, memoria e rete.
- Istanze ottimizzate per lo storage sono ottimizzate per operazioni di input/output (I/O) a bassa latenza.
Questa struttura ci aiuta a individuare rapidamente le opzioni che si adattano al nostro caso d'uso specifico.
Convenzione di denominazione delle istanze EC2
I tipi di istanze AWS EC2 seguono convenzioni di denominazione che ti dicono cosa può fare ogni istanza o per cosa è ottimizzata. Vediamo come decodificare questi nomi per scegliere con più sicurezza.
Scomposizione del formato
I tipi di istanze sono denominati in base alla famiglia di istanze e alla dimensione dell'istanza. La prima parte del nome descrive la famiglia, la seconda la dimensione. Sono separate da un punto ..
Prendiamo un nome come m5.large. È composto da tre parti chiave:
- Serie (
m) indica la destinazione d'uso generale dell'istanza. In questo caso,msta per uso generico. - Generazione (
5) indica la versione. Numeri più alti di solito significano hardware più recente e prestazioni migliori. - Dimensione (
large) si riferisce alla scala di risorse come CPU e memoria.
m5.large significa che stai ottenendo un'istanza generica, di quinta generazione, con una quantità moderata di risorse.
L'immagine qui sotto spiega visivamente il formato:

Convenzione di denominazione dei tipi di istanze EC2. Sorce: documentazione AWS
Esempi e decodifica
Vediamo qualche altro esempio e decodifichiamolo:
t4g.microè un'istanza burstable che usa processori Graviton (basati su ARM), adatta a carichi leggeri e occasionali.r6g.xlargeè un'istanza ottimizzata per la memoria di sesta generazione, anch'essa basata su Graviton, ideale per applicazioni con uso intensivo di memoria, come i database in-memory.c7gn.2xlargeè un'istanza ottimizzata per il calcolo, settima generazione, con networking avanzato e supporto EBS, alimentata da processori Graviton.
Ecco alcune serie popolari con le relative opzioni e annotazioni.
|
Serie |
Opzioni |
|
|
Per l'elenco completo di serie e opzioni, consulta la documentazione AWS.
Ora vediamo più nel dettaglio i diversi tipi di istanze.
Istanze generiche
Le istanze generiche offrono un mix bilanciato di potenza di calcolo, memoria e rete. Sono una scelta eccellente quando il tuo carico di lavoro non pende fortemente in una direzione, ideale per web server, ambienti di sviluppo e sistemi backend.
AWS offre due principali serie in questa categoria: T e M. Vediamole più da vicino:
Serie T
Le istanze della serie T sono progettate per prestazioni burstable. Forniscono un livello di base di potenza CPU, ma possono aumentarla temporaneamente quando serve. Questa capacità di burst funziona con un sistema a crediti: quando la tua istanza usa meno della sua CPU di base, accumula crediti. Quando la domanda cresce, spende quei crediti per aumentare le prestazioni.
Se abiliti la modalità “unlimited”, la tua istanza può continuare a fare burst oltre il saldo crediti, ma ti verrà addebitato l'uso extra.
Queste istanze sono ideali per carichi di lavoro a CPU variabile o da bassa a moderata intensità, come:
- App web a basso traffico
- Ambienti di sviluppo e test
- Piccoli database
- Pipeline CI/CD
Supponiamo tu gestisca una piccola app web. Per la maggior parte del tempo va liscia con un utilizzo minimo della CPU. Quando lanci una campagna e il traffico aumenta, usa i crediti salvati per gestire il carico extra. Dopo il picco, torna alla base e ricomincia ad accumulare crediti.
I tipi più diffusi includono t4g, t3 e t2, disponibili in dimensioni come t4g.nano.
Serie M
Le istanze della serie M offrono un rapporto bilanciato CPU/memoria, con circa 4 GB di RAM per vCPU. Questo le rende versatili per carichi di lavoro generici che non richiedono configurazioni specializzate di calcolo o memoria.
Possiamo usarle per:
- Database da piccoli a medi (ad es., MySQL, PostgreSQL)
- Application server
- Servizi backend per app enterprise
- Layer di caching
- Server di gioco
Alcuni esempi sono m6i, m8g e mac, ciascuno disponibile in più dimensioni, come m8g.medium.
Istanze ottimizzate per il calcolo
Quando i carichi di lavoro sono pesanti in elaborazione ma leggeri in termini di memoria, le istanze ottimizzate per il calcolo sono un'ottima scelta. Offrono prestazioni ad alta velocità per attività CPU-intensive, ideali per analytics, codifica multimediale o infrastrutture di gioco.
AWS offre questa potenza attraverso la serie C. Esploriamola nel dettaglio:
Serie C
Le istanze della serie C sono progettate per elevate prestazioni di calcolo con minore overhead di memoria. Significa che ottieni più potenza CPU per gigabyte di RAM, perfetto per applicazioni dove la velocità conta più di storage o memoria.
Per massimizzare throughput ed efficienza, queste istanze usano i processori più recenti, inclusi Intel, AMD e AWS Graviton.
Possiamo usarle per:
- Web server ad alte prestazioni
- Codifica video e transcodifica multimediale
- Simulazioni e modellazione scientifica
- Batch processing e data crunching
- Server di gioco che richiedono bassa latenza e tick rate elevati
Alcuni esempi che potresti incontrare sono c6g, c7i, c5n e c4. Ognuno è disponibile in una gamma di dimensioni, così puoi scalare in su o in giù a seconda delle esigenze.
Ecco cosa distingue le istanze ottimizzate per il calcolo:
- Bassa latenza: Rispondono rapidamente, ideali per applicazioni in tempo reale come streaming e gaming.
- Velocità di elaborazione elevate: Con clock alti e core CPU ottimizzati, possono gestire milioni di richieste al secondo.
- Scalabilità conveniente: Puoi aumentare la potenza di calcolo senza pagare troppo per memoria che non ti serve.
Sostenibilità: Molte istanze della serie C usano processori AWS Graviton, più efficienti dal punto di vista energetico e utili a ridurre l'impronta di carbonio.
Istanze ottimizzate per la memoria
Le istanze ottimizzate per la memoria sono ideali per carichi di lavoro che richiedono più memoria che potenza di calcolo o storage. Queste istanze gestiscono database ad alte prestazioni e applicazioni in-memory che elaborano grandi dataset interamente in memoria per tempi di risposta ultra rapidi.
Serie R
Le istanze della serie R sono costruite per carichi di lavoro pesanti in memoria. Offrono un rapporto memoria/vCPU più elevato, il che le rende perfette quando la tua app richiede molta RAM ma non necessariamente un'elevata potenza di calcolo.
Possiamo usarle per:
- Caching in-memory: Ideale per strumenti come Redis o Memcached che si basano su accesso ai dati fulmineo.
- Big data analytics in tempo reale: Perfette per l'elaborazione e l'analisi dei dati in memoria, a bassa latenza.
- App enterprise: Ottime per applicazioni di grandi dimensioni che richiedono un solido allotment di memoria per funzionare in modo affidabile.
Alcune opzioni popolari includono r5, r6a, r8g e r4. Ognuna è disponibile in diverse dimensioni a seconda delle tue esigenze.
Serie X e Z
Le istanze della serie X offrono capacità di memoria estrema e sono specificamente progettate per carichi di lavoro enterprise con uso intensivo di memoria. Sono l'opzione di riferimento per:
- SAP HANA
- Database in-memory
- Analytics in tempo reale su larga scala
Alcuni modelli standard sono x1e, x2gd e x8g.
Le istanze della serie Z sono un po' diverse. Combinano memoria elevata e alta frequenza CPU, il che le rende ideali per:
- Automazione della progettazione elettronica (EDA)
- Simulazioni finanziarie
- Grandi database relazionali
- Litografia computazionale
Se il tuo carico di lavoro richiede forti prestazioni single-threaded e una quantità consistente di RAM, la serie Z (come Z1d) offre un mix equilibrato.
Istanze ottimizzate per lo storage
Le istanze ottimizzate per lo storage usano SSD locali ad alta velocità (NVMe), ideali per carichi che richiedono storage estremamente veloce e affidabile. Ecco perché possiamo usarle per database NoSQL, data lake o elaborazioni di dati su larga scala che richiedono IOPS elevati (operazioni di input/output al secondo).
Vediamo alcune istanze ottimizzate per lo storage comuni disponibili:
Serie I, D, H
La tabella seguente mostra i dettagli di ciascuna serie di istanze:
|
Serie I |
Serie D |
Serie H |
|
|
Uso principale |
Carichi transazionali ad alto IOPS e accesso ai dati a bassa latenza. |
Applicazioni data-heavy, elaborazione big data e carichi che necessitano di ampia capacità di storage. |
Applicazioni HPC (high-performance computing) con requisiti legati allo storage. |
|
Ideali per |
Database NoSQL (come Cassandra, MongoDB), database transazionali, analytics in tempo reale e file system distribuiti. |
Data lake, calcolo distribuito Hadoop, elaborazione log e analisi dati su larga scala. |
Simulazioni HPC, calcolo scientifico, analisi sismica e machine learning con grandi dataset locali. |
|
Storage |
Storage locale NVMe SSD ad alta velocità (effimero). |
Storage locale ad alta capacità, tipicamente HDD o SSD (a seconda del tipo di istanza). |
Storage locale NVMe SSD ad alto throughput (effimero). |
|
Prestazioni |
IOPS molto elevati e bassa latenza. |
Alto throughput in lettura/scrittura sequenziale e meno IOPS casuali rispetto alla serie I, ma eccellente per lo streaming di file di grandi dimensioni. |
Offre ottimo throughput e IOPS elevati, su misura per simulazioni data-intensive e carichi HPC. |
|
Esempi |
I8g, I7ie, I3en |
D3, D3en |
H1 |
Per l'elenco completo delle istanze delle serie I, H e D, consulta la documentazione.
Prestazioni dello storage locale
Lo storage locale usa SSD NVMe, offrendo prestazioni fulminee con IOPS molto elevati (operazioni di input/output al secondo), latenza sotto il millisecondo e alto throughput per le tue applicazioni. Tuttavia, è effimero, il che significa che i dati vanno persi quando l'istanza viene arrestata o terminata.
Ecco perché lo storage effimero è usato principalmente per:
- Spazio temporaneo di lavoro (scratch)
- Storage per buffer/cache
- Database temporanei ad alta velocità (come Redis, Cassandra con repliche)
Al contrario, i volumi EBS (Elastic Block Store) sono storage persistente che rimane disponibile anche se l'istanza viene arrestata. EBS è connesso in rete ed è altamente durevole, offrendo funzionalità come gli snapshot per backup e ripristino facili. Ciò lo rende ideale per carichi in cui la persistenza dei dati è importante, come database e file critici.
Sebbene lo storage effimero offra prestazioni incredibili, non fornisce durabilità dei dati. D'altro canto, lo storage EBS offre un'ottima durabilità e resilienza, ideale per carichi che richiedono sia prestazioni sia protezione dei dati.
Istanze con calcolo accelerato
Le istanze con calcolo accelerato, dette anche istanze con accelerazione hardware, si usano quando serve hardware specializzato come GPU (Graphics Processing Unit), FPGA (Field Programmable Gate Array) o chip personalizzati AWS per scaricare attività compute-intensive che sarebbero troppo lente o inefficienti solo su CPU.
Per questo offrono prestazioni migliorate e sono adatte a carichi che richiedono elaborazione massicciamente parallela o calcoli complessi.
Istanze basate su GPU (famiglie P e G)
Le istanze basate su GPU sono perfette per attività che richiedono un potente calcolo parallelo. Con GPU NVIDIA al loro interno, queste istanze sono ottimizzate per carichi pesanti come training di modelli ML, rendering 3D, gaming di alto livello e altri compiti grafici intensivi.
Due famiglie chiave nella categoria delle istanze basate su GPU sono:
- Famiglia P (ad es.,
P4,P5): Sono dotate di GPU NVIDIA e pensate per applicazioni di machine learning (ML) e high-performance computing (HPC). - Famiglia G (ad es.,
G4,G5): Anch'esse basate su GPU NVIDIA, sono ideali per carichi grafici, inferenza ML e game streaming.
Istanze specializzate per AI/ML (famiglie Inf e Trn)
Per carichi di lavoro di AI e machine learning, le famiglie di istanze ottimizzate per Inferentia (Inf) e per Trainium (Trn) sono costruite con silicon personalizzato AWS come i chip AWS Inferentia e AWS Trainium. Possono eseguire training e inferenza di modelli di deep learning su larga scala offrendo un ottimo rapporto prezzo/prestazioni.
- Famiglia Inf (ad es.,
Inf1,Inf2): Queste istanze sono perfette per compiti di inferenza a bassa latenza e alto throughput, supportate da chip AWS Inferentia. - Famiglia Trn (ad es.,
Trn1,Trn2): Ottimizzate per il training distribuito di modelli di deep learning, offrono interconnessioni ad alta velocità e notevole capacità di calcolo, grazie ai chip AWS Trainium.
Queste istanze sono scalabili e supportano i framework TensorFlow, PyTorch e Apache MXNet per aumentare l'efficienza e offrire prestazioni senza interruzioni.
Possiamo usarle per:
- Training di deep learning su larga scala: usa Trn1 per un training di grandi modelli conveniente e ad alte prestazioni.
- Inferenza AI a basso costo: usa Inf1 per un'inferenza veloce e a basso costo.
- Deployment AI su larga scala: supporta ambienti con milioni di inferenze al secondo, come motori di raccomandazione, riconoscimento vocale e veicoli autonomi.
Come scegliere l'istanza EC2 giusta?
Con così tanti tipi di istanze, non è semplice sapere cosa cercare per sfruttare al meglio ciò che offre AWS. Vediamo quindi come tu e il tuo team potete fare scelte sicure che bilancino prestazioni, costi e scalabilità.
Fattori chiave di decisione
Inizia considerando di cosa ha davvero bisogno il tuo carico di lavoro. Identifica la potenza CPU, la memoria, lo storage e i requisiti di rete necessari, perché carichi diversi richiedono tipi di istanze differenti.
Valuta anche come si comporta il tuo traffico. È stabile e prevedibile o ha picchi in certi momenti? Questo può aiutarci a decidere se optare per qualcosa che possa scalare su richiesta.
E soprattutto, lavoriamo entro vincoli di costo, quindi pesa le prestazioni rispetto a quanto siamo disposti a spendere. Se non ci serve storage persistente, usare storage effimero potrebbe farci risparmiare parecchio rispetto ai volumi EBS.
Strumenti AWS per la selezione
Per fortuna, AWS ci offre diversi strumenti per restringere il campo. Eccone alcuni:
- Instance Explorer è un modo rapido per filtrare i tipi di istanza in base alle specifiche che cerchi.
- AWS Compute Optimizer analizza come stai usando le istanze e suggerisce opzioni migliori, se esistono.
- AWS Pricing Calculator stima i costi in anticipo, ottimo se vogliamo confrontare le opzioni prima del deployment.
Benchmark e test
Anche con tutti questi strumenti, vale comunque la pena fare dei test. Eseguire benchmark di diverse istanze nel nostro ambiente ci mostra come si comportano sotto carichi reali. Questo ci dà un'idea migliore di prestazioni, latenza e costi, basata su ciò che conta davvero per noi.
Costi e opzioni di acquisto
Per EC2, il modo in cui acquistiamo le istanze può incidere sui costi complessivi. Dato che AWS offre diverse opzioni di acquisto, ciascuna pensata per carichi di lavoro diversi, vediamo come scegliere quella giusta per il nostro progetto attuale e come gestire efficacemente le spese cloud.
Istanze On-Demand
Le istanze On-Demand ci danno la massima flessibilità. Possiamo avviarle quando serve, pagare al secondo e spegnerle con la stessa facilità, senza impegni. Sono perfette per:
- Progetti a breve termine
- Carichi con picchi o imprevedibili
- Partire velocemente senza pianificazione anticipata
Ma questa flessibilità ha un prezzo più alto. Per carichi di lunga durata o prevedibili, altre opzioni possono farci risparmiare molto di più nel tempo.
Istanze Reserved e Spot
Le istanze Reserved sono ideali quando sappiamo che un carico girerà costantemente per un periodo prolungato. Impegnandoci per uno o tre anni, possiamo risparmiare fino al 75% rispetto ai prezzi On-Demand. È una mossa intelligente per app stabili e sempre attive.
Le istanze Spot, invece, sono migliori se il budget è stretto. AWS offre capacità inutilizzata con sconti enormi, fino al 90%, ma può ritirarla con poco preavviso. Significa che sono adatte a lavori che tollerano interruzioni, come:
- Batch processing
- Analisi dati
- Carichi CI/CD
- Servizi stateless
Confronto rapido: On-Demand vs Reserved vs Spot
Ecco una tabella affiancata per aiutarti a decidere:
|
Opzione |
Ideale per |
Costo |
Flessibilità |
Da sapere |
|
On-Demand |
Lavoro a breve termine o imprevedibile |
Più alto |
Molto flessibile |
Ottimo per test o carichi imprevedibili |
|
Reserved |
Carichi a lungo termine e costanti |
Più basso (con impegno) |
Meno flessibile |
Termine di 1 o 3 anni: risparmio fino al 75% |
|
Spot |
Attività interrompibili e tolleranti agli errori |
Più basso |
Limitata (può essere interrotta in qualsiasi momento) |
Fino al 90% di risparmio, ma senza garanzie |
Per un confronto più dettagliato, visita il sito ufficiale AWS.
Consigli per l'ottimizzazione dei costi
Per allungare ulteriormente il budget, ecco alcuni strumenti e strategie su cui possiamo contare:
- Savings Plans: offrono prezzi flessibili basati su impegno su EC2 e altri servizi. Possiamo risparmiare fino al 72% impegnandoci a un uso costante.
- Auto Scaling: regola automaticamente la capacità in base alla domanda, così non eseguiamo over-provisioning.
- Right-sizing: rivedi regolarmente tipi e dimensioni delle istanze per assicurarti che siano ancora adatti. Piccole modifiche possono portare a grandi risparmi nel tempo.
Conclusione
Non esiste un'unica soluzione valida per tutte le istanze EC2, e questo è un bene. Che si tratti di configurare rapidamente un ambiente di sviluppo o di scalare una pipeline di machine learning complessa, AWS ci dà la flessibilità di scegliere esattamente ciò di cui abbiamo bisogno.
La chiave è comprendere il nostro carico di lavoro, conoscere i nostri obiettivi di prestazioni e tenere d'occhio i costi. Più siamo intenzionali nelle scelte, supportati da strumenti, test e un po' di tentativi ed errori, più valore otterremo dalla nostra infrastruttura.
Se vuoi continuare a sviluppare le tue competenze AWS o esplorare meglio cosa può fare EC2, ecco alcune risorse da consultare:
- Introduzione ad AWS – Un ottimo punto di partenza per capire i concetti e i servizi core di AWS.
- Tecnologia e servizi AWS Cloud – Esplora i servizi AWS e come si integrano nell'ecosistema cloud.
- AWS: sicurezza e gestione dei costi – Scopri le best practice per mettere in sicurezza il tuo ambiente AWS e gestire i costi in modo efficace.
- Introduzione ad AWS Boto in Python – Un corso pratico che ti insegna a usare Boto3 (AWS SDK per Python) per automatizzare attività e gestire le risorse AWS.
Queste risorse ti aiuteranno a portare le tue competenze AWS al livello successivo, con esempi pratici e applicazioni reali.
FAQ
Qual è la differenza tra ECS ed EC2?
EC2 è un servizio di macchine virtuali in cui gestisci l'intera VM, compresi sistema operativo e applicazioni. ECS, invece, è un servizio gestito di orchestrazione di container che si concentra sull'esecuzione e la scalabilità di applicazioni containerizzate.
AWS EC2 è serverless?
EC2 richiede la gestione e il provisioning dell'ambiente.
Cos'è un Elastic IP in AWS?
In AWS, un Elastic IP è un indirizzo IPv4 pubblico statico che puoi associare a un'istanza o a un'interfaccia di rete per garantire un IP pubblico coerente anche se l'istanza viene arrestata o riavviata, o spostata in un'altra regione.
Come elimino un'istanza EC2?
Accedi alla AWS Management Console, vai alla dashboard EC2 e seleziona l'istanza che vuoi eliminare. Poi scegli "Terminate" dal menu a discesa Instance State. Conferma la terminazione quando richiesto.
Cos'è AMI in AWS?
Amazon Machine Image (AMI) è un modello che contiene le informazioni necessarie per avviare un'istanza Amazon Elastic Compute Cloud (EC2).
Come si confrontano le istanze basate su Graviton rispetto a quelle basate su Intel o AMD?
Le istanze Graviton usano architettura ARM, offrendo un migliore rapporto prezzo/prestazioni ed efficienza energetica per molti carichi. Tuttavia, va verificata la compatibilità con le app x86.
Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.


