CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon CloudFront

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon CloudFront"

Transcript

1 Community - Cloud AWS su Google+ Amazon Web Services Servizio Amazon CloudFront Oggi vedremo il servizio di Amazon CloudFront per la distribuzione di contenuti statici tramite CDN. Hangout 08 del Davide Riboldi Massimo Della Rovere CLOUD AWS #cloudaws cloud-aws.com

2 Amazon CloudFront - Descrizione generale CloudFront è un servizio di Amazon collegato al servizio S3 che velocizza la distribuzione dei contenuti statici nei confronti dell utente finale. Quando un utente finale richiede un contenuto presente su CloudFront, l utente viene indirizzato verso la edge location con la latenza più bassa. Se il contenuto è presente nella edge location, verrà immediatamente distribuito, altrimenti verrà recuperato dall origine configurata.

3 Amazon CloudFront - Una richiesta HTTP Quando eseguiamo la richiesta di una pagina HTML in realtà generiamo diverse richieste per caricare diversi elementi che compongono la pagina finale, ad esempio immagini, fogli stili, javascript, ect R equest U R L R equest C SS R equest IM G 1 R equest IM G 2 R equest File JS Server W EB Server W EB Quindi se nella pagina richiesta ci sono ad esempio 30 risorse diverse queste genereranno 30 richieste HTTP singole allo stesso server. Normalmente la prima richiesta è un elaborazione dinamica, ad esempio con PHP, ASP, Java ect e le altre sono risorse statiche.

4 Amazon CloudFront - Suddividere le richieste Una soluzione al problema precedente potrebbe essere quella di suddividere le richieste HTTP, lasciando quelle dinamiche al nostro server web e quelle statiche al servizio di Amazon CloudFront. Request URL Request CSS Request IMG1 Request IMG2 Request File JS Server WEB CloudFront In questa maniera il carico maggiore e i problemi di scalabilità legati alle nostre risorse statiche sarebbero demandati al servizio cloudfront. Come potete facilmente notare il nostro server web sarebbe liberato da un numero molto elevato di richieste HTTP.

5 Amazon CloudFront - Mappa geografica Edge Locations ROMA URL REQ Dublino Milano Server = Zona geografica Risorse = Edge Locations

6 Amazon CloudFront - Concetti e Termini Objects Origin Server Distributions Edge Locations Expiration Eventual Consistency

7 Amazon CloudFront - Objects Gli oggetti sono quei file memorizzati in una nostra origine che vogliamo che vengano distribuiti automaticamente tramite il servizio di CloudFront. Gli oggetti includono immagini, file statici o qualsiasi cosa possa essere distribuita via HTTP o Adobe RTMP il protocollo utilizzato da Adobe Flash Media Server. Ultimamente è stato aggiunto anche il supporto a Microsoft Live Smooth Streaming. Quindi possiamo memorizzare video e usare il player Microsoft.

8 Amazon CloudFront - Origin Server Il server di origine è il luogo dove risiedono le versioni originali degli oggetti che vogliamo distribuire con CloudFront attraverso le edge locations. Il server di origine può essere un Bucket S3 o un server HTTP, quest ultimo può essere attivo sia su un istanza EC2 o su un server diverso esterno agli AWS. Se gli oggetti vengono distribuiti via HTTP il server di origine può essere un Bucket S3 o un server HTTP, se vengono distribuiti in streaming via RTMP il server di origine deve essere un Bucket S3.

9 Amazon CloudFront - Distributions Una volta memorizzati gli oggetti nel server di origine bisogna dire a CloudFront dove risiedono questi oggetti creando una distribuzione che può essere di due tipi: Web Distribution - Distribuisce i contenuti utilizzando i protocolli HTTP e HTTPS. Si possono distribuire immagini, file CSS, javascript, etc... Streaming Distribution - Distribuisce contenuti digitali attraverso Adobe Flash Media Server e il protocollo RTMP. Possiamo memorizzare dei file video.

10 Amazon CloudFront - Edge Locations Una Edge Location è un sito geografico dove CloudFront deposita le copie degli oggetti memorizzati nelle origini che sono state specificate nella distribuzione. Quando un utente finale richiede uno di questi oggetti, il servizio di CloudFront decide la miglior edge location che possa rispondere a questa richiesta. Se la edge location non possiede l oggetto richiesto, CloudFront la prende dal server di origine e lo distribuisce all utente finale mantenendo poi una copia all interno della cache nella edge location.

11 Amazon CloudFront - Expiration Per ogni richiesta dello stesso oggetto CloudFront distribuirà l oggetto contenuto nella cache della Edge Location fino a che l oggetto non sarà scaduto. Scaduto l oggetto alla successiva richiesta CloudFront inoltrerà una richiesta verso l origine per determinare se è disponibile una versione più aggiornata dell oggetto. Di default l oggetto scade dopo 24h che risiede nella cache della Edge Location. Il tempo minimo di scadenza dell oggetto è 0 sec e non esiste un limite massimo.

12 Amazon CloudFront - Eventual Consistency Quando una distribuzione CloudFront viene creata, modificata o cancellata si richiede tempo prima che i cambiamenti vengano propagati nel sistema completo. Le informazioni riguardanti la distribuzione alla fine diventano coerenti, ma una richiesta immediata di informazioni potrebbe non mostrare i cambiamenti. Per raggiungere la coerenza dei dati normalmente si richiedono alcuni minuti, ma un alto carico di sistema potrebbe aumentare il tempo richiesto.

13 Amazon CloudFront - Costi Amazon S3 come origine Si pagano i costi dei dati memorizzati all interno del Bucket. Trasferimento Edge Locations Si paga per il numero di richieste GET e la quantità di dati trasferiti al di fuori di Amazon S3. Trasferimento Origin Server Addebitati i costi di trasferimento dati da parte dell utente verso l origine. Distribuzione Oggetti Vengono addebitati i costi per il numero di richieste e la quantità di dati trasferiti al di fuori delle Edge Location. Al momento il servizio CloudFront non è inserito nell offerta Free Tier

14 Amazon CloudFront - CloudFront o S3? Sia CloudFront che amazon S3 distribuiscono contenuti, è sempre meglio utilizzare CloudFront per farlo? Non necessariamente, dipende dalle nostre particolari esigenze e dalla geografia dei nostri utenti. Amazon S3 è stato disegnato per memorizzare le versioni originali dei file e per garantire una alta durevolezza del dato. CloudFront è stato progettato per distribure i contenuti con una bassissima latenza, non è stato progettato per una memorizzazione del dato durevole. Se prevedete un alto numero di richieste dei propri oggetti, CloudFront può fornire delle performance più elevate rispetto al solo Amazon S3. Su un alto numero di richieste CloudFront risulta più economico di S3.

15 Amazon CloudFront - Management Console Scegliere il metodo di distribuzione Configurazione distribuzione Web Configurazione distribuzione RTMP

16 Amazon CloudFront - Ringraziamenti Video consigliati Cloud Computing Amazon Web Service 1 Amazon Web Service 2 Amazon Free Trial Amazon S3 Amazon Glacier Amazon CloudFront Amazon MFA Amazon SNS