prd-005 - amazon simple storage service (s3)

34
Community - Cloud AWS su Google+ Cloud AWS Amazon Web Services cloud-aws.com Servizio S3 Simple Storage Service Hangout 04 del 10.02.2014 Davide Riboldi Massimo Della Rovere In questo hangout vedremo il servizio di Amazon S3 per la gestione dello storage online e operazioni di backup. CLOUD AWS #cloudaws

Upload: cloud-aws

Post on 10-Aug-2015

82 views

Category:

Technology


6 download

TRANSCRIPT

Community - Cloud AWS su Google+

Cloud AWS

Amazon Web Services

cloud-aws.com

Servizio S3 Simple Storage Service

Hangout 04 del 10.02.2014

● Davide Riboldi● Massimo Della Rovere

In questo hangout vedremo il servizio di Amazon S3 per la gestione dello storage online e operazioni di backup.

CLOUD AWS

#cloudaws

Amazon S3 - Descrizione generale

Cloud AWS

● Amazon Simple Storage Service (S3) è un servizio storage online che ci permette di memorizzazione grandi quantità di dati all’interno del cloud.

● Amazon S3 può essere utilizzato e gestito in due modi: via web tramite la AWS Management Console Interface oppure attraverso le Amazon S3 API.

● Uno dei grossi vantaggi nell’utilizzare la AWSManagement console è quello di poter effettuare molte operazioni senza scrivere una riga di codice.

Amazon S3 - Vantaggi del servizio

Cloud AWS

Storage illimitato nessun limite alla quantità di dati.

Interfaccia Standard utilizzo di standard SOAP e REST.

Scalabilitàscala in termini di spazio disco, numero di richieste e utenti.

Affidabilità99,999999999% di durevolezza del dato e 99,99% di disponibilità in linea.

Sicurezza gestione meccanismo di autenticazione.

Amazon S3 - Termini utilizzati dal servizio

Cloud AWS

Buckets Objects

Keys

Folders

RegionsAccess Control

Data encryption

Data consistency

model

Amazon S3 - Termine “Regions”

Cloud AWS

Regioni geograficheZone di disponibilità

Amazon S3 - Termine “Regions”

Cloud AWS

● E’ possibile scegliere una regione dove memorizzare il bucket che creeremo. La scelta può essere effettuata per ottimizzare la latenza, ridurre i costi o per soddisfare i requisiti normativi.

● Ad esempio nella Regione Europea i dati personali sono tutelati dalle normative “EC Directive 95/46/EC: Personal data protection”, “Safe Harbour EU Compliant”, ect

● Gli oggetti memorizzati all'interno di un bucket non vengono per nessun motivo duplicati da parte di Amazon in altre regioni, solo il responsabile può eseguire questa operazione.

Amazon S3 - Termine “Bucket”

Cloud AWS

● Un bucket è un contenitore di oggetti memorizzato all’interno di Amazon S3 e ogni oggetto memorizzato all'interno di Amazon S3 è contenuto all'interno di un bucket.

● Il nome del bucket deve essere univoco su scala mondiale e non può essere modificato. Questo nome compone la stringa URL che permette di raggiungere via web gli oggetti.

● Ad esempio un oggetto chiamato “audio.mp3” memorizzato in un bucket chiamato “contenitore” sarà raggiungibile attraverso: http://contenitore.s3.amazonaws.com/audio.mp3.

AmazonS3

Amazon S3 - Termine “Bucket”

Cloud AWS

DEMOONLINE

Operazionisui

Buckets

Passiamoalla

demo online

Amazon S3 - Termine “Object”

Cloud AWS

● Gli oggetti sono entità di base memorizzate in S3. L'oggetto è composto da dati e metadati. I dati sono binari mentre i metadati sono nomi e valori che descrivono l'oggetto.

● Un esempio di metadati può essere la data dell'ultima modifica dell'oggetto oppure un metadato HTTP standard come il Content-Type da includere in un richiesta HTTP.

