Tutorial Amazon CloudFront: configurazione di una distribuzione dinamica dei contenuti per Amazon S3

Come configurare una distribuzione Amazon CloudFront per Amazon S3

Amazon CloudFront si integra perfettamente con Amazon Simple Storage Service (Amazon S3) per accelerare la distribuzione dei contenuti Web e ridurre il carico sui server di origine. Amazon S3 è un'opzione eccellente per coloro che desiderano archiviare dati nel cloud e distribuirli come contenuti Web. Se preferisci distribuire funzionalità o contenuti dinamici, scopri come configurare una distribuzione Amazon CloudFront per Amazon Elastic Compute Cloud (Amazon EC2).

Guarda questa demo di AWS TechTips per scoprire come configurare una distribuzione CDN Amazon CloudFront con il tuo

Quali sono i vantaggi della configurazione di una distribuzione Amazon CloudFront con Amazon S3?

Una distribuzione della rete di distribuzione di contenuti (CDN) di Amazon CloudFront offre numerosi vantaggi agli utenti di S3.

Rapide velocità di trasferimento dati

CloudFront ti consente di offrire rapidamente i tuoi contenuti agli spettatori di tutto il mondo. Le numerose posizioni edge di CloudFront memorizzano nella cache e distribuiscono i contenuti più vicino agli utenti, riducendo la latenza e alleggerendo la capacità richiesta dal tuo server di origine.

Sicurezza e prestazioni migliorate

CloudFront limita anche l'accesso al tuo bucket S3. Consentendo solo agli endpoint CloudFront di dare accesso ai tuoi contenuti, le tue applicazioni saranno più sicure e reattive.

Trasferimenti di dati convenienti

I prezzi di CloudFront ti consentono di personalizzare la distribuzione in base al tuo budget. AWS non addebita costi per i trasferimenti di dati tra un'origine ospitata su AWS, come S3, e CloudFront, rendendo le richieste all'origine un'opzione conveniente dal punto di vista dei costi.

Come accelerare la velocità di caricamento dinamico dei contenuti con CloudFront e S3

Fase 1. Vai alla Console AWS

Per iniziare, accedi alla tua Console di gestione AWS e seleziona Amazon S3 dall'elenco dei servizi. 

Fase 2. Crea un bucket Amazon S3

Da lì, puoi:

  • Creare un bucket S3 se non ne hai già uno, selezionando Crea bucket.
  • Specificare un nome di bucket conforme al DNS.
  • Selezionare la Regione in cui desideri collocare il bucket.

Quindi, puoi creare il tuo bucket. Utilizzando la console o le API S3, puoi aggiungere altri file al tuo bucket o creare nuovi bucket, se lo desideri. Quando inizialmente crei un bucket S3, la propagazione della modifica del nome DNS richiede del tempo, in genere fino a 15 minuti.

Fase 3. Crea una distribuzione CloudFront

A questo punto, accedi a CloudFront dalla sezione Reti e distribuzione di contenuti dell'elenco dei servizi della Console AWS. Se hai già aperto CloudFront, questo potrebbe essere presente anche nella tua cronologia per un accesso più rapido. Da qui, puoi creare una nuova distribuzione Web facendo clic su Crea distribuzione.  

Fase 4. Specifica le impostazioni di distribuzione

Ora puoi iniziare a inserire le impostazioni di distribuzione. Inizia specificando il dominio S3 che hai creato nel campo Nome dominio di origine.  

Fase 5. Configura la tua origine

Inserisci il tuo Nome dominio di origine. Se hai creato il bucket S3 nello stesso account AWS, dovrebbe apparire in un elenco a discesa all'interno del campo. Se si trova in un account diverso, controlla le impostazioni del bucket per concedere le autorizzazioni di accesso a CloudFront.

La concessione delle autorizzazioni di accesso consente a CloudFront di leggere gli oggetti dal bucket. Se metti tutti gli oggetti in una sottocartella, puoi anche specificare un percorso di origine.

Fase 6. Configura l'identità di accesso all'origine

