Utilizzo di origini diverse con distribuzioni CloudFront - Amazon CloudFront

Utilizzo di origini diverse con distribuzioni CloudFront

Alla creazione di una distribuzione, è necessario specificare l'origine dove CloudFront deve inviare le richieste per il file. Puoi utilizzare diversi tipi di origini con CloudFront. Ad esempio, puoi utilizzare un bucket Amazon S3, un container MediaStore, un canale MediaPackage, un Application Load Balancer o un URL della funzione AWS Lambda. Quando crei una distribuzione CloudFront, la maggior parte delle impostazioni di distribuzione viene configurata automaticamente in base al tipo di origine dei contenuti. Per ulteriori informazioni, consulta Riferimento alle impostazioni di distribuzione preconfigurate.

Se disponi di un’istanza Application Load Balancer, Network Load Balancer o EC2 in una sottorete privata, puoi usarla come origine VPC. Con VPC Origins, è possibile accedere alle applicazioni solo in una sottorete privata con una distribuzione CloudFront, il che impedisce che l’applicazione sia accessibile sulla rete Internet pubblica. Per ulteriori informazioni, consulta Limitazione dell’accesso con VPC Origins.

Nota

Puoi utilizzare le funzioni edge per selezionare dinamicamente l’origine appropriata per ogni richiesta. Utilizzando Funzioni CloudFront o Lambda@Edge, puoi instradare le richieste a origini diverse in base a fattori quali la posizione geografica del visualizzatore, le intestazioni della richiesta o i parametri della stringa di query. Per ulteriori informazioni, consulta Personalizzazione a livello di edge con le funzioni.

Utilizzo di bucket Amazon S3

Gli argomenti seguenti descrivono i diversi modi in cui è possibile utilizzare un bucket Amazon S3 come origine di una distribuzione CloudFront.

Utilizzo di un bucket Amazon S3 standard

Quando utilizzi Amazon S3 come origine per la tua distribuzione, inserisci tutti gli oggetti che desideri che CloudFront consegni in un bucket Amazon S3. Puoi utilizzare qualsiasi metodo supportato da Amazon S3 per inserire gli oggetti in Amazon S3. Ad esempio, puoi utilizzare la console di Amazon S3 o l'API o uno strumento di terze parti. Puoi creare una gerarchia nel bucket per archiviare gli oggetti, esattamente come per qualsiasi altro bucket Amazon S3 standard.

L'utilizzo di un bucket Amazon S3 esistente come server di origine di CloudFront non modifica il bucket in alcun modo; puoi continuare a utilizzarlo come faresti normalmente per archiviare oggetti di Amazon S3 e accedervi al prezzo Amazon S3 standard. L'archiviazione di oggetti nel bucket è soggetta ai costi abituali di Amazon S3. Per ulteriori informazioni sugli addebiti per utilizzare CloudFront, vedere Prezzi di Amazon CloudFront. Per ulteriori informazioni sull'utilizzo di CloudFront con un bucket S3 esistente, consulta Aggiunta di CloudFront a un bucket Amazon S3 esistente.

Importante

Per garantire il corretto funzionamento del bucket con CloudFront, il nome deve essere conforme ai requisiti di denominazione DNS. Per ulteriori informazioni, consulta Regole per la denominazione dei bucket nella Guida per l'utente di Amazon Simple Storage Service.

Quando specifichi un bucket Amazon S3 come origine per CloudFront, è consigliabile utilizzare il formato seguente:

bucket-name.s3.region.amazonaws.com

Quando specifichi il nome di bucket in questo formato, puoi utilizzare le seguenti caratteristiche di CloudFront:

Non specificare il bucket utilizzando i seguenti formati:

  • Lo stile del percorso Amazon S3: s3.amazonaws.com/bucket-name

  • Il CNAME di Amazon S3

Nota

CloudFront supporta origini S3 che utilizzano qualsiasi classe di archiviazione, incluso Piano intelligente S3. Quando CloudFront richiede oggetti da un’origine S3, gli oggetti vengono recuperati indipendentemente dal livello di archiviazione in cui si trovano attualmente. L’utilizzo di CloudFront con Piano intelligente S3 non influisce sulle prestazioni o le funzionalità della distribuzione. Per ulteriori informazioni, consulta Gestione dei costi di archiviazione con Piano intelligente Amazon S3 nella Guida per l’utente di Amazon Simple Storage Service.