● Un oggetto viene identificato in maniera univoca all'interno del Bucket con una Key (name) e un version ID. In quanto ogni oggetto protebbe avere diverse versioni memorizzate.

Amazon S3 - Termine “Folder”

Cloud AWS

● Le cartelle servono per raggruppare gli oggetti all'interno di un bucket. Quando viene creata una cartella viene creato un oggetto a zero-byte con una slash (/) alla fine del nome.

● Amazon S3 interpreta la slash come un delimitatore durante le operazioni di list. Se venisse creata una nuova cartella chiamata “logs”, S3 andrebbe a creare un oggetto “logs/”.

● Nel momento stesso in cui andassimo a caricare un oggetto con il nome “history.txt” all'interno della cartella “logs”, il nome completo di questo oggetto diverrà logs/history.txt.

Amazon S3 - Termine “Key”

Cloud AWS

● Ogni oggetto memorizzato all'interno dei bucket possiede una Key. Una key può essere considerata come il nome di un file e identifica l’oggetto all'interno dei Bucket.

● All’interno di un bucket la combinazione tra la key e il version ID (solo se si attiva il versioning nel bucket) identificano in maniera univoca ogni oggetto.

● Su http://doc01.s3.amazonaws.com/documenti/varie.txt vediamo che “doc01” è il nome del bucket mentre la stringa “documenti/varie.txt” è la key dell’oggetto.

AmazonS3

Amazon S3 - Termine “Object”

Cloud AWS

DEMOONLINE

Operazionisu

Objects

FoldersKeys

Amazon S3 - Termine “Access Control”

Cloud AWS

● Amazon S3 utilizza due metodi per poter controllare gli accessi ai bucket e agli oggetti: tramite Access Control List (ACL) e tramite le policy di bucket.

● Le ACL definiscono i permessi associati ad ogni singolo bucket o oggetto. Possiamo definire le classiche funzioni di READ, WRITE, READ_ACP e WRITE_ACP.

● Le policy sono un insieme di istruzioni che definiscono le autorizzazioni di un utente per accedere alle risorse S3, come ad esempio CreateBucker, DeleteBucker, ect.

Amazon S3 - Termine “Access Control”

Cloud AWS

● Per quanto riguarda le ACL possono essere inserite tramite le REST API o tramite la management console usando un’interfaccia sicuramente più familiare.

● Le policy invece vengono inserite tramite un file JSON, il quale può essere creato utilizzando un tools messo a disposizione sul sito ufficiale di amazon aws.

● http://awspolicygen.s3.amazonaws.com/policygen.html

Amazon S3 - Termine “Data Consistency Model”

Cloud AWS

● Amazon S3 realizza l’alta affidabilità dei dati replicando gli oggetti su più server all’interno del data center, e come già detto solo nella zona geografica interessata.

● Solo alla fine di questo processo possiamo considerare i dati memorizzati in modo sicuro e considerare il dato integro e utilizzabile dalle nostre procedure applicative.

● Amazon S3 attualmente non supporta l’object locking, quindi se viene caricato simultaneamente un oggetto nella stessa key, vince l’oggetto con il timestamp più recente.

Amazon S3 - Termine “Data Consistency Model”

Cloud AWS

● Fino a che non viene terminata la replica dell’oggetto si possono riscontrare dei problemi di accesso al dato, alcuni di questi problemi possono essere i seguenti:

○ quando tentiamo di accedere ad un oggetto appena creato Amazon S3 ci risponde che la key non esiste.

○ carichiamo un oggetto all’interno del bucket e questo non compare, perchè la replica ancora non è terminata.

○ quando sostituiamo un oggetto esistente, potrebbe succedere che visualizziamo ancora i dati vecchi.

Amazon S3 - Buckets - Operazioni generali

Cloud AWS

AmazonS3

1 Creazione bucket

2 Cancellazione bucket

3 Browsing list object

4 Managing bucket logging

