Amazon Web Services: S3, RRS e Versioning #1

amazon web services

Il Cloud Computing sta diventando sempre più pervasivo nella progettazione e implementazione di infrastrutture, tanto che non possiamo che essere d’accordo con la frase del SVP di Amazon Web Services, Andy Jassy “Cloud is becoming the new normal”.
AWS è il principale player di mercato sia come dimensioni che come numero di clienti; a dircelo è un sondaggio fatto da IDC che indica che gli Amazon Web Services sono grandi circa 5 volte la somma di tutti gli altri Cloud provider messi insieme.

Il servizio S3 è stato il primo ad apparire nell’offerta pubblica degli Amazon Web Services e nel corso degli ultimi 9 anni (la sua introduzione risale al 2006) sono state aggiunte numerose caratteristiche. Amazon S3 ad oggi risulta essere lo storage di contenuti più grande del web con oltre 2 trilioni di files ospitati.
Nel corso del tempo, Amazon ha introdotto numerose novità tra le quali spiccano:

  • Reduced Redundancy Storage (RRS),
  • Versioning,
  • Cross Region replication,
  • Object expiration.

Oggi parleremo delle prime due novità, RRS e Versioning.

Reduced Redundancy Storage (RRS)

Amazon S3 è un servizio pay-per-use economico e durevole; memorizzare 100GB di un nostro ipotetico backup personale ci costerebbe 3,00 $ al mese in una delle Region europee. Per garantire un’elevata affidabilità sulla conservazione del dato, questo viene copiato almeno 3 volte all’interno della stessa Region su datacenter (Availability Zones) diversi; questo fa si che Amazon ci possa garantire il 99,999999999 % sulla durevolezza del dato.
Se vogliamo risparmiare sui costi di storage per immagazzinare una notevole quantità di dati e non abbiamo bisogno di garanzie così elevate sulla durevolezza del dato, Amazon mette a disposizione una classe di storage S3 a ridotta disponibilità ad un costo del 20% inferiore. Pertanto, nel caso volessimo usare la classe di storage RRS, il costo per GB si abbasserebbe a 0,024 $ per GB al posto di 0,03 $ al GB.

Chiaramente i casi di utilizzo di questa classe di storage non sono adatti a tutte le situazioni, ma solo ai contesti nei quali il dato che abbiamo immagazzinato è in qualche modo riproducibile. Pensiamo ad esempio al risultato di un’elaborazione di un’immagine di miniatura, per la quale abbiamo ancora il file originale e possiamo sempre riprodurla in caso di perdita del file convertito.
Per copiare dei file verso S3 in modalità RRS verso un bucket, possiamo usare i comandi di AWS CLI oppure di s3cmd

Successivamente possiamo verificare che la tipologia sia stata realmente impostata tramite Console Web.

Reduced Redundancy Storage

 

Vengono specificate ulteriori caratteristiche e garanzie offerte a questo indirizzo: http://aws.amazon.com/it/s3/faqs/#rrs_anchor

Versioning

Tramite il versioning è possibile mantenere più copie dello stesso oggetto all’interno di un bucket.
L’utilizzo più comune del versioning è quello di risolvere il problema di cancellazioni e sovrascritture accidentali umane o di qualche nostra procedura; pertanto potremmo pensare di usarlo come metodo di recupero dati di un bucket. Infatti ricordiamo sempre che una volta cancellato un oggetto da un bucket, non c’è nessun modo per recuperarlo, quindi facciamo molta attenzione!
Una volta che il versioning per il nostro bucket sarà attivo, avremo due o più oggetti con lo stesso nome, ma con differente Version ID.

Inoltre come vedremo la prossima settimana, questa è il requisito fondamentale per ottenere la funzionalità di Cross Region replication.
La funzionalità di versioning non si può disabilitare, ma solo sospendere.
Per abilitare il versioning è sufficiente cliccare su “Enable Versioning” nelle proprietà del bucket all’interno della console web.

Versioning

 

Se invece volessimo utilizzare AWS CLI potremmo usare i seguenti comandi:

La prossima settimana continueremo a parlare di S3 con altre due funzionalità molto interessanti: Cross Region replication e Object expiration.