Utilizzo di Lambda per oggetti Amazon S3

Quando crei un punto di accesso Lambda per oggetti, Amazon S3 genera automaticamente un alias univoco per il tuo punto di accesso Lambda per oggetti. Puoi utilizzare questo alias anziché un nome del bucket Amazon S3 come un’origine della distribuzione CloudFront.

Quando utilizzi un alias del punto di accesso Lambda per oggetti come un’origine per CloudFront, è consigliabile utilizzare il formato seguente:

alias.s3.region.amazonaws.com

Per ulteriori informazioni sull’esito di alias, consultare Come utilizzare un’alias stile bucket per il punto di accesso Lambda per oggetti del bucket S3 nella Guida per l’utente di Amazon S3.

Importante

Quando si utilizza un Punto di accesso Lambda per oggetti come un’origine per CloudFront, è necessario utilizzare controllo di accesso origine.

Per un caso d'uso di esempio, consultare Use Amazon S3 Object Lambda with Amazon CloudFront to Tailor Content for End Users.

CloudFront considera un'origine del punto di accesso Lambada per oggetti identica a un’origine bucket Amazon S3 standard.

Se utilizzi Lambda per oggetti Amazon S3 come origine per la distribuzione, devi configurare le seguenti quattro autorizzazioni.

Object Lambda Access Point
Come aggiungere le autorizzazioni per il punto di accesso Lambda per oggetti
  1. Accedere a Console di gestione AWS e aprire la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione, scegli Punti di accesso Lambda dell'oggetto.

  3. Scegli il punto di accesso Lambda per oggetti che desideri utilizzare.

  4. Scegli la scheda Autorizzazioni.

  5. Scegli Modifica nella sezione Policy del punto di accesso per le espressioni Lambda dell'oggetto.

  6. Incolla la seguente policy nel campo Policy.

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3-object-lambda:Get*", "Resource": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/Object-Lambda-Access-Point-name", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::123456789012:distribution/CloudFront-distribution-ID" } } } ] }
  7. Scegli Save changes (Salva modifiche).

Amazon S3 Access Point
Come aggiungere autorizzazioni per il punto di accesso Amazon S3
  1. Accedere a Console di gestione AWS e aprire la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione, scegli Punti di accesso.

  3. Scegli il Punto di accesso Amazon S3 che desideri utilizzare.

  4. Scegli la scheda Autorizzazioni.

  5. Scegli Modifica nella sezione Policy del punto di accesso.

  6. Incolla la seguente policy nel campo Policy.

    JSON
    JSON
    { "Version":"2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name", "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name/object/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "s3-object-lambda.amazonaws.com" } } } ] }
  7. Selezionare Salva.

Amazon S3 bucket
Come aggiungere autorizzazioni al bucket Amazon S3
  1. Accedere a Console di gestione AWS e aprire la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione, scegli Bucket.

  3. Scegli il bucket Amazon S3 che desideri utilizzare.

  4. Scegli la scheda Autorizzazioni.

  5. Scegli Modifica nella sezione Policy bucket.

  6. Incolla la seguente policy nel campo Policy.

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. Scegli Save changes (Salva modifiche).

AWS Lambda function
Come aggiungere autorizzazioni alla funzione Lambda
  1. Accedere alla Console di gestione AWS e aprire la console di AWS Lambda all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Nel riquadro di navigazione, seleziona Funzioni.

  3. Scegli la funzione AWS Lambda che desideri utilizzare.

  4. Scegli la scheda Configurazione, quindi Autorizzazioni.

  5. Scegli Aggiungi autorizzazioni nella sezione Istruzioni di policy basate su risorse.

  6. Scegli Account AWS.

  7. Inserisci un nome per ID istruzione.

  8. Inserisci cloudfront.amazonaws.com per Principale.

  9. Scegli lambda:InvokeFunction dal menu a discesa Operazione.

  10. Selezionare Salva.

Utilizzo di punti di accesso Amazon S3

Quando utilizzi un punto di accesso S3, Amazon S3 genera automaticamente un alias univoco. Puoi utilizzare questo alias anziché un nome del bucket Amazon S3 come un’origine della distribuzione CloudFront.

Quando utilizzi un alias Punto di accesso Amazon S3 per oggetti come un’origine per CloudFront, ti consigliamo di utilizzare il formato seguente:

alias.s3.region.amazonaws.com

Per ulteriori informazioni sulla ricerca dell’alias, consulta Utilizzo di un alias di tipo bucket per il punto di accesso al bucket S3 nella Guida per l’utente di Amazon S3.

Importante

Quando utilizzi un Punto di accesso Amazon S3 come un’origine per CloudFront, devi utilizzare il controllo degli accessi di origine.

CloudFront considera un’origine del Punto di accesso Amazon S3 identica a un’origine del bucket Amazon S3 standard.

Se utilizzi Lambda per oggetti Amazon S3 come origine per la distribuzione, devi configurare le seguenti due autorizzazioni.

Amazon S3 Access Point
Come aggiungere autorizzazioni per il Punto di accesso Amazon S3
  1. Accedere a Console di gestione AWS e aprire la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione, scegli Punti di accesso.

  3. Scegli il Punto di accesso Amazon S3 che desideri utilizzare.

  4. Scegli la scheda Autorizzazioni.

  5. Scegli Modifica nella sezione Policy del punto di accesso.

  6. Incolla la seguente policy nel campo Policy.

    JSON
    JSON
    { "Version":"2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": {"Service": "cloudfront.amazonaws.com"}, "Action": "s3:*", "Resource": [ "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name", "arn:aws:s3:us-east-1:123456789012:accesspoint/Access-Point-name/object/*" ], "Condition": { "StringEquals": {"aws:SourceArn": "arn:aws:cloudfront::123456789012:distribution/CloudFront-distribution-ID"} } } ] }
  7. Selezionare Salva.