5 Gestione permessi bucket

6 RRS lost object notification

7 Ciclo di vita (lifecicle)

8 Analisi costi tramite dei tag

Amazon S3 - Buckets - Creazione

Cloud AWS

● Prima di poter caricare dei dati in amazon S3 bisogna creare un bucket. Una delle prime operazioni che bisogna effettuare è scegliere la regione geografica.

● Per la creazione di un bucket non viene addebitato alcun costo, i costi sono calcolati solo sulla quantità di dati memorizzati e sul trasferimento di essi.

● Il nome di un bucket deve essere unico, e non può essere uguale ad altri bucket presenti in Amazon S3. Il nome di un bucket non può essere modificato.

AmazonS3

Amazon S3 - Buckets - Creazione

Cloud AWS

● Il nome può contenere lettere maiuscole, minuscole e numeri. ● i simboli utilizzabili sono il punto ‘.’ underscore ‘_’ e il meno ‘-’● Il nome deve iniziare con lettere o numeri.● deve essere compreso tra i 3 e i 255 caratteri.● non può avere il formato di un indirizzo ip.

Se si vuole rendere il nome conforme alle specifiche DNS:

● non può contenere underscore ‘_’● il nome deve essere compreso tra i 3 e i 63 caratteri.● non può terminare con il meno ‘-’● non può avere due punti ‘.’ adiacenti.● non può contenere il punto vicino al meno ‘-.’ ‘.-’

Amazon S3 - Buckets - Cancellazione

Cloud AWS

● Un bucket per essere cancellato deve essere vuoto, se ci sono degli oggetti all’interno del bucket bisogna per prima cancellare gli oggetti e poi eliminare il bucket.

● Quando un bucket viene cancellato, prima che il nome possa essere riutilizzato bisogna attendere un certo intervallo di tempo che può arrivare fino ad un’ora.

● Se il bucket viene ricreato nella stessa regione e dallo stesso proprietario del bucket non è necessario aspettare questo intervallo di tempo.

Amazon S3 - Buckets - Logging

Cloud AWS

● Questa opzione permette di tenere traccia degli accessi eseguiti sul bucket tramite dei file di log. Questi log potrebbero essere uniti a quelli dei nostri server.

● I log contengono tutti i dettagli che riguardano le richieste effettuate come: il tipo di richiesta, le risorse utilizzate e la data e l’ora della richiesta.

● L’attivazione del servizio non ha costi aggiuntivi, ma i file che vengono memorizzati concorrono alla fatturazione dello spazio di archiviazione utilizzato.

Amazon S3 - Buckets - RRS Notification

Cloud AWS

● Reduced Redundancy Storage (RRS) è un sistema di memorizzazione più economico per la memorizzazione di oggetti con informazioni non critiche.

● È possibile abilitare degli eventi di notifica tramite il servizio di amazon SNS nel momento in cui amazon S3 rileva che un oggetto RRS viene perso.

● Possiamo utilizzare questa tecnica ad esempio per la creazione di miniature da immagini più grandi, infatti se dovessimo perdere il dato lo possiamo sempre ricreare.

Amazon S3 - Buckets - Ciclo di vita

Cloud AWS

● Sul bucket possiamo definire un parametro chiamato lifecycle per controllare il ciclo di vita degli oggetti e può essere impostato direttamente da console.

● Durante l’impostazione del parametro di lifecycle è possibile specificare se l’oggetto deve essere cancellato o memorizzato nel servizio di amazon glacier.

● Questa funzione è molto utile per i file di log che possono essere cancellati o archiviati automaticamente utilizzando un prefisso iniziale del nome oggetto.

Amazon S3 - Buckets - Costi tramite Tag

Cloud AWS

● Su ogni bucket possiamo specificare dei tag particolari con cui possiamo analizzare i costi generali del servizio S3 e poterli dividere per centro di costo di competenza.

● Ad esempio se gestiamo con il nostro account anche servizi per terzi potremmo ottenere i costi del servizio divisi per ogni cliente o per ogni applicazione.

● Per ulteriori informazioni e approfondimenti su questa tecnica vi consiglio la lettura di questo articolo:http://aws.typepad.com/aws/2012/08/aws-cost-allocation.html

AmazonS3

Amazon S3 - Buckets - Demo online

Cloud AWS

DEMOONLINE

Operazionisu

Buckets

Passiamoalla

demo online

Amazon S3 - Buckets - Website Hosting

Cloud AWS

● Un bucket S3 può essere utilizzato anche come contenitore di file HTML statici che verranno serviti tramite HTTP come un qualsiasi server web.

● Inoltre è possibile creare una mappatura DNS in maniera tale da mascherare il bucket S3 con un proprio dominio e simulare un server completo.

● Questa funzione è molto utile anche come siti di backup da mandare online durante le operazioni di manutenzione straordinaria del sito web.

Amazon S3 - Objects - Operazioni generali

Cloud AWS

1 Uploading 7 Operazione di copia

2 Gestione proprietà 8 Operazione di cancellazione

3 Gestione permessi 9 Operazione di rename

4 Gestione metadata 10 Operazione di ripristino

5 Apertura oggetto 11 Operazione di versioning

6 Gestione download 12 Operazione ciclo di vita

Amazon S3 - Objects - Caratteristiche

Cloud AWS

● Key - Il nome che viene assegnato ad un oggetto. ● Version ID - è una stringa aggiunta all’oggetto quando

viene caricato in un bucket. Il Version ID permette di mantenere più versioni di un singolo oggetto.

● Value - Il contenuto che viene archiviato. Un object value può essere una qualsiasi sequenza di bytes. La dimensione dell’oggetto può arrivare fino a 5TB.

● Metadata - una serie di associazioni nome-valore con il quale è possibile memorizzare informazioni aggiuntive. Access Control Information - è possibile controllare gli accessi agli oggetti memorizzati in Amazon S3. Il controllo degli accessi avviene tramite le ACL o IAM.

AmazonS3

Amazon S3 - Objects - Demo online

Cloud AWS

DEMOONLINE

Objects

Passiamoalla

demo online

Amazon S3 - Objects - Data Encryption

Cloud AWS

● Amazon S3 fornisce maggiore sicurezza agli oggetti memorizzati nei bucket dando la possibilità di attivare l'opzione di cifratura (Encryption).

● La crittografia avviene prima che questi vengano salvati sui dischi dei data center e li decifra quando l'oggetto viene scaricato. Può essere un'alternativa alla cifratura client che possiamo gestire prima del caricamento.

● Gli oggetti vengono cifrati con uno degli algoritmi a blocchi più robusti attualmente presenti sul mercato, 256-bit Advanced Encryption Standard (AES-256)

Amazon S3 - Objects - Versioning

Cloud AWS

● Il Versioning mantiene più versioni di un oggetto nello stesso bucket. È possibile avere due oggetti con lo stesso nome ma con differente version ID.

● È possibile utilizzare il versioning per prevenire la cancellazione o la sovrascrittura accidentale degli oggetti e prevenire errori fatti dal software.

● Di base il versioning in un bucket è disabilitato, una volta attivato non è più possibile disattivarlo, ma si può solo metterlo in uno stato di sospensione.

AmazonS3

Amazon S3 - Objects - Demo online

Cloud AWS

DEMOONLINE

ObjectsVersioning

Passiamoalla

demo online

Amazon S3 - Alcune avvertenze

Cloud AWS

● Se utilizzate il servizio di Amazon S3 in prova gratuita per un’anno intero leggete bene i limiti di utilizzo che trovate al seguente indirizzo internet:

http://aws.amazon.com/free/

● Se invece utilizzate il servizio con un’account amazon normale e il classico metodo di pagamento pay-to-use leggete bene la pagina sui costi del servizio.

http://aws.amazon.com/s3/pricing/