Storage a oggetti, a blocchi e a file
AWS distingue tre modelli di storage e l’esame ti chiede di riconoscere quale usare.
Amazon S3 è object storage: salvi file (“oggetti”) dentro bucket e li raggiungi via API/HTTPS, non come disco di sistema. È pensato per scalabilità praticamente illimitata e durabilità elevatissima (11 nove, 99,999999999%), con dati replicati su più Availability Zone. Casi tipici: backup, data lake, hosting di file statici, log, media. Non è un filesystem montabile né un disco avviabile per un’istanza.
Amazon EBS (Elastic Block Store) è block storage: un volume a blocchi che colleghi a una singola istanza Amazon EC2, come un disco virtuale. Vive dentro una singola Availability Zone e persiste indipendentemente dal ciclo di vita dell’istanza. È la scelta per il disco di boot e per applicazioni che richiedono I/O a bassa latenza su un singolo server.
Amazon EFS (Elastic File System) è file storage: un filesystem NFS condiviso che più istanze EC2 (Linux) possono montare contemporaneamente, con capacità che cresce e si riduce in automatico. È la scelta quando serve accesso condiviso agli stessi file da parte di più server.
Le storage class di Amazon S3
S3 offre più storage class per bilanciare costo e frequenza di accesso, senza cambiare API:
- S3 Standard: dati acceduti spesso, latenza bassa.
- S3 Intelligent-Tiering: sposta automaticamente gli oggetti fra livelli in base all’uso; ideale quando gli accessi sono imprevedibili.
- S3 Standard-IA / One Zone-IA: accesso infrequente; One Zone-IA costa meno ma tiene i dati in una sola AZ.
- S3 Glacier (Instant/Flexible Retrieval) e Glacier Deep Archive: archiviazione a lungo termine a costo molto basso, con tempi di recupero crescenti.
Regola pratica: più raramente accedi ai dati, più risparmi sullo storage ma paghi di più (o attendi di più) al recupero.
Database gestiti: RDS, Aurora e DynamoDB
Amazon RDS è il servizio di database relazionale gestito. Supporta motori come MySQL, PostgreSQL, MariaDB, Oracle e SQL Server: dati strutturati in tabelle, query SQL, transazioni ACID. Essendo un managed service, AWS si occupa di patching, backup automatici, high availability con deployment Multi-AZ (failover su una standby) e scalabilità in lettura tramite read replica. Lo usi quando hai uno schema fisso e relazioni fra i dati (gestionali, e-commerce transazionali).
Amazon Aurora fa parte della famiglia RDS: è compatibile con MySQL e PostgreSQL ma progettato da AWS per prestazioni e durabilità superiori. È l’opzione relazionale quando serve più throughput restando sul modello SQL.
Amazon DynamoDB è un database NoSQL key-value e documentale, completamente gestito e serverless: nessun server da amministrare, scalabilità automatica e latenze in single-digit millisecond anche a volumi enormi. È adatto a schema flessibili e carichi molto elevati (cataloghi, sessioni, IoT, gaming).
Abbinare esigenza e servizio
Il criterio di scelta è il cuore delle domande. Chiediti: i dati sono strutturati con relazioni e query SQL? → RDS/Aurora. Servono flessibilità di schema e scala orizzontale enorme con accesso a chiave? → DynamoDB. Devo archiviare file/oggetti? → S3. Serve un disco per una singola istanza? → EBS. Serve un filesystem condiviso fra più istanze? → EFS. In tutti questi casi il valore del managed service è che AWS gestisce l’infrastruttura sottostante, lasciandoti responsabile solo di dati, configurazione e accessi (shared responsibility model). Il passing score dell’esame è 700/1000: allena il ragionamento per associazione, non la memoria.
Trappole tipiche d’esame
- Storage condiviso da più EC2 → soluzione: Amazon EFS, non EBS: un volume EBS standard si collega a una sola istanza in una sola AZ.
- Schema flessibile e scala massiva a bassa latenza → soluzione: DynamoDB, non RDS: il relazionale è per dati strutturati con relazioni, non per il NoSQL a chiave.
- Archiviazione a lungo termine al minor costo → soluzione: S3 Glacier Deep Archive, non S3 Standard: se accedi di rado, l’archiviazione fredda abbatte i costi.
- Accessi imprevedibili senza gestire manualmente i tier → soluzione: S3 Intelligent-Tiering, che ottimizza i costi in automatico.
- Alta disponibilità del database relazionale → soluzione: RDS Multi-AZ (failover), da non confondere con le read replica, che scalano le letture, non il failover.
- “Minimo sforzo operativo / nessun server da gestire” → soluzione: servizio managed o serverless (es. DynamoDB, Aurora Serverless): frasi come “least operational overhead” indirizzano ai servizi gestiti, non a database installati su EC2.