Utilizza Google Cloud Armor, il bilanciamento del carico e Cloud CDN per eseguire il deployment di front-end globali programmabili

Last reviewed 2025-04-02 UTC

Questo documento fornisce un'architettura di riferimento per un'applicazione web ospitata su Google Cloud. L'architettura utilizza un Global Front End che incorpora le best practice Google Cloud per scalare, proteggere e accelerare la distribuzione delle applicazioni internet. L'architettura include il supporto per Cloud Build, nonché strumenti di integrazione continua (CI) e distribuzione continua (CD) di terze parti come Jenkins e GitLab. Questa architettura è destinata agli sviluppatori e ai proprietari di app che vogliono scalare la propria applicazione con un bilanciatore del carico e proteggerla da attacchi distributed denial of service (DDoS) e basati sul web con un web application firewall (WAF).

Architettura

Il seguente diagramma mostra l'architettura descritta in questo documento.

Architettura delle applicazioni web.

In questa architettura, il carico dell'applicazione è bilanciato con bilanciatori del carico delle applicazioni esterni globali, che distribuiscono il traffico HTTP e HTTPS in più istanze di backend all'interno di varie regioni. Cloud CDN accelera le applicazioni con accesso a internet utilizzando i punti di presenza (POP) perimetrali di Google e funziona con il bilanciatore del carico delle applicazioni esterno globale per fornire contenuti agli utenti. I backend sono protetti dalle policy di sicurezza di Google Cloud Armor che forniscono filtri di livello 7 ripulendo le richieste in entrata da attacchi web comuni o altri attributi di livello 7, contribuendo a bloccare il traffico prima che raggiunga i servizi di backend con bilanciamento del carico. La protezione dagli attacchi DDoS volumetrici è attiva per impostazione predefinita.

Quando un utente richiede contenuti dal tuo servizio, la richiesta viene inviata al Global Front End per le applicazioni con accesso a internet, fornito da Cross-Cloud Network. La richiesta viene valutata dalle policy di sicurezza di Cloud Armor, a partire dalle policy di sicurezza perimetrale di Cloud Armor. Se la richiesta è consentita e può essere soddisfatta da Cloud CDN, i contenuti vengono recuperati dalla cache di Cloud Armor e inviati all'utente. Se la richiesta genera un fallimento della cache, viene valutata dalle policy di backend e, in base alle regole della policy, viene rifiutata o soddisfatta dal server di backend.

Componenti dell'architettura

Il diagramma precedente include i seguenti componenti:

  • Bilanciatore del carico delle applicazioni esterno globale: questo bilanciatore del carico delle applicazioni è un bilanciatore del carico di livello 7 basato su proxy che ti consente di eseguire e scalare i tuoi servizi. Il bilanciatore del carico delle applicazioni distribuisce il traffico HTTP e HTTPS ai backend ospitati su una varietà di piattaforme Google Cloud . Il bilanciatore del carico delle applicazioni ha le seguenti funzionalità:

    • Backend configurabile: questa architettura utilizza due gruppi di istanze gestite (MIG) in regioni diverse, ma puoi configurare qualsiasi backend supportato dal bilanciatore del carico delle applicazioni esterno globale. Puoi utilizzare lo stesso bilanciatore del carico per le applicazioni GKE, Cloud Run, Cloud Run Functions e App Engine, nonché per quelle ospitate on-premise e su altri cloud utilizzando una configurazione di backend diversa. Per saperne di più, consulta la panoramica del bilanciatore del carico delle applicazioni.
    • Suddivisione del traffico: puoi utilizzare il bilanciatore del carico delle applicazioni per la gestione del traffico, inclusa la gestione delle versioni software inviando utenti diversi a server di backend diversi. Nell'architettura descritta in questo documento, è presente una suddivisione del traffico semplice 60/40. Tuttavia, puoi modificare questa suddivisione per creare schemi di gestione del traffico più complessi. Per scoprire di più sulle opzioni di configurazione aggiuntive, consulta i timeout e i tentativi configurabili e determina la modalità di bilanciamento che preferisci.
  • Cloud CDN: la piattaforma Cloud CDN funge da cache. Viene eseguito il deployment con il server di origine per fornire la suite completa di funzionalità di Cloud CDN, tra cui QUIC e HTTP/2, nonché i controlli di routing e memorizzazione nella cache. Questo approccio consente alla tua applicazione di scalare a livello globale senza compromettere le prestazioni, riducendo al contempo i costi di larghezza di banda e di computing del frontend. La configurazione predefinita utilizzata dal Global Front End si basa sulle best practice per la distribuzione dei contenuti e sulle best practice per la sicurezza web di Cloud CDN.

  • Cloud Armor: questo componente include la protezione DDoS e le regole WAF. L'architettura ha la seguente configurazione di base di Cloud Armor, che aiuta a mitigare i vettori di minaccia comuni:

Prodotti utilizzati

Questa architettura di riferimento utilizza i seguenti prodotti Google Cloud :

Considerazioni sulla progettazione

Questa sezione fornisce indicazioni per aiutarti a utilizzare questo documento come punto di partenza per sviluppare un'architettura che soddisfi i tuoi requisiti specifici di sicurezza, affidabilità, efficienza operativa, costi e prestazioni.

Sicurezza, privacy e conformità

Questa sezione descrive altri fattori da tenere in considerazione quando utilizzi questa architettura di riferimento per eseguire il deployment dell'applicazione web.

Stabilisci una base di riferimento per la sicurezza

Per contribuire a migliorare ulteriormente la sicurezza, l'architettura descritta in questo documento è compatibile anche con il progetto della piattaforma Enterprise. Il progetto aiuta le organizzazioni che utilizzanoGoogle Cloud a stabilire una base di riferimento sicura per tutti i workload futuri, inclusa la configurazione di Identity and Access Management (IAM), Cloud Key Management Service e Security Command Center.

Proteggi i dati utente con Cloud CDN

In questa architettura, ti consigliamo di non memorizzare nella cache contenuti specifici per l'utente. Per memorizzare nella cache i tipi di contenuti HTML (text/html) e JSON (application/json), imposta intestazioni cache-control esplicite nella risposta di Cloud CDN. Assicurati di non memorizzare nella cache i dati di un utente e di non fornirli a tutti gli utenti.

Controlla l'accesso alla tua applicazione con IAP

L'architettura è compatibile anche con Identity-Aware Proxy (IAP). IAP verifica l'identità di un utente e poi determina se l'utente deve essere autorizzato ad accedere a un'applicazione. Per attivare IAP per il bilanciatore del carico delle applicazioni sia per la modalità esterna globale sia per la modalità classica, attivalo sui servizi di backend del bilanciatore del carico. Le richieste HTTP/HTTPS in entrata vengono valutate da Cloud Armor prima di essere inviate per il bilanciamento del carico da parte del bilanciatore del carico delle applicazioni. Se Cloud Armor blocca una richiesta, IAP non la valuta. Se Cloud Armor consente una richiesta, IAP la valuta. La richiesta viene bloccata se IAP non la autentica. Per saperne di più, consulta Integrazione di Cloud Armor con altri prodotti Google.

Ottimizzazione dei costi

Come linea guida generale, l'utilizzo di Cloud CDN insieme a Cloud Armor può contribuire a ridurre al minimo l'effetto delle tariffe per il trasferimento di dati in uscita.

Cloud CDN

Gli oggetti statici che vengono pubblicati per il client dalla cache non passano attraverso il bilanciatore del carico. Un'efficace strategia di memorizzazione nella cache può ridurre la quantità di dati in uscita elaborati dal bilanciatore del carico e abbassare i costi.

Google Cloud Armor

Cloud Armor ti aiuta a ridurre i costi impedendo che al tuo account vengano addebitati costi per il traffico indesiderato. Le richieste bloccate da Cloud Armor non generano una risposta dalla tua app, riducendo efficacemente la quantità di dati in uscita elaborati dal bilanciatore del carico. L'effetto sui costi dipende dalla percentuale di traffico indesiderato bloccato dalle policy di sicurezza di Cloud Armor che implementi.

Anche i costi finali possono variare a seconda del numero di servizi o applicazioni che vuoi proteggere, del numero di policy e regole di Cloud Armor che hai, del riempimento e dell'uscita della cache e del volume di dati. Per saperne di più, consulta le seguenti risorse:

Deployment

Per eseguire il deployment di questa architettura di riferimento, utilizza l'esempio di Terraform. Per saperne di più, consulta il file README. La cartella web_app_protection_example include il file (main.tf). Il codice in questo file crea l'architettura descritta in questo documento e fornisce un supporto aggiuntivo per il deployment automatico.

La struttura delle cartelle nella cartella Terraform è la seguente:

Quando esegui il commit di una modifica in un ramo su cui si basa la pipeline, queste modifiche attivano un'esecuzione della pipeline e vengono integrate in una nuova release una volta completata. Quando esegui il pull del toolkit per la prima volta, la soluzione verrà caricata nel progetto Google Cloud scelto.

Passaggi successivi

Scopri di più sulle best practice per i prodotti Google Cloud utilizzati in questa architettura di riferimento:

Collaboratori

Autori:

Altri collaboratori: