| Amazon EC2 software | |
|---|---|
| Genere | Virtual private server (non in lista) |
| Sviluppatore | Amazon.com |
| Data prima versione | 25 agosto 2016 |
| Sistema operativo | Linux |
| Licenza | Software proprietario |
| Sito web | aws.amazon.com/it/ec2/ |
Amazon Elastic Compute Cloud (traducibile in italiano come "nuvola di calcolo elastica di Amazon"), abbreviato in Amazon EC2, è una parte centrale della piattaforma di cloud computing Amazon Web Services (AWS) di Amazon, che permette agli utenti di affittare macchine virtuali sulle quali eseguire le proprie applicazioni.
EC2 permette l'implementazione di applicazione fornendo un servizio web attraverso il quale un utente può avviare un'Amazon Machine Image (AMI) per creare una macchina virtuale (chiamata da AWS "istanza"), che conterrà il software desiderato. Un utente può creare, lanciare, e chiudere istanze, pagando i server a ora, da cui l'aggettivo "elastica" nel nome del servizio.
EC2 fornisce agli utenti il controllo sulla collocazione geografica delle istanze che permettono un'ottimizzazione della latenza e alti livelli di ridondanza. A novembre 2010 Amazon ha spostato anche il proprio sito su EC2 e su AWS.
L'infrastruttura di base di EC2 è stata concepita e sviluppata principalmente da un team di ingegneri con sede a Città del Capo, in Sudafrica, guidato da Chris Pinkham e Willem van Biljon. Fu Pinkham a delineare le linee guida architetturali iniziali, a costituire il gruppo di lavoro e a coordinare lo sviluppo del progetto. Il 25 agosto 2006, Amazon ha formalmente inaugurato la fase di test pubblico limitato (Limited Public Beta), concedendo l'accesso al servizio secondo il principio dell'ordine di arrivo.
A seguito di questa prima fase operativa, l'offerta infrastrutturale è stata ampliata il 16 ottobre 2007 con il debutto di due configurazioni ad alte prestazioni: le istanze Large ed Extra-Large. Successivamente, il 29 maggio 2008, sono state introdotte le famiglie High-CPU Medium e High-CPU Extra Large, ottimizzate per carichi di lavoro computazionali intensivi, portando il portafoglio delle istanze disponibili a un totale di dodici tipologie.
Il 27 marzo 2008 ha segnato un'importante svolta tecnica grazie all'introduzione simultanea di tre funzionalità chiave: gli indirizzi IP statici (Elastic IP), le Zone di Disponibilità (Availability Zones) e la possibilità di selezionare autonomamente il kernel del sistema operativo. Pochi mesi dopo, il 20 agosto 2008, è stato rilasciato il servizio di archiviazione a blocchi persistente Amazon Elastic Block Store (EBS), superando definitivamente il vincolo della volatilità dello storage che aveva caratterizzato le prime versioni del servizio.
Il 23 ottobre 2008, EC2 ha rimosso ufficialmente la dicitura "beta", entrando a pieno titolo nella fase di produzione commerciale. Contestualmente, Amazon ha annunciato il Service Level Agreement (SLA), il supporto in versione preliminare per gli ambienti operativi Microsoft Windows e Microsoft SQL Server, e ha presentato i piani per il rilascio della Console di Gestione AWS (AWS Management Console), del bilanciamento del carico (Elastic Load Balancing), della scalabilità automatica (Auto Scaling) e del monitoraggio centralizzato tramite CloudWatch; tali strumenti sono divenuti pienamente operativi il 18 maggio 2009.
La piattaforma di cloud computing Amazon EC2 si fonda su una solida combinazione di tecnologie avanzate di virtualizzazione hardware e su un'ampia gamma di risorse di calcolo. Per ottimizzare prestazioni, sicurezza e scalabilità, AWS non solo perfeziona costantemente l'architettura di virtualizzazione sottostante, ma classifica anche le configurazioni dei server in gruppi specializzati, progettati per soddisfare con precisione le specifiche esigenze dei diversi carichi di lavoro aziendali reali.
Nelle sue fasi iniziali, l'infrastruttura di virtualizzazione di EC2 si basava esclusivamente sull'hypervisor Xen. Una transizione epocale si è compiuta il 6 novembre 2017 con l'annuncio della famiglia di istanze C5, fondata sul nuovo sistema AWS Nitro. Tale architettura hardware personalizzata, incentrata su un hypervisor derivato da KVM, scarica le operazioni critiche di virtualizzazione, networking e storage dall'host primario su schede dedicate, massimizzando le risorse di calcolo a disposizione dell'utente finale.
Ogni istanza virtuale agisce a tutti gli effetti come un Virtual Private Server (VPS). La potenza di elaborazione viene quantificata in "Elastic Compute Units" (ECU), sebbene le prestazioni tra macchine con specifiche omologhe possano evidenziare minime oscillazioni operative legate alle caratteristiche dei chip sottostanti. Il 28 novembre 2017, AWS ha esteso la propria offerta introducendo istanze "bare-metal", garantendo l'accesso diretto e senza intermediari all'hardware fisico sottostante, superando per la prima volta i vincoli di qualsiasi livello di virtualizzazione.
Le istanze EC2 sono categorizzate in famiglie progettate per soddisfare scenari di carico specifici:
Uso generale (General Purpose): Garantiscono un bilanciamento ideale tra risorse di calcolo, memoria volatile e prestazioni di rete, ideali per ambienti di sviluppo, web server e database di medie dimensioni (famiglie A1, T3, T2, M5, M5a, M4 e T3a).
Ottimizzate per il calcolo (Compute Optimized): Progettate per carichi ad alto assorbimento di CPU, come server di gioco, transcodifica video ed elaborazioni scientifiche (famiglie C4, C5, C5n, affiancate dalla serie C8gn, alimentata da processori Graviton4 con throughput di rete fino a 600 Gbit/s e un incremento prestazionale di circa il 30% rispetto alla serie C7gn).
Ottimizzate per la memoria (Memory Optimized): Pensate per gestire enormi dataset caricati direttamente nella RAM, come database relazionali complessi e memorie cache in-memory (famiglie R4, R5, R5a, X1, X1e, High Memory e z1d).
Calcolo accelerato (Accelerated Computing): Sfruttano la potenza parallela di GPU o chip programmabili (FPGA) per l'elaborazione grafica 3D, l'addestramento di modelli di machine learning e l'High-Performance Computing (famiglie P2, P3, G3, F1, nonché le istanze con partizionamento GPU G6f, in grado di allocare quote frazionarie di un ottavo, un quarto o metà di una GPU NVIDIA L4).
Ottimizzate per lo storage (Storage Optimized): Sviluppate per fornire altissimi livelli di throughput e latenze di I/O minime su unità flash NVMe integrate, ideali per architetture NoSQL, data warehouse e filesystem distribuiti (famiglie H1, I3 e D2).
Il modello finanziario di Amazon EC2 è concepito per offrire la massima flessibilità di budget, trasformando i costi da investimenti fissi in infrastrutture (CapEx) a spese operative variabili (OpEx). Combinando i costi basati sull'effettivo utilizzo delle risorse con diverse opzioni di impegno di pagamento, le aziende possono controllare facilmente la spesa e, al contempo, ottimizzare l'efficienza dei costi in ogni fase dello sviluppo del progetto.
La spesa associata alle istanze EC2 è consultabile nel dettaglio per mezzo del report sui costi e sull'utilizzo (AWS Cost and Usage Report). I costi complessivi scaturiscono dall'aggregazione di più voci: la tariffazione oraria delle istanze, il traffico di rete in uscita, l'allocazione dei volumi EBS, la conservazione degli snapshot e il routing gestito dai gateway NAT.
I prezzi partono da importi minimi per le istanze t2.nano operanti su Linux o Windows (circa 0,0058 USD all'ora, pari a 4,176 USD mensili), fino a configurazioni per lo storage intensivo come le i3.16xlarge (4,992 USD l'ora) e nodi di calcolo estremi che raggiungono fatturazioni di 3.997,19 USD al mese. Il trasferimento di dati in ingresso (inbound) è interamente gratuito su tutta l'infrastruttura AWS, mentre il traffico uscente (outbound) è soggetto a scaglioni progressivi fino a 0,12 USD per gigabyte. Dal dicembre 2010, per agevolare l'adozione della piattaforma, è attivo il piano AWS Free Tier: un pacchetto promozionale valido per i primi 12 mesi che offre 750 ore mensili su istanze micro, 30 GB di storage a blocchi EBS e una quota base di larghezza di banda, con la clausola che i crediti non consumati non possono essere accumulati per i periodi successivi.
Per calibrare le spese in funzione delle esigenze operative, gli utenti possono optare tra quattro diverse metodologie contrattuali:
La compatibilità software e il supporto per ambienti di distribuzione flessibili sono fattori chiave alla base della popolarità di Amazon EC2. Oltre a offrire un'ampia gamma di sistemi operativi — che spazia da soluzioni open source a quelle commerciali — AWS ha creato un ecosistema completo per la tecnologia dei container, consentendo agli sviluppatori di modernizzare facilmente le applicazioni e ottimizzare i flussi di lavoro per il rilascio del software nel cloud.
Al debutto nel 2006, il servizio garantiva la compatibilità con le distribuzioni Linux, per poi estendersi alle varianti OpenSolaris e Solaris Express Community Edition di Sun Microsystems. Nell'ottobre 2008 sono stati integrati i sistemi Windows Server 2003 e 2008, seguiti nel marzo 2011 dal supporto alle AMI basate su NetBSD e nel novembre 2012 dalla compatibilità con Windows Server 2012.
Grazie alle sollecitazioni e al contributo tecnico portato avanti sin dal 2006 da Colin Percival (sviluppatore di FreeBSD e fondatore del servizio di backup Tarsnap), Amazon ha integrato formalmente FreeBSD all'interno di EC2 nel novembre 2012. Parallelamente, AWS ha ingegnerizzato la propria distribuzione, denominata Amazon Linux AMI, fondata su pacchetti Fedora e Red Hat Enterprise Linux, dotata di kernel ottimizzato per il cloud, ambiente runtime Java OpenJDK e suite di compilatori GCC. Il 30 novembre 2020 l'offerta si è arricchita con l'introduzione dell'ambiente macOS (a partire dalle edizioni Mojave e Catalina), eseguito direttamente su hardware bare-metal basato su macchine Mac mini.
Per agevolare l'impiego di architetture orientate ai microservizi, AWS mette a disposizione Amazon Elastic Container Registry (ECR), un registro Docker ad alta disponibilità che consente alle istanze EC2 di memorizzare, gestire e scaricare immagini di container in modo sicuro e a bassa latenza. Con la stessa finalità, Amazon Elastic Kubernetes Service (EKS) fornisce un ambiente Kubernetes interamente gestito ed eseguibile sull'infrastruttura EC2, sollevando gli amministratori di sistema dall'onere di configurare, aggiornare e manutenere il piano di controllo (control plane) dei cluster.
Oltre alla pura potenza di calcolo, le prestazioni e la stabilità di Amazon EC2 dipendono in larga misura da architetture di storage dei dati integrate con sistemi di rete dedicati. Offrendo un'ampia gamma di soluzioni di storage — che spaziano dalle opzioni effimere a quelle persistenti — unitamente a meccanismi flessibili di routing e indirizzamento di rete, AWS garantisce un accesso ai dati a bassa latenza e assicura la continuità operativa per i carichi di lavoro aziendali.
All'atto del provisioning di un'istanza, la configurazione del volume di avvio (root device) prevede due alternative: l'impiego di un'unità locale "instance-store" o l'aggancio di un volume gestito tramite Amazon EBS. I dischi instance-store rappresentano memorie temporanee collegate direttamente al server fisico ospitante; i dati memorizzati persistono durante i riavvii del sistema operativo, ma vengono irrimediabilmente azzerati qualora l'istanza venga arrestata, terminata o nel caso in cui si verifichi un guasto hardware dell'host.
Al contrario, Amazon Elastic Block Store (EBS), reso disponibile al pubblico nell'agosto 2008, offre volumi di archiviazione a blocchi persistenti e indipendenti dal ciclo di vita dell'istanza alla quale sono connessi. Tali dispositivi consentono la formattazione con qualsiasi filesystem, la configurazione di array RAID per massimizzare la velocità di lettura/scrittura o la tolleranza ai guasti, e il distacco e riaggancio dinamico tra diverse macchine virtuali per capacità comprese tra 1 GB e 16 TB. Grazie a un'architettura interna ridondata e replicata, il guasto di un singolo componente hardware non compromette l'integrità dei dati salvati, permettendo al contempo la creazione di snapshot incrementali archiviati su Amazon S3.
Amazon Simple Storage Service (S3) è un'infrastruttura di object storage accessibile sia dalle istanze EC2 sia da client esterni autenticati tramite chiamate API su protocollo HTTP. La comunicazione tra le istanze EC2 e i bucket S3 localizzati all'interno della medesima regione geografica è esente da costi per il traffico di rete. I framework per l'analisi di Big Data (come Apache Hadoop) supportano nativamente il protocollo s3: per elaborazioni MapReduce, oppure consentono il montaggio di S3 come filesystem su istanze Linux (sebbene non sia supportata l'intera conformità POSIX, inclusi i lock sui file).
In ambito di connettività, la funzione Elastic IP assegna indirizzi IPv4 statici e pubblici legati all'account utente anziché alla singola istanza virtuale. Tale implementazione consente di riassociare via software un indirizzo IP a un server di riserva in caso di avaria, aggirando i tempi di propagazione e aggiornamento dei record DNS su scala globale.
Per garantire il funzionamento continuo e stabile di sistemi mission-critical, Amazon EC2 offre una suite completa di soluzioni che combina il monitoraggio dello stato dell'infrastruttura, l'adattamento automatico alle fluttuazioni del carico e meccanismi di ridondanza multilivello. La stretta integrazione tra monitoraggio in tempo reale e politiche di scaling automatizzato non solo ottimizza l'utilizzo delle risorse, ma crea anche una solida base per architetture ad alta disponibilità, assicurando che le applicazioni mantengano la propria resilienza a fronte di guasti hardware o disastri fisici.
Amazon CloudWatch fornisce un monitoraggio in tempo reale sull'utilizzo delle risorse computazionali di EC2, rilevando parametri quali l'impegno della CPU, i volumi di I/O sul disco, il traffico di rete e i ritardi di replica sulle istanze database RDS. Nella sua configurazione standard, CloudWatch non estrae metriche interne del sistema operativo quali l'utilizzo della memoria RAM o lo spazio libero su disco. A partire dal dicembre 2017, AWS ha reso disponibile il CloudWatch Agent per ambienti Windows e Linux, abilitando la raccolta diretta di questi indicatori e rimpiazzando i precedenti script personalizzati. Il sistema è compatibile con metriche personalizzate inviate tramite API sin dal maggio 2011 e supporta la raccolta centralizzata dei registri operativi (CloudWatch Logs) dal luglio 2014, con funzionalità essenziali incluse nel piano AWS Free Tier.
Le soglie di telemetria definite su CloudWatch fungono da trigger per il modulo di Auto Scaling, preposto all'adattamento automatico del numero di istanze EC2 operative sulla base del traffico rilevato o di politiche preimpostate. Tuttavia, il tempo di avvio di una nuova istanza può richiedere diversi minuti in funzione delle dimensioni dell'AMI e dell'allocazione del data center, rendendo necessaria una pianificazione per i carichi di lavoro ad altissima criticità temporale.
La tolleranza strutturale ai guasti si fonda sulla suddivisione dell'infrastruttura globale in Zone di Disponibilità (Availability Zones - AZ) all'interno di ciascuna regione. Ciascuna AZ racchiude data center fisicamente separati, provvisti di impianti elettrici, circuiti di raffreddamento e connessioni di rete isolati e indipendenti. Distribuendo le applicazioni su molteplici Zone di Disponibilità, i servizi rimangono operativi anche a fronte di interruzioni impreviste o disastri fisici che colpiscano una specifica struttura.
Durante il suo ciclo operativo, l'infrastruttura distribuita di EC2 ha affrontato complesse problematiche tecniche e rilevanti questioni contrattuali:
Diffusione di spam e malware (2008): Nei primi giorni di luglio 2008, organizzazioni di monitoraggio quali Outblaze e Spamhaus.org hanno inserito nelle proprie blacklist l'intero pool di indirizzi IP di EC2, a causa di attacchi e campagne di spam perpetrati da utenti malintenzionati attraverso istanze non adeguatamente presidiate.
Il caso WikiLeaks e le ripercussioni di sicurezza (2010): Il 1° dicembre 2010, Amazon ha revocato l'erogazione dei servizi di hosting a favore dell'organizzazione WikiLeaks a seguito di pressioni politiche negli Stati Uniti. Julian Assange ha dichiarato in seguito che la scelta di ricorrere ad AWS era stata deliberata per verificare l'effettiva tenuta degli accordi di fornitura. In risposta all'interruzione, il collettivo di hacktivisti Anonymous ha tentato una serie di attacchi informatici contro l'infrastruttura EC2, senza causare impatti rilevanti sui sistemi di Amazon; il 12 dicembre 2010 una temporanea interruzione dei portali dell'azienda è stata ufficialmente ricondotta a un'avaria hardware interna.
Le interruzioni nel data center della Virginia del Nord (2011–2012): Il 21 aprile 2011, un disservizio nella regione US-East-1 ha causato una grave caduta a catena di siti e piattaforme ad alto traffico quali Reddit, Quora, Foursquare e Hootsuite, a seguito del blocco delle API di storage e dei servizi database, determinando la perdita definitiva di circa lo 0,07% dei volumi EBS ospitati in quella specifica zona. L'8 agosto 2011 si è registrata un'ulteriore anomalia di connettività di circa 25 minuti con impatto su Netflix e Reddit. Un nuovo disservizio prolungato si è ripresentato il 22 ottobre 2012, protraendosi per circa sei ore e compromettendo la disponibilità di servizi quali Airbnb, Reddit e Flipboard.
Il blackout elettrico in Irlanda (2011): Il 6 agosto 2011, uno dei data center AWS in Irlanda è rimasto privo di alimentazione (un evento inizialmente attribuito a un fulmine, sebbene tale causa sia stata smentita dal fornitore di rete elettrica ESB Networks). Il brusco arresto dell'alimentazione ha portato alla luce bug software latenti nelle routine di recovery di EBS, provocando la cancellazione irreversibile dei dati per quei volumi impegnati in operazioni di scrittura attiva durante il collasso del sistema.