Ottimizzazione dei costi: database e analisi intelligente

Last reviewed 2024-05-10 UTC

Questo documento nel framework dell'architettura Google Cloud fornisce suggerimenti per aiutarti a ottimizzare il costo dei database e dei carichi di lavoro di analisi in Google Cloud.

Le indicazioni in questa sezione sono rivolte ad architect, sviluppatori e amministratori responsabili del provisioning e della gestione dei database e dei carichi di lavoro di analisi nel cloud.

Questa sezione include suggerimenti sull'ottimizzazione dei costi per i seguenti prodotti:

Cloud SQL

Cloud SQL è un database relazionale completamente gestito per MySQL, PostgreSQL e SQL Server.

Monitora l'utilizzo

Esamina le metriche nella dashboard di monitoraggio e verifica che il deployment soddisfi i requisiti del carico di lavoro.

Ottimizza le risorse

Di seguito sono riportati alcuni suggerimenti per aiutarti a ottimizzare le risorse Cloud SQL:

  • Progetta una strategia ad alta disponibilità e di ripristino di emergenza in linea con l'RTO (Recovery Time Objective) e l'RPO (Recovery Point Objective). A seconda del carico di lavoro, consigliamo quanto segue:
  • Esegui il provisioning del database con la capacità di archiviazione minima richiesta.
  • Per scalare automaticamente la capacità di archiviazione di pari passo con l'aumento dei dati, abilita la funzionalità di aumento automatico dello spazio di archiviazione.
  • Scegli il tipo di archiviazione, unità a stato solido (SSD) o disco rigido (HDD), appropriato per il tuo caso d'uso. SSD è la scelta più efficiente ed economica per la maggior parte dei casi d'uso. HDD potrebbe essere appropriato per set di dati di grandi dimensioni (> 10 TB) non sensibili alla latenza o a cui si accede raramente.

Ottimizza i tassi

Valuta la possibilità di acquistare sconti per impegno di utilizzo per carichi di lavoro con esigenze prevedibili in termini di risorse. Puoi risparmiare il 25% dei prezzi on demand per un impegno di 1 anno e il 52% per un impegno di 3 anni.

Spanner

Spanner è un database cloud-native, a scalabilità illimitata e a elevata coerenza che offre una disponibilità fino al 99, 999%.

Monitora l'utilizzo

Di seguito sono riportati alcuni suggerimenti per aiutarti a monitorare l'utilizzo delle risorse di Spanner:

  • Monitora il deployment e configura il numero dei nodi in base ai suggerimenti per le CPU.
  • Imposta avvisi sui tuoi deployment per ottimizzare le risorse di archiviazione. Per determinare la configurazione appropriata, fai riferimento ai limiti per nodo consigliati.

Ottimizza le risorse

Di seguito sono riportati alcuni suggerimenti utili per ottimizzare le risorse Spanner:

  • Esegui carichi di lavoro più piccoli su Spanner a costi molto inferiori eseguendo il provisioning delle risorse con le unità di elaborazione (PU) rispetto ai nodi. Un nodo Spanner equivale a 1000 PU.
  • Migliora le prestazioni di esecuzione delle query con lo strumento di ottimizzazione delle query.
  • Crea istruzioni SQL utilizzando le best practice per la creazione di piani di esecuzione efficienti.
  • Gestire l'utilizzo e le prestazioni dei deployment Spanner utilizzando lo strumento Gestore della scalabilità automatica. Lo strumento monitora le istanze, aggiunge o rimuove automaticamente i nodi e ti aiuta a garantire che le istanze rimangano entro i limiti di CPU e spazio di archiviazione consigliati.
  • Proteggiti da eliminazioni o scritture accidentali utilizzando il recupero point-in-time (PITR). I database con periodi di conservazione delle versioni più lunghi (in particolare quelli che sovrascrivono spesso i dati) utilizzano più risorse di sistema e hanno bisogno di più nodi.
  • Esamina la tua strategia di backup e scegli una delle seguenti opzioni:
    • Backup e ripristino
    • Esporta e importa

Ottimizza i tassi

Quando decidi la località dei tuoi nodi Spanner, considera le differenze di costo tra le regioni Google Cloud. Ad esempio, un nodo di cui è stato eseguito il deployment nella regione us-central1 costa molto meno all'ora rispetto a un nodo nella regione southamerica-east1.

Bigtable

Bigtable è un datastore NoSQL a colonne larghe cloud-native per carichi di lavoro a bassa latenza su larga scala.

Monitora l'utilizzo

Di seguito sono riportati alcuni suggerimenti per aiutarti a monitorare l'utilizzo delle risorse Bigtable:

  • Analizza le metriche di utilizzo per identificare le opportunità di ottimizzazione delle risorse.
  • Identifica hotspot e tasti di scelta rapida nel tuo cluster Bigtable utilizzando lo strumento di diagnostica Key Visualizer.

Ottimizza le risorse

