Questa pagina descrive le best practice per la configurazione delle opzioni di networking per le risorse Cloud Run. Prima di creare le risorse, ti consigliamo di esaminare tutte le sezioni di questa pagina per comprendere le opzioni di networking supportate da Cloud Run e le relative implicazioni.
Best practice:
Monitora l'utilizzo degli indirizzi IP.Utilizza indirizzi IP non RFC 1918.
Utilizza subnet IPv4 e IPv6 (dual stack).
Utilizza il pool di connessioni e riutilizza le connessioni.
Isola il traffico internet in uscita.
Velocità effettiva esterna più elevata verso internet.
Velocità effettiva interna più elevata per un'API di Google.
Monitora l'utilizzo degli indirizzi IP
Se utilizzi il VPC diretto in uscita, assicurati di avere indirizzi IP sufficienti per la tua subnet. Il numero di indirizzi IP che utilizzi dipende dal numero di istanze di container eseguite dai tuoi workload, pertanto ti consigliamo di monitorare l'utilizzo degli indirizzi IP. Assicurati che l'utilizzo degli IP nel tempo rimanga entro i limiti supportati dalla subnet.
Per stimare l'utilizzo degli indirizzi IP:
Nella console Google Cloud , vai alla pagina Esplora metriche di Cloud Monitoring:
Cerca il numero di istanze di container nel tuo progetto utilizzando il tipo di metrica
run.googleapis.com/container/instance_count. Cloud Monitoring ti consente di visualizzare il valore di questa metrica nel tempo.Moltiplica per 2 il valore della metrica del conteggio delle istanze per ottenere una stima del numero di indirizzi IP in uso.
Strategie per l'esaurimento degli indirizzi IP
La presenza di un numero elevato di workload Cloud Run può causare problemi di esaurimento degli IP quando si utilizza lo spazio di indirizzi IP privati RFC 1918 con il traffico in uscita VPC diretto. Le seguenti strategie possono aiutarti a gestire l'esaurimento degli indirizzi IP utilizzando intervalli di indirizzi IP alternativi.
Utilizza indirizzi IPv4 non RFC 1918
Oltre agli intervalli di indirizzi IPv4 RFC 1918, Cloud Run supporta anche gli intervalli RFC 6598 e Classe E/RFC 5735. Tutti i servizi e le funzionalità diGoogle Cloud funzionano con questi intervalli non RFC 1918, tra cui le reti VPC, Cloud Load Balancing e Private Service Connect.
Per la massima compatibilità, ti consigliamo di iniziare con l'intervallo RFC 6598 (100.64.0.0/10). Se utilizzi già questo intervallo altrove, valuta la possibilità di utilizzare la classe E/RFC 5735 (240.0.0.0/4). La classe E è uno spazio enorme con oltre 268 milioni di indirizzi IP disponibili, quindi supporterà la tua crescita per molto tempo. Tuttavia, la classe E presenta alcune limitazioni. Ad esempio, non è supportata su Windows e su alcuni hardware on-premise. Scopri di più su come sfruttare lo spazio degli indirizzi IPv4 di classe E per mitigare i problemi di esaurimento degli indirizzi IPv4 in GKE.
Utilizza Cloud NAT o Private Service Connect
Se il tuo workload Cloud Run che utilizza un intervallo non RFC 1918 deve raggiungere una destinazione on-premise che accetta solo RFC 1918, utilizza una delle seguenti soluzioni:
- Utilizza Hybrid NAT per eseguire la traduzione degli indirizzi e il traffico in uscita utilizzando un intervallo RFC 1918 ridotto.
- Esponi il servizio on-premise come servizio ibrido Private Service Connect.
Utilizza subnet IPv4 e IPv6 (dual stack)
Anche se non ridurrà l'esaurimento degli indirizzi IPv4, spostare le tue app su IPv6 è un buon primo passo. Configura le risorse a doppio stack per evitare problemi di esaurimento degli indirizzi IPv4 in futuro.
Strategie di riduzione dell'esaurimento delle porte
La sezione seguente descrive le strategie per ridurre l'esaurimento delle porte con Cloud Run.
Utilizza il pool di connessioni e riutilizza le connessioni
Quando invii un numero elevato di richieste a un singolo indirizzo IP di destinazione, utilizza il pooling delle connessioni per mantenere e riutilizzare le connessioni alla destinazione. Frequenze di connessione elevate a un singolo indirizzo IP possono esaurire le porte in uscita e causare errori di connessione rifiutata.
Isola il traffico internet in uscita
Per impostazione predefinita, Cloud Run invia il traffico internet in uscita tramite un pool regionale di indirizzi IP dinamici condivisi tra i workload serverless. Non utilizzare questo pool condiviso predefinito per i workload che dipendono dalla reputazione IP o che generano un traffico di probing ad alto volume.
Configura invece il traffico VPC diretto in uscita con --vpc-egress=all-traffic e instrada il traffico tramite Cloud NAT con indirizzi IP statici in uscita dedicati nei seguenti casi:
- Il tuo workload si connette a endpoint esterni sensibili alla reputazione, come gateway di pagamento, database ospitati o API partner dietro web application firewall (WAF) di terze parti. Gli indirizzi IP statici dedicati impediscono che il traffico rumoroso di altri tenant nel pool condiviso attivi blocchi WAF esterni o errori
HTTP 403. - Il tuo workload esegue scansioni di rete autorizzate, enumerazione delle porte, fingerprinting degli host, probing delle vulnerabilità, web scraping o test di carico. L'esecuzione di questi workload sul pool di IP condivisi predefinito peggiora la reputazione degli IP, può interrompere il servizio per altri clienti in violazione delle Norme di utilizzo accettabile diGoogle Cloud e potrebbe indurre Google a limitare o sospendere il workload.
Quando esegui workload di scansione autorizzati o con un numero elevato di connessioni tramite Cloud NAT, alloca un numero sufficiente di indirizzi IP statici e configura la prenotazione delle porte per evitare l'esaurimento delle porte.
Strategie di prestazioni e throughput
Questa sezione illustra le opzioni scalabili per migliorare le prestazioni e il throughput della rete verso internet e i servizi Google.
Utilizza l'ambiente di esecuzione di seconda generazione
Per ottenere le migliori prestazioni di networking per i servizi Cloud Run, utilizza l'ambiente di esecuzione di seconda generazione quando instradi il traffico con il traffico in uscita VPC diretto. L'ambiente di seconda generazione offre prestazioni di rete più rapide, soprattutto in presenza di perdita di pacchetti.
Puoi selezionare l'ambiente di esecuzione utilizzando la console Google Cloud , gcloud CLI, YAML o Terraform.
Utilizza VPC diretto in uscita per una velocità effettiva di traffico di rete in uscita più elevata
Per ottenere una velocità effettiva più elevata nelle connessioni di rete in uscita, utilizza il VPC diretto per il traffico in uscita per instradare il traffico attraverso la rete VPC. Ti consigliamo di utilizzarlo insieme all'ambiente di esecuzione di seconda generazione, come indicato in precedenza.
Esempio 1: traffico esterno verso internet
Se invii traffico esterno alla rete internet pubblica, instrada tutto il traffico attraverso la rete VPC impostando --vpc-egress=all-traffic.
Con questo approccio, devi configurare Cloud NAT per raggiungere la rete internet pubblica.
Per consentire a Cloud Run di utilizzare un gateway Cloud NAT per Public NAT o Private NAT, consulta Interazioni del traffico VPC diretto di Cloud NAT.
Esempio 2: traffico interno verso un'API di Google
Se utilizzi il traffico in uscita VPC diretto per inviare traffico a un'API di Google, ad esempio Cloud Storage, scegli una delle seguenti opzioni:
- Specifica
private-ranges-only(predefinito) con l'accesso privato Google:- Imposta il flag
--vpc-egress=private-ranges-only. - Abilita l'accesso privato Google.
- Configura il DNS per l'accesso privato Google.
Assicurati che il dominio di destinazione (ad esempio
storage.googleapis.com) sia mappato a uno dei seguenti intervalli di indirizzi IP interni:199.36.153.8/30199.36.153.4/30
- Imposta il flag
- Specifica
all-trafficcon l'accesso privato Google:- Imposta il flag
--vpc-egress=all-traffic. - Abilita l'accesso privato Google.
- Imposta il flag
Utilizza l'impostazione MTU predefinita per Cloud Run
Non modificare l'impostazione dell'unità massima di trasmissione (MTU) di una rete VPC quando la utilizzi con Cloud Run. Utilizza invece la MTU predefinita di 1460 byte.
Considerazioni sui costi
Quando configuri le opzioni di networking per le tue risorse, tieni presente quanto segue:
- Colloca le risorse nella stessa posizione: prova a eseguire il deployment delle risorse Cloud Run nella stessa regione dei database di backend (come Cloud SQL o Firestore) e dei bucket Cloud Storage. Il trasferimento di dati tra risorse Google Cloud all'interno della stessa regione è senza costi.
- Passa al VPC diretto in uscita: se instradi il traffico in modo sicuro alle risorse di rete VPC interne, valuta la possibilità di passare al VPC diretto in uscita dai connettori di accesso VPC serverless. Il VPC diretto in uscita fa lo scale down a zero, eliminando l'overhead di computing di base e i costi di inattività associati alle istanze del connettore.
- Utilizza Cloud CDN: scarica gli asset statici e i contenuti altamente memorizzabili nella cache posizionando Cloud CDN davanti alle risorse Cloud Run. La distribuzione dei dati dall'edge è molto più economica rispetto al pagamento del traffico in uscita verso internet standard direttamente da Cloud Run.
- Monitora il traffico in uscita verso internet: il traffico in entrata è sempre senza costi e ricevi 1 GiB di trasferimento di dati in uscita verso internet al mese senza costi aggiuntivi all'interno del Nord America. Concentra le tue attività di monitoraggio sul traffico in uscita che supera i confini della regione o il livello senza costi.
Per saperne di più, consulta i prezzi di Cloud Run o stima i costi con il Calcolatore prezzi.