Da qui, puoi limitare l'accesso alla tua origine Amazon S3. Se selezioni "sì", il sistema ti chiederà di creare un'identità di accesso all'origine o di selezionarne una esistente, consentendo a CloudFront di leggere gli oggetti dal tuo bucket. Hai anche l'opzione di consentire a CloudFront di aggiornare la policy del bucket per te.

Se scegli di non limitare l'accesso, gli utenti potrebbero essere in grado di bypassare CloudFront e accedere ai tuoi contenuti direttamente tramite l'URL del bucket S3. Per qualsiasi contenuto privato o sensibile, è importante impostare le restrizioni di accesso corrette.

In questa sezione, puoi anche specificare un percorso di origine se archivi tutti gli oggetti in una sottocartella. Puoi fornire un'intestazione personalizzata di origine con un valore specificato che CloudFront inoltrerà all'origine per ogni richiesta. Questo è utile per le origini personalizzate, in quanto mostra quale richiesta proviene da CloudFront piuttosto che da un altro client.

Fase 7. Configura il comportamento predefinito della cache

A questo punto sono disponibili varie opzioni in Impostazioni predefinite del comportamento della cache.

La policy del protocollo dello spettatore consente di scegliere come gestire i protocolli HTTP e HTTPS. Puoi scegliere di reindirizzare le richieste HTTP a HTTPS, ad esempio, e questo ti permette di supportare le richieste utilizzando entrambi i protocolli. Puoi anche specificare di supportare solo HTTPS, nel qual caso il traffico HTTP verrebbe interrotto. Ciò garantisce la conformità alle best practice in materia di sicurezza del Web.

CloudFront consente di specificare quali metodi HTTP desideri che vengano accettati. L'impostazione predefinita è GET, HEAD. Selezionando una delle altre opzioni (GET, HEAD, OPTIONS o GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE) potrai configurare il modo in cui CloudFront memorizza nella cache il metodo delle opzioni.

Quindi, puoi specificare quali intestazioni HTTP desideri inoltrare alla tua origine. In genere si consiglia di consentire le intestazioni in base al comportamento di richiesta e risposta pertinente per l'origine di Amazon S3. Nello specifico, se la tua origine si basa su determinate intestazioni HTTP per decidere quale oggetto restituire, dovresti consentire tali intestazioni. Se inoltri tutte le intestazioni HTTP, CloudFront ignorerà effettivamente i livelli di cache e non tenterà affatto di memorizzare nella cache l'oggetto.

Fase 8. Configura i tuoi TTL

Nella sezione successiva, puoi specificare il Time to Live (TTL), gestendo per quanto tempo il contenuto rimane nella cache prima della scadenza. Per impostazione predefinita, sarà selezionata l'opzione Usa le intestazioni della cache di origine. In alternativa, puoi personalizzare i limiti temporali superiori e inferiori per gli oggetti da memorizzare nella cache di CloudFront.

Se scegli di modificare queste impostazioni, ti verrà richiesto di inserire un TTL minimo e massimo espresso in secondi. Quindi, se l'intestazione restituisce un valore diverso dal valore minimo o massimo, CloudFront utilizzerà il TTL minimo o massimo. Se rientra in questi limiti, CloudFront utilizzerà il valore restituito dalla tua origine.

Se la tua origine non restituisce un'intestazione di controllo della cache, verrà utilizzato il TTL predefinito. Nel nostro video di esempio, il valore predefinito è impostato su 86.400 secondi, che equivale a 24 ore.

Fase 9. Configura funzionalità aggiuntive

Nella sezione successiva, puoi scegliere di memorizzare nella cache i contenuti in base ai cookie e ai parametri della stringa di query.

Come per le intestazioni HTTP, la raccomandazione è di consentire solo i cookie o i valori delle stringhe di query pertinenti per la tua origine. Puoi anche inoltrarli e il CDN proverà comunque a memorizzarli nella cache. Fai attenzione se scegli di inoltrare tutto: potresti ridurre notevolmente la percentuale di riscontri nella cache se CloudFront inoltrasse tutto. Di conseguenza, potresti avere un gran numero di oggetti memorizzati nella cache più volte a causa delle diverse possibili varianti delle query e dei valori dei cookie.

A questo punto sono disponibili ulteriori opzioni nei campi seguenti:

In Impostazioni di distribuzione, puoi specificare quali parti della rete CloudFront desideri utilizzare. Per impostazione predefinita, CloudFront utilizzerà tutte le posizioni edge per prestazioni ottimali. Questo ti aiuterà a distribuire i tuoi contenuti il più velocemente possibile in tutto il mondo.

Se prevedi spettatori solo in aree specifiche, come Stati Uniti, Canada ed Europa, puoi specificare solo quelle regioni come una fascia di prezzo inferiore. Ciò non impedisce agli spettatori al di fuori di tali aree geografiche di accedere ai tuoi contenuti: CloudFront li indirizzerà semplicemente alla posizione edge più vicina. Se intendi utilizzare Web Application Firewall AWS (AWS WAF) con CloudFront, puoi configurare queste impostazioni anche qui.

Prima di salvare la distribuzione, è importante gestire il certificato Secure Sockets Layer (SSL). Qui ci sono due opzioni:

  • Utilizza il certificato CloudFront predefinito.
  • Carica o richiedi un certificato SSL personalizzato da Gestione certificati AWS (ACM) e associalo alla tua distribuzione CloudFront; questo è adatto se utilizzi un dominio personalizzato.

Infine, puoi utilizzare le impostazioni rimanenti per specificare:

  • Quali versioni HTTP supportate desideri utilizzare.
  • Se utilizzerai la registrazione di log e quale bucket per log dovrebbe utilizzare CloudFront per archiviare i log di accesso.
  • Se la registrazione dei cookie è attiva.

Da lì, puoi inserire una descrizione e creare la distribuzione. Una volta che hai salvato, la distribuzione impiegherà circa 15 minuti per essere implementata in tutto il mondo.

Fase 10. Testa la tua distribuzione CloudFront

Una volta che la distribuzione è pronta, puoi fare clic su di essa per rivedere le tue impostazioni. La prima schermata ti mostrerà una serie di schede e le impostazioni di configurazione che hai specificato. Da lì, puoi aggiungere origini aggiuntive e più comportamenti della cache, se necessario.

CloudFront ti consente anche di creare pagine di errore personalizzate o modificare la durata delle risposte di errore nella cache selezionando Crea risposta di errore personalizzata. È possibile adattare queste impostazioni per ogni codice di errore HTTP. Supponiamo che tu voglia riprovare per ogni 403, puoi specificare un TTL minimo di 0 secondi. Per impostazione predefinita, CloudFront memorizza tutto nella cache per 300 secondi per alleggerire parte del carico sull'origine. Se lo desideri, puoi anche creare risposte di errore personalizzate per ogni codice di errore.

Nella scheda Restrizioni puoi abilitare restrizioni geografiche per consentire o impedire agli spettatori in luoghi specifici di vedere i tuoi contenuti. La scheda Annullamenti ti consentirà di rimuovere oggetti personalizzati dalle cache edge di CloudFront. Infine, puoi utilizzare la scheda Tag per applicare tag personalizzati che ti aiuteranno a organizzare e identificare le tue distribuzioni.

Una volta completato, copia il dominio e incollalo nel browser per vedere la tua distribuzione in azione. Puoi anche imparare a distribuire i contenuti dinamici della tua applicazione utilizzando CloudFront con un'istanza del server Web Amazon EC2.

Modello di Amazon CloudFormation per aiutarti a iniziare a usare CloudFront

Il modello di Amazon CloudFormation ti aiuterà anche a iniziare a usare CloudFront. Questo modello avvierà un bucket S3 per archiviare i file statici su larga scala, quindi distribuirà tali contenuti agli utenti tramite il CDN CloudFront.

Per ulteriori informazioni, leggi il post sul blog intitolato Amazon S3 + Amazon CloudFront: A Match Made in the Cloud e scarica il modello di CloudFormation.

Risorse aggiuntive sulla distribuzione di contenuti con CloudFront

Trova altre risorse per Amazon CloudFront

Visita la pagina delle risorse
Tutto pronto per cominciare?
Inizia a usare gratuitamente Amazon CloudFront
Hai altre domande?
Contattaci