Amazon S3 bucket
Come aggiungere autorizzazioni al bucket Amazon S3
  1. Accedere a Console di gestione AWS e aprire la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione, scegli Bucket.

  3. Scegli il bucket Amazon S3 che desideri utilizzare.

  4. Scegli la scheda Autorizzazioni.

  5. Scegli Modifica nella sezione Policy bucket.

  6. Incolla la seguente policy nel campo Policy.

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. Scegli Save changes (Salva modifiche).

Utilizzo di un bucket Amazon S3 configurato come un endpoint del sito web

È possibile sare un bucket Amazon S3 configurato come endpoint di siti Web quale origine personalizzata con CloudFront. Quando si configura la distribuzione CloudFront, per l'origine, immettere l'endpoint di hosting del sito Web statico Amazon S3 per il bucket. Tale valore viene visualizzato nella console di Amazon S3, nella pagina Properties (Proprietà) nel pannello Static Website Hosting (Hosting sito Web statico). Ad esempio:

http://bucket-name.s3-website-region.amazonaws.com

Per ulteriori informazioni sulla specifica degli endpoint statici di siti Web Amazon S3, consulta Endpoint dei siti Web nella Guida per l'utente di Amazon Simple Storage Service.

Quando specifichi il nome di bucket in questo formato come origine, puoi utilizzare reindirizzamenti di Amazon S3 e documenti di errore personalizzati di Amazon S3. Per ulteriori informazioni, consulta Configurazione di un documento di errore personalizzato e Configurazione di un reindirizzamento nella Guida per gli utenti di Amazon Simple Storage Service. (CloudFront fornisce anche pagine di errore personalizzate. Per ulteriori informazioni, consulta ). Creazione di una pagina di errore personalizzata per codici di stato HTTP specifici.)

L'utilizzo di un bucket Amazon S3 come server di origine CloudFront non lo modifica in alcun modo. È comunque possibile utilizzarlo come faresti normalmente, sulla base delle normali tariffe Amazon S3. Per ulteriori informazioni sugli addebiti per utilizzare CloudFront, vedere Prezzi di Amazon CloudFront.

Nota

Se si utilizza l'API CloudFront per creare la distribuzione con un bucket Amazon S3 configurato come endpoint del sito Web, è necessario configurarla utilizzando CustomOriginConfig, anche se il sito Web è ospitato in un bucket Amazon S3. Per ulteriori informazioni sulla creazione di distribuzioni utilizzando l'API CloudFront, vedere CreateDistribution nella Guida di riferimento API di Amazon CloudFront.