Di seguito sono riportati alcuni suggerimenti utili per ottimizzare le risorse Bigtable:

  • Per aiutarti a garantire utilizzo di CPU e disco che offra un equilibrio tra latenza e capacità di archiviazione, valuta e regola il numero e le dimensioni dei nodi del cluster Bigtable.
  • Mantieni le prestazioni al minor costo possibile scalando in modo programmatico il cluster Bigtable per regolare automaticamente il numero dei nodi.
  • Valuta il tipo di archiviazione (HDD o SSD) più conveniente per il tuo caso d'uso in base alle seguenti considerazioni:

    • L'archiviazione HDD costa meno di SSD, ma ha prestazioni inferiori.
    • L'archiviazione SSD costa più dell'HDD, ma offre prestazioni più rapide e prevedibili.

    I risparmi sui costi dell'HDD sono minimi rispetto al costo dei nodi nel cluster Bigtable, a meno che non vengano archiviate grandi quantità di dati. L'archiviazione HDD a volte è appropriata per set di dati di grandi dimensioni (> 10 TB) non sensibili alla latenza o a cui si accede raramente.

  • Rimuovi i dati scaduti e obsoleti utilizzando la garbage collection.

  • Per evitare hotspot, applica le best practice per la progettazione delle chiavi di riga.

  • Progetta un piano di backup economico in linea con il tuo RPO.

  • Per ridurre l'utilizzo del cluster e ridurre il numero di nodi, valuta la possibilità di aggiungere una cache di capacità per le query memorizzabili nella cache utilizzando Memorystore.

Letture aggiuntive

BigQuery

BigQuery è un data warehouse multi-cloud serverless, a scalabilità elevata e dai costi contenuti, progettato per l'agilità aziendale.

Monitora l'utilizzo

Di seguito sono riportati alcuni suggerimenti utili per monitorare l'utilizzo delle risorse BigQuery:

  • Visualizza i costi di BigQuery segmentati per progetti e utenti. Identifica le query più costose e ottimizzale.
  • Analizza l'utilizzo degli slot tra progetti, job e prenotazioni utilizzando le tabelle di metadati INFORMATION_SCHEMA.

Ottimizza le risorse

Di seguito sono riportati alcuni suggerimenti utili per ottimizzare le risorse BigQuery:

  • Imposta le scadenze a livello di set di dati, di tabella o di partizione per i dati in base alla tua strategia di conformità.
  • Limita i costi delle query limitando il numero di byte fatturati per query. Per evitare errori umani accidentali, abilita il controllo dei costi a livello di utente e di progetto.
  • Esegui query solo sui dati di cui hai bisogno. Evita scansioni complete delle query. Per esplorare e comprendere la semantica dei dati, utilizza le opzioni di anteprima dei dati senza costi.
  • Per ridurre i costi di elaborazione e migliorare le prestazioni, esegui il partizionamento e il cluster delle tabelle, se possibile.
  • Filtra la tua query il prima possibile e il più spesso possibile.
  • Durante l'elaborazione dei dati da più origini (come Bigtable, Cloud Storage, Google Drive e Cloud SQL), evita di duplicare i dati utilizzando un modello di dati di accesso federato ed eseguendo query sui dati direttamente dalle origini.
  • Sfrutta il backup di BigQuery anziché duplicare i dati. Consulta la pagina Scenari di ripristino di emergenza per i dati.

Ottimizza i tassi

Di seguito sono riportati alcuni suggerimenti per aiutarti a ridurre le tariffe di fatturazione per le tue risorse BigQuery:

  • Valuta come modificare i dati e sfrutta prezzi di archiviazione a lungo termine più bassi.
  • Esamina le differenze tra i pricing a costo fisso e on demand e scegli un'opzione adatta alle tue esigenze.
  • Valuta se puoi utilizzare il caricamento in batch anziché l'inserimento di flussi di dati per i flussi di lavoro relativi ai dati. Utilizza l'inserimento di flussi di dati se i dati caricati in BigQuery vengono consumati immediatamente.
  • Per aumentare le prestazioni e ridurre i costi di recupero dei dati, utilizza i risultati delle query memorizzati nella cache.

Letture aggiuntive

Dataflow

Dataflow è un servizio serverless veloce e conveniente per l'elaborazione unificata dei dati in modalità flusso e batch.

Monitora l'utilizzo

Di seguito sono riportati alcuni suggerimenti per aiutarti a monitorare l'utilizzo delle risorse Dataflow:

Ottimizza le risorse

Di seguito sono riportati alcuni suggerimenti per aiutarti a ottimizzare le risorse Dataflow:

  • Valuta Dataflow Prime per elaborare i big data in modo efficiente.
  • Per le pipeline batch, riduci le risorse (CPU, memoria e archiviazione su Persistent Disk) utilizzate nelle VM worker utilizzando Dataflow shuffling.
  • Riduci i costi dell'elaborazione batch utilizzando FlexRS (FlexRS) per le pipeline in batch con scalabilità automatica. FlexRS utilizza la pianificazione avanzata, Dataflow Shuffle e una combinazione di VM prerilasciabili e VM normali per ridurre i costi delle pipeline batch.
  • Per una scalabilità automatica più reattiva e per ridurre il consumo di risorse, usa Streaming Engine, che sposta l'esecuzione della pipeline dalle VM worker al backend del servizio Dataflow.
  • Se la pipeline non ha bisogno dell'accesso da e verso internet e altre reti Google Cloud, disabilita gli indirizzi IP pubblici. La disattivazione dell'accesso a internet consente di ridurre i costi di rete e di migliorare la sicurezza delle pipeline.
  • Segui le best practice per una pipeline efficiente con Dataflow.

Dataproc

Dataproc è un servizio Apache Spark e Apache Hadoop gestito per elaborazione batch, query, inserimento di flussi e machine learning.

Di seguito sono riportati alcuni suggerimenti per aiutarti a ottimizzare il costo delle risorse Dataproc:

Passaggi successivi