Questa pagina fornisce le best practice per ottimizzare e accelerare la pubblicazione dei contenuti con Cloud CDN. Le sezioni sono suddivise in diverse aree chiave.
Cloud CDN utilizza un Application Load Balancer esterno come origine dei contenuti memorizzabili nella cache. Un bilanciatore del carico delle applicazioni esterno può fornire agli utenti un mix di contenuti statici e dinamici creati tramite un unico indirizzo IP globale dai seguenti tipi di backend:
- Gruppi di istanze
- Gruppi di endpoint di rete a livello di zona (NEG)
- NEG serverless: uno o più servizi App Engine, Cloud Run o Cloud Functions
- NEG Internet per i backend esterni
- Bucket in Cloud Storage
Grazie all'integrazione perfetta con Google Cloud, hai a disposizione diverse opzioni per il deployment di Cloud CDN e la gestione dei contenuti. Utilizza le best practice elencate qui per pianificare e perfezionare il deployment. Per ulteriori informazioni, consulta Configurare Cloud CDN.
Ottimizzare il percentuale successi cache
Le seguenti pratiche consigliate consentono di ottimizzare il percentuale successi cache.
Memorizza contenuto statico nella cache
Come best practice per migliorare le prestazioni, quando abiliti Cloud CDN, devi scegliere la modalità cache corretta per la tua applicazione.
Il metodo più flessibile e generalmente preferito per gestire le regole cache è utilizzare l'intestazione di controllo cache. Se al momento non hai familiarità con l'utilizzo delle intestazioni per il controllo della cache dell'origine, il consiglio delle best practice è consentire a Cloud CDN di memorizzare automaticamente nella cache i contenuti statici.
Per memorizzare automaticamente nella cache le risposte statiche della tua origine, puoi utilizzare l'impostazione --cache-mode=CACHE_ALL_STATIC
(predefinita). Questa impostazione consente a Cloud CDN di memorizzare nella cache i tipi di contenuti statici comuni quando l'origine non specifica alcuna istruzione di memorizzazione nella cache nelle intestazioni della risposta. Assicurati che i tuoi contenuti corrispondano alle categorie descritte, altrimenti i contenuti non vengono memorizzati nella cache.
Non memorizzare nella cache contenuti specifici dell'utente
In alcuni casi, i browser possono memorizzare nella cache contenuti specifici dell'utente. Non utilizzare Cloud CDN per memorizzare nella cache contenuti specifici dell'utente.
Utilizzare chiavi cache personalizzate per migliorare percentuale successi cache
Per prestazioni e scalabilità, è importante ottimizzare il percentuale successi cache. Per impostazione predefinita, Cloud CDN utilizza l'URL della richiesta completo per creare la chiave cache. Per ottimizzare il rapporto di hit della cache, puoi utilizzare chiavi cache personalizzate in modo che Cloud CDN non esegua lo sharding inutilmente della cache.
Le chiavi cache personalizzate consentono di includere o omettere qualsiasi combinazione di protocollo, host e stringa di query. Di seguito sono riportati alcuni esempi di utilizzo delle chiavi cache personalizzate:
Hai due host che si risolvono nello stesso indirizzo IP e passano allo stesso servizio. In questo esempio, l'intero sito web è lo stesso sui due host. Per impostazione predefinita, Cloud CDN memorizza nella cache due copie a causa della diversa intestazione
Host:
nelle richieste HTTP. Con una chiave cache personalizzata, puoi fare in modo che Cloud CDN ignori la parte host della richiesta e condivida le voci della cache.In un esempio più specifico, potresti avere due siti web su domini diversi che utilizzano lo stesso logo. I contenuti del sito web sono diversi, ma utilizzi lo stesso logo aziendale su entrambi i domini e disponi di un servizio di backend dedicato che archivia i contenuti condivisi. Quando abiliti Cloud CDN e personalizzi le chiavi cache per il servizio di backend che contiene il logo, deseleziona la casella di controllo Host in modo che la cache ignori il dominio, ma memorizzi nella cache il logo.
Un logo deve essere memorizzato nella cache se visualizzato tramite HTTP o HTTPS. Quando personalizzi le chiavi cache per il servizio di backend contenente il logo, deseleziona la casella di controllo Protocollo in modo che le richieste tramite HTTP e HTTPS vengano conteggiate come corrispondenze per la voce della cache del logo.
Per scoprire come personalizzare le chiavi cache, consulta Utilizzo delle chiavi cache.
Ottimizzazione del rendimento
Le seguenti pratiche consigliate consentono di ottimizzare il rendimento.
Assicurati che il supporto dei protocolli HTTP/3 e QUIC sia abilitato
HTTP/3 è un protocollo internet di nuova generazione. Si basa su QUIC, un protocollo sviluppato a partire dal protocollo originale Google QUIC (gQUIC). HTTP/3 è supportato tra il bilanciatore del carico HTTP(S) esterno, Cloud CDN e i client.
Per aumentare le prestazioni con Cloud CDN, assicurati che HTTP/3 sia abilitato.
Utilizzo della memorizzazione negativa nella cache
La memorizzazione nella cache negativa offre un controllo granulare sulla memorizzazione nella cache per reindirizzamenti o errori comuni. Quando Cloud CDN rileva codici di risposta specifici, conserva la risposta nella cache per un TTL impostato. Ciò può ridurre il carico sulle origini e migliorare l'esperienza dell'utente finale riducendo la latenza di risposta.
Ottimizza la sicurezza
Le seguenti pratiche consigliate contribuiscono a ottimizzare la sicurezza.
Utilizza Google Cloud Armor
Google Cloud Armor si integra con Cloud CDN per i contenuti memorizzati nella cache e non memorizzati nella cache o mancanti. Consigliamo di utilizzare, ove possibile, Google Cloud Armor insieme a Cloud CDN per aumentare la sicurezza delle applicazioni web.
Utilizza URL firmati
Se utilizzi URL firmati, tieni presente quanto segue:
Mantieni i contenuti pubblici e privati in bucket Cloud Storage separati.
Segui le best practice per la sicurezza.
Autentica le origini private
L'autenticazione dell'origine offre una solida garanzia che la richiesta provenga solo dal tuo servizio di backend configurato. Offre inoltre la protezione dei dati in transito per la richiesta e protegge dal riutilizzo della parte firmata della richiesta.
Ti consigliamo di utilizzare l'autenticazione dell'origine privata per i bucket Amazon S3 o gli archivi di oggetti compatibili. L'autenticazione delle origini private contribuisce a garantire che solo le connessioni attendibili accedano ai contenuti sulle tue origini private e che gli utenti non vi accedano direttamente.
Inoltre, se i firewall di origine impediscono l'accesso all'origine, utilizza la lista consentita degli IP per assicurarti che una richiesta provenga da Cloud CDN o dall'Application Load Balancer esterno. Tuttavia, ciò non impedisce ad altri clienti di Media CDN di tentare di accedere ai tuoi contenuti specificando la tua origine nella loro configurazione.
Ottimizza la cache
Le seguenti pratiche consigliate consentono di ottimizzare la cache.
Ottimizza i TTL della cache
Puoi impostare o eseguire l'override dei TTL per ottimizzare per quanto tempo Cloud CDN memorizza nella cache le risposte e quando Cloud CDN riconvalida le tue risposte.
Puoi anche definire un TTL client per sfruttare al meglio le cache del browser.
Per ulteriori informazioni, consulta la sezione Utilizzo delle impostazioni e degli override TTL.
Impostare la scadenza dei contenuti per cui il fattore temporale è decisivo
A ogni contenuto della cache di Cloud CDN è associata una scadenza ed è importante impostare una scadenza appropriata per il tuo caso d'uso. Poiché i server di origine devono inviare nuovamente contenuti che scadono sui server di cache, devi scegliere con attenzione la scadenza.
Un metodo per scegliere la scadenza è classificare i contenuti in base alla frequenza con cui li aggiorni; ad esempio:
- Aggiornamenti quasi in tempo reale, ad esempio feed in diretta per eventi sportivi o traffico
- Aggiornamenti frequenti, ad esempio informazioni meteo settimanali, giornaliere o orarie o immagini di notizie in prima pagina
- Aggiornamenti poco frequenti, ad esempio il logo di un sito web, i file CSS o JavaScript
Successivamente, scegli la scadenza in base alla categoria di contenuti. Ad esempio, una scadenza di cinque secondi potrebbe essere appropriata per i risultati sportivi quasi in tempo reale e una scadenza di un'ora per gli aggiornamenti meteo. Per i contenuti archiviati in Cloud Storage, imposta la scadenza utilizzando i metadati Cache-Control
.
Quando i contenuti vengono pubblicati da Compute Engine, puoi controllare i tempi di scadenza configurando il software del server web.
Le tempistiche di scadenza sono specificate dai valori max-age
e s-maxage
nell'intestazione Cache-Control
. Questa intestazione è definita dalla specifica HTTP.
Ad esempio, la seguente intestazione Cache-Control
rende i contenuti associati
leggibili pubblicamente e memorizzabili nella cache con una scadenza di 72 ore
(259.200 secondi):
Cache-Control: public, max-age=259200
Per massimizzare la memorizzazione nella cache, segui le linee guida riportate nella Panoramica della memorizzazione nella cache. Ricorda che i valori max-age
e s-maxage
nel campo dei metadati Cache-Control
interagiscono nei seguenti
modi:
- I valori
max-age
es-maxage
vengono misurati in secondi. - Il valore
s-maxage
si applica solo alle cache condivise, non alle cache del browser. - Il valore
max-age
si applica a tutte le cache, a meno ches-maxage
non lo sostituisca.
Per i contenuti che cambiano di rado o che devono cambiare insieme ai contenuti correlati, spesso è opportuno utilizzare una scadenza lunga in combinazione con gli URL con versione.
Utilizzare gli URL con versione per aggiornare i contenuti
I contenuti con controllo delle versioni pubblicano una versione diversa degli stessi contenuti, rimuovendoli in modo efficace mostrando agli utenti i nuovi contenuti prima della scadenza della voce della cache. Poiché il controllo delle versioni è gratuito e facile da usare, consigliamo di utilizzare il controllo delle versioni come approccio predefinito per l'aggiornamento dei contenuti memorizzabili nella cache.
Per la versione dei contenuti, aggiungi un parametro all'URL, ad esempio un numero di versione. Esistono vari modi per includere i parametri negli URL, ad esempio:
Aggiungi una stringa di query:
file.ext?v=100
.Per i bucket di backend, tutte le stringhe di query utilizzate per il controllo delle versioni devono essere specificate nella configurazione del bucket di backend. Per ulteriori informazioni, consulta Inclusione dell'elenco di stringhe di query per le chiavi cache di Cloud Storage.
Modifica il nome del file:
file.1.0.0.ext
ofile_v100.ext
.Modifica il percorso del file:
/v100/file.ext
.
Quando aggiungi il parametro, modifichi il nome del file e l'URL. Questa modifica obbliga la cache a ignorare qualsiasi voce esistente.
Utilizzare l'annullamento della convalida con parsimonia per rimuovere i contenuti
Invalidation rimuove i contenuti dai server di cache distribuiti di Cloud CDN prima della scadenza della voce della cache. L'annullamento della convalida è coerente.
Ti consigliamo di utilizzare l'annullamento della validità con parsimonia e solo come ultima alternativa possibile. Ad esempio, l'annullamento della convalida è utile quando devi rimuovere contenuti per motivi legali o a causa di un caricamento accidentale. In caso contrario, ti consigliamo di utilizzare il controllo delle versioni quando possibile o di attendere la normale scadenza dei contenuti. I server cache di Cloud CDN rimuovono regolarmente contenuti a cui si accede raramente per fare spazio a nuovi contenuti. I contenuti a cui non si accede per 30 giorni vengono rimossi incondizionatamente.
Le invalidazioni della cache sono limitate.
Per scoprire di più sull'annullamento della convalida, consulta la panoramica dell'annullamento della convalida della cache.
Ottimizza il monitoraggio e il logging
Le seguenti pratiche consigliate aiutano a ottimizzare Monitoring e Logging.
Assicurati che il logging sia abilitato per Cloud CDN
Una best practice per la gestione di Cloud CDN consiste nell'assicurare che il logging sia abilitato per tutti i backend abilitati per Cloud CDN.
Usa la dashboard di monitoraggio personalizzata per Cloud CDN
Per garantire maggiori affidabilità e prestazioni, una best practice consiste nell'esaminare regolarmente le metriche di monitoraggio relative a Cloud CDN. Un ottimo punto di partenza è la dashboard di monitoraggio personalizzata di Cloud CDN.
Esaminare i test del rendimento di terze parti
Esamina i report di fornitori di terze parti, come i report su disponibilità, latenza e velocità effettiva forniti da Citrix Radar.