Aggiunta di CloudFront a un bucket Amazon S3 esistente

Se archivi i tuoi oggetti in un bucket Amazon S3, puoi fare in modo che i tuoi utenti ricevano gli oggetti direttamente da S3 o puoi configurare CloudFront per ricevere gli oggetti da S3 e quindi distribuirli ai tuoi utenti. Utilizzando CloudFront può essere più conveniente se gli utenti accedono ai tuoi oggetti di frequente perché, con utilizzi più elevati, il prezzo per il trasferimento di dati di CloudFront è inferiore rispetto al prezzo del trasferimento di dati di Amazon S3. Inoltre, i download sono più rapidi con CloudFront che con Amazon S3, poiché i tuoi oggetti vengono archiviati più vicino ai tuoi utenti.

Nota

Se vuoi che CloudFront rispetti le impostazioni di condivisione delle risorse tra origini di Amazon S3, configura CloudFront per inoltrare l'intestazione Origin ad Amazon S3. Per ulteriori informazioni, consulta Caching dei contenuti in base alle intestazioni di richiesta.

Se al momento distribuisci contenuti direttamente dal bucket Amazon S3 utilizzando il nome di dominio (come example.com) anziché il nome di dominio del bucket Amazon S3 (ad esempio amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com), puoi aggiungere CloudFront senza interruzioni utilizzando la procedura seguente.

Per aggiungere CloudFront quando distribuisci già i tuoi contenuti da Amazon S3
  1. Crea una distribuzione per CloudFront. Per ulteriori informazioni, consulta Creazione di una distribuzione.

    Quando crei la distribuzione, specifica il nome del tuo bucket Amazon S3 come server di origine.

    Importante

    Per garantire il corretto funzionamento del bucket con CloudFront, il nome deve essere conforme ai requisiti di denominazione DNS. Per ulteriori informazioni, consulta Regole per la denominazione dei bucket nella Guida per l'utente di Amazon Simple Storage Service.

    Se usi un CNAME con Amazon S3, specifica anche il CNAME per la tua distribuzione.

  2. Crea una pagina Web di test che contenga i link agli oggetti leggibili pubblicamente nel bucket Amazon S3 ed esegui il test dei collegamenti. Per questo test iniziale, utilizza il nome di dominio CloudFront della tua distribuzione negli URL degli oggetti, ad esempi, https://d111111abcdef8.cloudfront.net/images/image.jpg.

    Per ulteriori informazioni sul formato degli URL CloudFront, consulta Personalizzazione del formato URL per i file in CloudFront.

  3. Se utilizzi CNAME Amazon S3, l’applicazione usa il nome di dominio (ad esempio example.com) per fare riferimento agli oggetti nel bucket Amazon S3 anziché utilizzare il nome del bucket (per esempio, amzn-s3-demo-bucket.s3.amazonaws.com). Per continuare a utilizzare il tuo nome di dominio per fare riferimento agli oggetti anziché utilizzare il nome di dominio CloudFront per la tua distribuzione (ad esempio d111111abcdef8.cloudfront.net), è necessario aggiornare le tue impostazioni con il tuo fornitore di servizi DNS.

    Per consentire ai CNAME S3 di funzionare, il tuo fornitore di servizi DNS deve avere un set di record di risorse CNAME per il tuo dominio che attualmente instrada le query per il dominio al tuo bucket Amazon S3. Ad esempio, se un utente richiede questo oggetto:

    https://example.com/images/image.jpg

    La richiesta viene automaticamente reindirizzata e l'utente vede questo oggetto:

    https://amzn-s3-demo-bucket.s3.amazonaws.com/images/image.jpg

    Per instradare le query alla tua distribuzione CloudFront anziché al tuo bucket Amazon S3, devi utilizzare il metodo fornito dal fornitore di servizi DNS per aggiornare il set di record di risorse CNAME del tuo dominio. Questo record CNAME aggiornato inizia a reindirizzare le query DNS dal tuo dominio al nome di dominio CloudFront per la distribuzione. Per ulteriori informazioni, consulta la documentazione del tuo fornitore di servizi DNS.

    Nota

    Se usi Route 53 come servizio DNS, puoi utilizzare un set di record di risorse CNAME o un set di record di risorse alias. Per informazioni sulla modifica dei set di record di risorse, consulta Modifica dei set di record. Per informazioni sui set di record di risorse alias, consulta Scelta tra record alias e non alias. Entrambi gli argomenti sono riportati nella Guida per gli sviluppatori di Amazon Route 53.

    Per ulteriori informazioni sull'uso di CNAME con CloudFront, consulta Utilizzo di URL personalizzati aggiungendo nomi di dominio alternativi (CNAME).

    Dopo aver aggiornato il set di record di risorse CNAME, possono essere necessarie fino a 72 ore affinché la modifica si propaghi per tutto il sistema DNS, anche se in genere i tempi sono più rapidi. Durante tale periodo, alcune richieste per i tuoi contenuti continueranno a essere indirizzate al tuo bucket Amazon S3, mentre altre saranno indirizzate a CloudFront.

Spostamento di un bucket Amazon S3 in una Regione AWS differente

Se usi Amazon S3 come origine per una distribuzione CloudFront e sposti il bucket a un'altra Regione AWS, CloudFront può impiegare fino a un'ora per aggiornare i propri record e usare la nuova regione quando si verificano entrambe le condizioni seguenti:

  • Stai utilizzando l'identità di accesso origine (OAI) CloudFront per limitare l'accesso al bucket

  • Puoi spostare il bucket a una regione Amazon S3 che richiede Signature Version 4 per l'autenticazione

Quando usi OAIs, CloudFront utilizza la regione (insieme ad altri valori) per calcolare la firma utilizzata per la richiesta di oggetti dal tuo bucket. Per ulteriori informazioni su OAI, consulta Utilizzo di un’identità di accesso origine (legacy, non consigliata). Per un elenco di Regioni AWS che supportano Signature Version 2, consulta Processo di firma di Signature Version 2 nei Riferimenti generali di Amazon Web Services.

Per forzare un aggiornamento più rapido per i record CloudFront, puoi aggiornare la tua distribuzione CloudFront, aggiornando, ad esempio, il campo escrizione nella scheda Generale della console CloudFront. Quando aggiorni una distribuzione, CloudFront controlla immediatamente la regione in cui si trova il bucket. La propagazione della modifica a tutte le posizioni edge dovrebbe richiedere solo pochi minuti.

Utilizzo di un container MediaStore o di un canale MediaPackage

Per riprodurre video in streaming utilizzando CloudFront, puoi configurare un bucket Amazon S3 configurato come container MediaStore o creare un canale ed endpoint con MediaPackage. Quindi è possibile creare e configurare una distribuzione in CloudFront per lo streaming del video.

Per ulteriori informazioni e istruzioni dettagliate, consulta i seguenti argomenti:

Utilizzo di un Application Load Balancer

Puoi utilizzare CloudFront per instradare il traffico sia verso Application Load Balancer interni che verso quelli connessi a Internet.

Se l’origine è uno o più server HTTP(S) (server web) ospitati su una o più istanze Amazon EC2, puoi utilizzare Application Load Balancer connesso a Internet per distribuire il traffico alle istanze. Un bilanciatore del carico connesso a Internet ha un nome DNS risolvibile pubblicamente e instrada le richieste dei client verso le destinazioni su Internet.

Per ulteriori informazioni sull’utilizzo di un Application Load Balancer connesso a Internet come origine per CloudFront, incluso come assicurarsi che i visualizzatori possano accedere ai server web solo tramite CloudFront e non accedendo direttamente al bilanciatore del carico, consulta Limitazione dell’accesso ad Application Load Balancer.

In alternativa, puoi utilizzare VPC Origins per distribuire contenuti da applicazioni ospitate con un Application Load Balancer interno nelle sottoreti private del cloud privato virtuale (VPC). VPC Origins impedisce che la applicazione sia accessibile sulla rete Internet pubblica. Per ulteriori informazioni, consulta Limitazione dell’accesso con VPC Origins.

Utilizzo di un Network Load Balancer

Puoi utilizzare sia i Network Load Balancer interni che quelli connessi a Internet con Amazon CloudFront. Puoi utilizzare Network Load Balancer interni all’interno di sottoreti private con CloudFront utilizzando VPC Origins. VPC Origins di CloudFront consente di fornire contenuti da applicazioni ospitate in sottoreti VPC private senza esporle alla rete Internet pubblica. Per ulteriori informazioni, consulta Limitazione dell’accesso con VPC Origins.

In alternativa, puoi utilizzare CloudFront anche per distribuire traffico da Network Load Balancer connessi a Internet. Un bilanciatore del carico connesso a Internet ha un nome DNS risolvibile pubblicamente e può ricevere richieste sia dai client su Internet che dalle distribuzioni CloudFront.

Utilizzo dell’URL di una funzione Lambda

L’URL di una funzione Lambda è un endpoint HTTPS dedicato per una funzione Lambda. Puoi utilizzare l’URL di una funzione Lambda per creare un’applicazione web serverless interamente all’interno di Lambda. È possibile richiamare l'applicazione Web Lambda direttamente tramite l'URL della funzione, senza necessità di integrarsi con API Gateway o Application Load Balancer.

Se crei un’applicazione web serverless utilizzando le funzioni Lambda con funzioni URL, puoi aggiungere CloudFront per ottenere i seguenti vantaggi:

  • Accelera la tua applicazione inserendo nella cache i contenuti più vicini ai visualizzatori

  • Utilizza un nome di dominio personalizzati per l'applicazione Web

  • Instrada diversi percorsi URL a diverse funzioni Lambda utilizzando i comportamenti della cache CloudFront

  • Blocca richieste specifiche utilizzando restrizioni geografiche CloudFront o AWS WAF (o entrambi)

  • Utilizza AWS WAF con CloudFront per proteggere la tua applicazione da bot dannosi, prevenire gli exploit comuni delle applicazioni e migliorare la protezione dagli attacchi DDoS

Per utilizzare un URL della funzione Lambda come origine per una distribuzione CloudFront, specificare il nome di dominio completo dell'URL della funzione Lambda come dominio di origine. Un nome di dominio URL della funzione Lambda utilizza il formato seguente:

function-URL-ID.lambda-url.AWS-Region.on.aws

Quando utilizzi l’URL di una funzione Lambda come origine per una distribuzione CloudFront, la funzione URL deve essere accessibile pubblicamente. A tale scopo, usa una delle seguenti opzioni:

  • Se utilizzi il controllo di accesso origine (OAC), il parametro AuthType dell’URL della funzione Lambda deve utilizzare il valore AWS_IAM e consentire l’autorizzazione lambda:InvokeFunctionUrl in una policy basata sulle risorse. Per ulteriori informazioni sull’uso degli URL della funzione Lambda, consulta Limitazione dell’accesso all’origine dell’URL di una funzione AWS Lambda.

  • Se non utilizzi OAC, puoi impostare il parametro AuthType della funzione URL su NONE e consentire l’autorizzazione lambda:InvokeFunctionUrl in una policy basata su risorse.

Puoi anche aggiungere un’intestazione di origine personalizzata alle richieste inviate da CloudFront all’origine e scrivere il codice della funzione per restituire una risposta di errore se l’intestazione non è presente nella richiesta. Ciò consente di assicurarsi che gli utenti possano accedere all'applicazione Web solo tramite CloudFront, non utilizzando direttamente l'URL della funzione Lambda.

Per ulteriori informazioni sugli URL delle funzioni Lambda, consulta i seguenti argomenti nella Guida per gli sviluppatori di AWS Lambda:

Utilizzo di Amazon EC2 (o di un’altra origine personalizzata)

Puoi utilizzare sia le istanze EC2 interne che quelle connesse a Internet con Amazon CloudFront. Puoi utilizzare istanze EC2 interne all’interno di sottoreti private con CloudFront utilizzando VPC Origins. VPC Origins di CloudFront consente di fornire contenuti da applicazioni ospitate in sottoreti VPC private senza esporle alla rete Internet pubblica. Per ulteriori informazioni, consulta Limitazione dell’accesso con VPC Origins.

