Cloud CDN (Content Delivery Network) utilizza la rete perimetrale globale di Google per distribuire i contenuti nelle aree più vicine agli utenti al fine di velocizzare i siti web e le applicazioni.
Cloud CDN funziona con il bilanciatore del carico delle applicazioni esterno globale o con il bilanciatore del carico delle applicazioni classico per fornire contenuti agli utenti. L'Application Load Balancer esterno fornisce le porte e gli indirizzi IP frontend che ricevono le richieste e i backend che rispondono alle richieste.
I contenuti di Cloud CDN possono essere ricavati da diversi tipi di backend.
In Cloud CDN, questi backend sono chiamati anche server di origine. La Figura 1 mostra come le risposte dei server di origine in esecuzione su istanze di macchine virtuali (VM) passino attraverso un bilanciatore del carico delle applicazioni esterno prima di essere pubblicate da Cloud CDN. In questa situazione, il Google Front End (GFE) comprende Cloud CDN e il bilanciatore del carico delle applicazioni esterno.
Come funziona Cloud CDN
Quando un utente richiede contenuti da un bilanciatore del carico delle applicazioni esterno, la richiesta arriva a un GFE che si trova all'estremità della rete di Google, il più vicino possibile all'utente.
Se la mappa URL del bilanciatore del carico instrada il traffico a un servizio di backend o a un bucket di backend in cui è configurata Cloud CDN, il GFE utilizza Cloud CDN.
Hit e mancate hit della cache
Una cache è un gruppo di server che memorizza e gestisce i contenuti in modo che le richieste future relative a questi contenuti possano essere soddisfatte più rapidamente. I contenuti memorizzati nella cache sono una copia dei contenuti cacheabili memorizzati sui server di origine.
Se il GFE cerca nella cache di Cloud CDN e trova una risposta memorizzata nella cache alla richiesta dell'utente, la invia all'utente. Questo viene chiamato successo della cache. Quando si verifica una successo della cache, il GFE cerca i contenuti tramite la chiave della cache e risponde direttamente all'utente, abbreviando il tempo di round trip e evitando al server di origine di dover elaborare la richiesta.
Un hit parziale si verifica quando una richiesta viene pubblicata parzialmente dalla cache e parzialmente da un backend. Questo può accadere se solo parte dei contenuti richiesti è memorizzata in una cache Cloud CDN, come descritto in Supporto per le richieste di intervallo di byte.
La prima volta che viene richiesto un contenuto, il GFE determina che non può soddisfare la richiesta dalla cache. In questo caso si parla di mancata corrispondenza della cache. Quando si verifica una fallimento della cache, il GFE inoltra la richiesta all'Application Load Balancer esterno. Il bilanciatore del carico inoltra quindi la richiesta a uno dei tuoi server di origine. Quando la cache riceve i contenuti, il GFE li inoltra all'utente.
Se la risposta del server di origine a questa richiesta è memorizzabile nella cache, Cloud CDN la memorizza nella cache di Cloud CDN per le richieste future. Il trasferimento di dati da una cache a un client è chiamato cache in uscita. Il trasferimento di dati in una cache è chiamato riempimento della cache.
La Figura 2 mostra un hit e un fallimento della cache:
- I server di origine in esecuzione sulle istanze VM inviano risposte HTTP(S).
- Il bilanciatore del carico delle applicazioni esterno distribuisce le risposte a Cloud CDN.
- Cloud CDN invia le risposte agli utenti finali.
Per i costi relativi a hit e mancate hit della cache, consulta Prezzi.
Percentuale successi cache
La percentuale di hit della cache è la percentuale di volte in cui un oggetto richiesto viene fornito dalla cache. Se il percentuale successi cache è del 60%, significa che l'oggetto richiesto viene pubblicato dalla cache il 60% delle volte e deve essere recuperato dall'origine il 40% delle volte.
Per informazioni su come le chiavi di cache possono influire sulla percentuale successi cache, consulta Utilizzare le chiavi di cache. Per informazioni sulla risoluzione dei problemi, consulta Il rapporto di hit della cache è basso.
Visualizzare la percentuale successi cache per un breve periodo di tempo
Per visualizzare il percentuale successi cache per un breve periodo di tempo (gli ultimi minuti):
Nella console Google Cloud, vai alla pagina Cloud CDN.
Per ogni origine, consulta la colonna Rapporto di hit della cache.
n/a indica che i contenuti con bilanciamento del carico non sono attualmente memorizzati nella cache o non sono stati richiesti di recente.
Visualizzare la percentuale successi cache per un periodo di tempo più lungo
Per visualizzare il percentuale successi cache per un periodo di tempo compreso tra 1 ora e 30 giorni:
- Nella console Google Cloud, vai alla pagina Cloud CDN.
- Nella colonna Nome origine, fai clic sul nome dell'origine.
- Fai clic sulla scheda Monitoraggio.
- (Facoltativo) Seleziona un backend specifico.
La percentuale di hit CDN è uno dei grafici di monitoraggio disponibili. Se un grafico mostra n/a, significa che i contenuti non sono memorizzati nella cache o non sono stati richiesti nell'intervallo di tempo visualizzato.
Puoi modificare il periodo di tempo selezionando un intervallo di tempo diverso. L'immagine seguente è un esempio di intervalli di tempo che puoi selezionare:
Inserimento di contenuti nella cache
La memorizzazione nella cache è reattiva in quanto un oggetto viene archiviato in una determinata cache se una richiesta passa attraverso quella cache e se la risposta è memorizzabile nella cache. Un oggetto memorizzato in una cache non viene replicato automaticamente in altre cache; il riempimento della cache avviene solo in risposta a una richiesta avviata dal client. Non puoi precaricare le cache se non facendo in modo che le singole cache rispondano alle richieste.
Quando il server di origine supporta le richieste con intervallo di byte, Cloud CDN può avviare più richieste di riempimento della cache in risposta a una singola richiesta del client.
Pubblicazione di contenuti da una cache
Dopo aver attivato Cloud CDN, la memorizzazione nella cache avviene automaticamente per tutti i contenuti memorizzabili nella cache. Il server di origine utilizza le intestazioni HTTP per indicare quali risposte vengono memorizzate nella cache. Puoi anche controllare la memorizzazione nella cache utilizzando le modalità cache.
Quando utilizzi un bucket di backend, il server di origine è Cloud Storage. Quando utilizzi istanze VM, il server di origine è il software del server web che esegui su queste istanze.
Cloud CDN utilizza cache in numerose località in tutto il mondo. Data la natura delle cache, è impossibile prevedere se una determinata richiesta viene pubblicata da una cache. Tuttavia, puoi aspettarti che le richieste popolari per contenuti memorizzabili nella cache vengano pubblicate da una cache la maggior parte del tempo, con una riduzione significativa delle latenze, dei costi e del carico sui server di origine.
Per ulteriori informazioni su cosa memorizza Cloud CDN e per quanto tempo, consulta la Panoramica della memorizzazione nella cache.
Per vedere cosa Cloud CDN pubblica da una cache, puoi visualizzare i log.
Rimuovere i contenuti dalla cache
Per rimuovere un elemento da una cache, puoi annullare la convalida dei contenuti inseriti nella cache. Per ulteriori informazioni, consulta:
- Panoramica dell'annullamento convalida della cache
- Annullamento convalida dei contenuti inseriti nella cache
Bypass della cache
Per bypassare Cloud CDN, puoi richiedere un oggetto direttamente da un bucket Cloud Storage o da una VM Compute Engine. Ad esempio, un URL per un oggetto bucket Cloud Storage ha il seguente aspetto:
https://storage.googleapis.com/STORAGE_BUCKET/FILENAME
Eliminazione e scadenza
Affinché i contenuti vengano pubblicati da una cache, devono essere stati inseriti nella cache, non devono essere eliminati e non devono essere scaduti.
Rimossione ed scadenza sono due concetti diversi. Entrambi influiscono su ciò che viene pubblicato, ma non si influenzano direttamente a vicenda.
Sfratto
Se stai testando la memorizzazione nella cache dei contenuti con un numero ridotto di richieste, potresti notare che i contenuti vengono espulsi.
Ogni cache ha un limite di spazio. Tuttavia, Cloud CDN aggiunge contenuti alle cache anche quando sono piene. Per inserire contenuti in una cache completa, la cache rimuove prima qualcos'altro per fare spazio. Questo processo è chiamato espulsione. Le cache sono solitamente piene, quindi espellono costantemente i contenuti. Generalmente, eliminano i contenuti a cui non è stato eseguito l'accesso di recente, indipendentemente dalla data di scadenza. I contenuti espulsi potrebbero essere scaduti o meno. L'impostazione di una scadenza non influisce sull'espulsione.
Per contenuti non popolari si intendono i contenuti a cui non è stato eseguito l'accesso da un po' di tempo. Da un po' di tempo e Non popolare si riferiscono entrambi alla maggior parte degli altri elementi nella cache. Più progetti Google Cloud condividono un pool comune di spazio della cache perché i progetti vengono pubblicati dallo stesso insieme di GFE. La popolarità relativa dei contenuti viene confrontata in più progetti, non solo in un singolo progetto.
Man mano che le cache ricevono più traffico, vengono eliminati anche più contenuti memorizzati nella cache.
Come per tutte le cache di grandi dimensioni, i contenuti possono essere eliminati in modo imprevedibile, pertanto non è garantito che una determinata richiesta venga soddisfatta dalla cache.
Scadenza
I contenuti nelle cache HTTP(S) possono avere una data di scadenza configurabile. La data e l'ora di scadenza indicano alla cache di non pubblicare i contenuti precedenti, anche se non sono stati eliminati.
Ad esempio, prendi in considerazione un URL di una foto dell'ora. Le risposte devono essere impostate per scadere entro un'ora. In caso contrario, i contenuti pubblicati potrebbero essere un'immagine vecchia di una cache.
Per informazioni sulla regolazione fine dei tempi di scadenza, consulta Utilizzare le impostazioni e gli override TTL.
Richieste avviate da Cloud CDN
Quando il server di origine supporta le richieste con intervallo di byte, Cloud CDN può inviare più richieste al server di origine in risposta a una singola richiesta del client. Come descritto in Supporto per le richieste con intervallo di byte, Cloud CDN può avviare due tipi di richieste: richieste di convalida e richieste con intervallo di byte.
Impostazioni della posizione dei dati di altri servizi della piattaforma Cloud
L'utilizzo di Cloud CDN comporta che i dati potrebbero essere archiviati in località di pubblicazione al di fuori della regione o della zona del server di origine. Questo è normale e rappresenta il funzionamento della memorizzazione nella cache HTTP su internet. Ai sensi dei Termini specifici dei servizi dei Termini di servizio della Google Cloud Platform, l'impostazione della località dei dati disponibile per determinati servizi della piattaforma Cloud non si applica ai dati dei clienti principali per il rispettivo servizio della piattaforma Cloud se utilizzato con altri prodotti e servizi Google (in questo caso il servizio Cloud CDN). Se non vuoi questo risultato, non utilizzare il servizio Cloud CDN.
Supporto per i certificati SSL gestiti da Google
Puoi utilizzare certificati gestiti da Google quando Cloud CDN è attivato.
Google Cloud Armor con Cloud CDN
Google Cloud Armor con Cloud CDN offre due tipi di criteri di sicurezza:
- Criteri di sicurezza perimetrale. Questi criteri possono essere applicati ai server di origine abilitati per Cloud CDN. Si applicano a tutto il traffico, prima della ricerca CDN.
- Criteri di sicurezza del backend. Questi criteri vengono applicati solo alle richieste di contenuti dinamici, ai fallimenti della cache o ad altre richieste destinate al tuo server di origine.
Per ulteriori informazioni, consulta la documentazione di Google Cloud Armor.
Passaggi successivi
- Per attivare Cloud CDN per le istanze con bilanciamento del carico HTTP(S) e per i bucket di archiviazione, consulta Utilizzare Cloud CDN.
- Per utilizzare Cloud CDN con Google Kubernetes Engine, consulta Configurare Cloud CDN tramite Ingress.
- Per trovare i punti di presenza GFE, consulta Località delle cache.