Questo contenuto è obsoleto. Questa versione di Framework Well-Architected è ora disponibile all'indirizzo: https://docs.aws.amazon.com/it_it/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 4: In che modo selezioni la soluzione di database?

La soluzione di database ottimale per un determinato sistema può variare in base ai requisiti di disponibilità, coerenza, tolleranza della partizione, latenza, durata, scalabilità e capacità di query. Molti sistemi utilizzano diverse soluzioni di database per vari sottosistemi e consentono funzionalità differenti per migliorare le prestazioni. La selezione della soluzione e delle funzionalità errate del database per un sistema può ridurre l'efficienza delle prestazioni.

Risorse

AWS purpose-built databases (DAT209-L)
Amazon Aurora storage demystified: How it all works (DAT309-R)
Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)
Cloud Databases with AWS
AWS Database Caching
Amazon DynamoDB Accelerator
Amazon Aurora best practices
Amazon Redshift performance
Amazon Athena top 10 performance tips
Amazon Redshift Spectrum best practices
Amazon DynamoDB best practices

Best practice:

Piano di miglioramento

Comprendi le caratteristiche dei dati

  • Caratteristiche dei dati di ricerca e dei documenti: Prima di scegliere una soluzione di database, comprendi i requisiti funzionali del tuo carico di lavoro e il modo in cui interagisce con i dati. Nel valutare una soluzione di database, determina se è la più adatta per soddisfare i requisiti che hai stabilito (ad es. transazioni o disponibilità elevata), in modo che tu possa selezionare la miglior combinazione di database da utilizzare per il tuo carico di lavoro. Valuta database alternativi che potrebbero soddisfare meglio i requisiti del tuo carico di lavoro. Ad esempio, se stai creando un'applicazione IoT, potrebbe essere preferibile selezionare un database di serie temporali, ad esempio Amazon Timestream, per archiviare e analizzare facilmente trilioni di eventi al giorno a un decimo del costo dei database relazionali.
  • Valutazione delle opzioni disponibili

  • Selezione del tipo di database appropriato per il carico di lavoro: AWS ti consente di scegliere diversi motori di database dedicati, tra cui database relazionali, chiave-valore, documento, in memoria, grafi, serie temporali e libri mastri. Il portfolio AWS di database dedicati supporta vari modelli di dati, consentendo ai clienti di costruire applicazioni guidate dai casi d'uso, altamente scalabili e distribuite. Scegliendo il database migliore per risolvere un problema specifico o una serie di problematiche, potrai finalmente abbandonare i database monolitici, restrittivi e indifferenziati e concentrarti sulla creazione di applicazioni in grado di rispondere alle esigenze dell'azienda.
  • Definizione dei requisiti prestazionali per il database: Identifica i parametri delle prestazioni per i database importanti per il tuo carico di lavoro e implementa i requisiti come parte di un approccio basato sui dati, ricorrendo a benchmark o test di carico. Utilizza tali dati per identificare i punti in cui la soluzione di database è vincolante ed esamina le opzioni di configurazione per risolvere il problema.
  • Abilitazione delle opzioni di memorizzazione nella cache del database: Valuta le opzioni di memorizzazione nella cache del database, come Amazon ElastiCache for Redis per la memorizzazione nella cache di database relazionali o Amazon DynamoDB Accelerator (DAX) per una cache in memoria completamente gestita e ad alta disponibilità per DynamoDB. Queste opzioni offrono prestazioni migliorate, in alcuni casi da millisecondi a microsecondi anche con milioni di richieste al secondo.
  • Raccolta e registrazione dei parametri delle prestazioni del database

  • Raccolta dei parametri relativi al database: Progetta il carico di lavoro per registrare i parametri correlati all'attività del database. Tali dati sono cruciali per la comprensione del modo in cui i sistemi di database impattano le prestazioni complessive del tuo carico di lavoro e dove puoi apportare cambiamenti per migliorare le prestazioni e l'efficienza. Ad esempio tracciando i punti di dati, come i tempi delle query, il numero di transazioni, l'utilizzo del disco e dell'indice, oppure le query lente, ti consente di ottimizzare i sistemi di database.
  • Monitoraggio dei parametri: Amazon CloudWatch può raccogliere i parametri per tutte le risorse dell'architettura. Puoi anche raccogliere e pubblicare parametri personalizzati per ottenere parametri aziendali o derivati. Utilizza CloudWatch o soluzioni di terze parti per impostare allarmi che indicano quando le soglie vengono superate.
  • Scelta dello storage dei dati in base agli schemi di accesso

  • Utilizzo degli schemi di accesso per determinare lo storage dei dati: Valuta gli schemi di accesso del carico di lavoro per trovare un modello di storage dei dati appropriato. Ad esempio, se il carico di lavoro richiede l'accesso ad hoc alle query, puoi selezionare un database relazionale, come Amazon RDS. Se il carico di lavoro è determinato da un tasso di crescita elevato o da eventi con traffico elevato, devi selezionare un database chiave-valore, come Amazon DynamoDB.
  • Ottimizzazione dello storage dei dati in base agli schemi e ai parametri di accesso

  • Ottimizzazione dello storage dei dati in base a schemi e parametri: Utilizza i parametri segnalati per identificare le aree con prestazioni inferiori nel carico di lavoro e ottimizzare i componenti del database. Ogni sistema del database ha caratteristiche diverse relative alle prestazioni che devono essere valutate, come il modo in cui i dati sono indicizzati, memorizzati nella cache o distribuiti in più sistemi. Misurazione dell'impatto delle ottimizzazioni.