Un’origine personalizzata è un server web HTTP(S) con un nome DNS risolvibile pubblicamente che instrada le richieste dei client verso le destinazioni su Internet. Il server HTTP(S) può essere ospitato su AWS (ad esempio, un’istanza Amazon EC2) o ospitato altrove. Un'origine Amazon S3 configurata come endpoint di un sito Web è considerata anch'essa un'origine personalizzata. Per ulteriori informazioni, consulta Utilizzo di un bucket Amazon S3 configurato come un endpoint del sito web.

Quando utilizzi un'origine personalizzata costituita dal tuo server HTTP, specifichi il nome DNS del server, insieme alle porte HTTP e HTTPS e al protocollo che CloudFront deve utilizzare durante il recupero di oggetti dall'origine.

La maggior parte delle caratteristiche di CloudFront è supportata quando utilizzi un'origine personalizzata ad eccezione del contenuto privato. Sebbene sia possibile utilizzare un URL firmato per distribuire contenuto da un'origine personalizzata, per consentire a CloudFront di accedere all'origine personalizzata, l'origine deve rimanere pubblicamente accessibile. Per ulteriori informazioni, consulta Gestione di contenuti privati con URL e cookie firmati.

Segui queste linee guida per l'utilizzo di istanze Amazon EC2 e altre origini personalizzate con CloudFront.

  • Effettua l'hosting e distribuisci gli stessi contenuti su tutti i server di distribuzione di contenuti per la stessa origine CloudFront. Per ulteriori informazioni, consulta Origin Settings (Impostazioni di origine) nell'argomento Riferimento a tutte le impostazioni di distribuzione.

  • Registra le voci di intestazione X-Amz-Cf-Id su tutti i server in caso tu abbia bisogno di Supporto o di CloudFront per utilizzare questo valore per il debug.

  • Limita le richieste alle porte HTTP e HTTPS sulle quali la tua origine personalizzata è in ascolto.

  • Sincronizza gli orologi di tutti i server nella tua implementazione. Da notare che CloudFront impiega l'UTC per gli URL firmati e i cookie firmati, per i log di accesso e per i report. Inoltre, se si monitora l'attività di CloudFront utilizzando le metriche CloudWatch, si noti che CloudWatch utilizza anche UTC.

  • Utilizza server ridondanti per gestire gli errori.

  • Per ulteriori informazioni sull'utilizzo di un'origine personalizzata per servire contenuto privato, consulta Limitazione dell’accesso ai file su origini personalizzate.

  • Per informazioni sul comportamento di richieste e risposte e sui codici di stato HTTP supportati, consulta Comportamento di richieste e risposte.

Se utilizzi Amazon EC2 per le origini personalizzate, ti consigliamo di eseguire quanto segue:

  • Utilizza Immagine macchina Amazon che installa automaticamente il software per un server Web. Per ulteriori informazioni, consulta la documentazione di Amazon EC2.

  • Utilizza un load balancer Elastic Load Balancing per gestire il traffico tra più istanze di Amazon EC2 e isolare la tua applicazione dalle modifiche alle istanze di Amazon EC2. Ad esempio, se utilizzi un sistema di bilanciamento del carico, puoi aggiungere ed eliminare istanze di Amazon EC2; senza modificare la tua applicazione. Per ulteriori informazioni, consulta la Guida per l'utente di Elastic Load Balancing.

  • Quando crei la tua distribuzione CloudFront, specifica l'URL del sistema di bilanciamento del carico per il nome di dominio del server di origine. Per ulteriori informazioni, consulta Creazione di una distribuzione.

Utilizzo di gruppi di origine CloudFront

È possibile specificare un gruppo di origine per l'origine CloudFront se, ad esempio, desideri configurare il failover di origine per gli scenari quando è necessaria alta disponibilità. Utilizza il failover di origine per designare un origine primaria per CloudFront più una seconda origine alla quale passa CloudFront automaticamente quando l'origine primaria restituisce specifiche risposte negative per il codice di stato HTTP.

Per ulteriori informazioni, inclusi i passaggi per la configurazione di un gruppo di origine, consulta Ottimizzazione dell’elevata disponibilità con il failover di origine CloudFront.

Utilizzo di Gateway Amazon API

Puoi utilizzare Gateway API come origine personalizzata per la distribuzione CloudFront. Per ulteriori informazioni, consulta i seguenti argomenti: