PERF03-BP01 Uso di un archivio dati dedicato che supporta al meglio i requisiti di accesso e archiviazione dei dati
Comprendi le caratteristiche dei dati (come la condivisione, le dimensioni, la dimensione della cache, gli schemi di accesso, la latenza, la velocità di trasmissione effettiva e la persistenza dei dati) per selezionare i data store (archiviazione o database) dedicati per il tuo carico di lavoro.
Anti-pattern comuni:
-
Continui a utilizzare un datastore per via dell'esperienza e delle competenze interne relative a quel particolare tipo di soluzione di database.
-
Ritieni che tutti i carichi di lavoro abbiano requisiti di accesso e archiviazione dei dati simili.
-
Non hai implementato un catalogo di dati per eseguire l'inventario dei tuoi asset.
Vantaggi dell'adozione di questa best practice: la comprensione delle caratteristiche e dei requisiti dei dati ti consente di determinare la tecnologia di archiviazione più efficiente e performante appropriata per le tue esigenze del carico di lavoro.
Livello di rischio associato se questa best practice non fosse adottata: alto
Guida all'implementazione
Quando selezioni e implementi l'archiviazione di dati, assicurati che le caratteristiche di query, dimensionamento e archiviazione supportino i requisiti dei dati del carico di lavoro. AWS fornisce numerose tecnologie di database e archiviazione di dati, tra cui archiviazione a blocchi, archiviazione di oggetti, archiviazione di streaming, file system, database relazionali, chiave-valore, di documenti, in memoria, a grafo, di serie temporali e di libro mastro. Ogni soluzione di gestione dei dati offre soluzioni e configurazioni adatte a gestire i tuoi casi d'uso e modelli di dati. Comprendendo le caratteristiche e i requisiti dei dati, puoi abbandonare la tecnologia di archiviazione monolitica e gli approcci restrittivi e validi per tutti, per concentrarti sulla gestione dei dati in modo appropriato.
Passaggi dell'implementazione
-
Esegui un inventario dei vari tipi di dati esistenti nel tuo carico di lavoro.
-
Comprendi e documenta le caratteristiche e i requisiti dei dati, tra cui:
-
Tipo di dati (non strutturati, semi-strutturati, relazionali)
-
Volume e crescita dei dati
-
Durabilità dei dati: persistenti, effimeri, transitori
-
Requisiti ACID (atomicità, coerenza, isolamento, durabilità)
-
Schemi di accesso ai dati (con uso intensivo di lettura o scrittura)
-
Latenza
-
Throughput
-
IOPS (operazioni di input/output al secondo)
-
Periodo di conservazione dei dati
-
-
Scopri i diversi archivi di dati disponibili per il carico di lavoro AWS che possono soddisfare le caratteristiche dei tuoi dati (come descritto in PERF01-BP01 Informazioni e identificazione dei servizi e delle funzionalità cloud disponibili). Alcuni esempi di tecnologie di archiviazione AWS e delle loro caratteristiche chiave sono:
Tipo Servizi AWS Caratteristiche chiave Archiviazione di oggetti Amazon S3 Scalabilità illimitata, alta disponibilità e molteplici opzioni di accessibilità. Il trasferimento di oggetti e l'accesso a oggetti in Amazon S3 possono utilizzare un servizio, ad esempio Accelerazione del trasferimento oppure Punti di accesso , per supportare la posizione, i requisiti di sicurezza e gli schemi di accesso. Archiviazione Amazon Glacier Progettato per l'archiviazione dei dati. Archiviazione in streaming Acquisizione e archiviazione efficienti dei dati in streaming. File system condiviso File system montabile a cui è possibile accedere da più tipi di soluzioni di calcolo.
File system condiviso Amazon FSx Sviluppato con le più recenti soluzioni di calcolo AWS per supportare i 4 file system più comunemente utilizzati: NetApp ONTAP, OpenZFS, Windows File Server e Lustre. Relativamente ad Amazon FSx , la latenza, la velocità di trasmissione effettiva e le operazioni di input/output al secondo (IOPS) variano a seconda del file system; è necessario considerare attentamente questi elementi quando si deve selezionare il file system in modo conforme ai requisiti dei carichi di lavoro. Archiviazione a blocchi Amazon Elastic Block Store (Amazon EBS) Servizio di archiviazione a blocchi scalabile e ad alte prestazioni progettato per Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS include l'archiviazione supportata da SSD per carichi di lavoro transazionali e a uso intensivo di IOPS, nonché archiviazione supportata da HDD per carichi di lavoro con uso intensivo della velocità di trasmissione effettiva. Database relazionale Amazon Aurora , Amazon RDS , Amazon Redshift . Progettati per supportare le transazioni ACID (atomicità, coerenza, isolamento, durabilità) e per mantenere l'integrità referenziale e una solida coerenza dei dati. Molte applicazioni tradizionali, Enterprise Resource Planning (ERP), Customer Relationship Management (CRM) ed e-commerce utilizzano database relazionali per archiviare i propri dati. Database chiave-valore Amazon DynamoDB Ottimizzati per schemi di accesso di uso comune, in genere per archiviare e recuperare grandi volumi di dati. Le app Web dal traffico elevato, i sistemi di e-commerce e le applicazioni di videogiochi sono casi d'uso tipici dei database chiave-valore. Database di documenti Amazon DocumentDB Progettato per archiviare dati semistrutturati come documenti simili a JSON. Questi database aiutano gli sviluppatori a creare e aggiornare rapidamente applicazioni quali gestione di contenuti, cataloghi e profili utente. Database in memoria Amazon ElastiCache , Amazon MemoryDB per Redis Vengono utilizzati per applicazioni che richiedono accesso in tempo reale ai dati, bassissima latenza ed elevatissima velocità di trasmissione effettiva. È possibile utilizzare database in memoria per la memorizzazione nella cache delle applicazioni, la gestione delle sessioni, la classifica dei giochi, l'archivio funzionalità ML a bassa latenza, il sistema di messaggistica dei microservizi e un meccanismo di streaming ad alta velocità di trasmissione effettiva Database a grafo Amazon Neptune Vengono implementati con le applicazioni che devono navigare ed eseguire query su milioni di relazioni tra set di dati a grafo altamente connessi, con una latenza misurata in millisecondi su larga scala. Molte aziende utilizzano database a grafo per il rilevamento di attività fraudolente, i social network e i motori di raccomandazione. Database di serie temporali Amazon Timestream Sono efficienti per raccogliere, sintetizzare e derivare approfondimenti dai dati che cambiano nel tempo. I database di serie temporali sono spesso utilizzati dalle applicazioni IoT, DevOps e dalla telemetria industriale. Colonna ampia Amazon Keyspaces (per Apache Cassandra) Utilizza tabelle, righe e colonne, ma a differenza di un database relazionale, i nomi e il formato delle colonne possono variare da riga a riga all'interno della stessa tabella. In genere, gli store colonnari sono utilizzati nelle applicazioni industriali su larga scala per la manutenzione delle apparecchiature, la gestione delle flotte e l'ottimizzazione dei percorsi. Di libri mastri Amazon Quantum Ledger Database (Amazon QLDB) Forniscono un'autorità centralizzata e affidabile per mantenere un registro delle transazioni scalabile, immutabile e verificabile tramite crittografia per ogni applicazione. I database di libri mastri vengono utilizzati per sistemi di record, catena di fornitura, registrazioni e persino transazioni bancarie. -
Se stai creando una piattaforma di dati, sfrutta l'architettura moderna dei dati
su AWS per l’integrazione del data lake, del data warehouse e dei data store creati appositamente. -
Le domande chiave da porsi quando si sceglie un data store per il carico di lavoro sono le seguenti:
Domanda Aspetti da considerare Come sono strutturati i dati? -
Se i dati non sono strutturati, valuta un'archiviazione a oggetti come Amazon S3
o un database NoSQL come Amazon DocumentDB -
Per i dati chiave-valore, valuta DynamoDB
, Amazon ElastiCache (Redis OSS) oppure Amazon MemoryDB
Quale livello di integrità referenziale è richiesto? -
Per i vincoli di chiave esterna, i database relazionali come Amazon RDS
e Aurora possono fornire questo livello di integrità. -
In genere, in un modello di dati NoSQL, i dati vengono denormalizzati in un singolo documento o in una raccolta di documenti da recuperare in un'unica richiesta, anziché essere uniti tra diversi documenti o tabelle.
È richiesta la conformità ACID (atomicità, coerenza, isolamento, durabilità)? -
Se sono necessarie proprietà ACID associate ai database relazionali, valuta un database relazionale come Amazon RDS
e Aurora . -
Se è richiesta un'elevata consistenza per database NoSQL
, puoi utilizzare un'elevata consistenza delle letture con DynamoDB .
Come cambierà nel tempo l'archiviazione? In che modo questo avrà effetto sulla scalabilità? -
I database serverless come DynamoDB
e Amazon Quantum Ledger Database (Amazon QLDB) dimensionerà dinamicamente. -
Per i database relazionali sono previsti limiti massimi per l'archiviazione assegnata, al raggiungimento dei quali si rende spesso necessario partizionare orizzontalmente tali database tramite meccanismi quali lo sharding.
Qual è la proporzione di query in lettura rispetto alle quelle in scrittura? Il caching potrebbe probabilmente migliorare le prestazioni? -
I carichi di lavoro con molte operazioni di lettura traggono beneficio da un livello di caching, che può essere rappresentato da ElastiCache
oppure DAX se il database è DynamoDB. -
È anche possibile passare le operazioni di lettura alle repliche di lettura con database relazionali come Amazon RDS
.
Hanno priorità più elevata le operazioni di archiviazione e modifica OLTP, Online Transaction Processing) o quelle di recupero e report (OLAP - Online Analytical Processing)? -
Per un'elaborazione transazionale letta così com'è ad alta velocità di trasmissione effettiva, prendi in considerazione un database NoSQL come DynamoDB.
-
Per schemi di lettura complessi con velocità di trasmissione effettiva elevata (come il join) con un uso coerente di Amazon RDS.
-
Per le query analitiche, valuta un database colonnare come Amazon Redshift
o la possibilità di esportare i dati su Amazon S3 ed eseguire l'analisi tramite Athena oppure Amazon Quick .
Che livello di durabilità è necessario per i dati? -
Aurora replica automaticamente i dati su tre zone di disponibilità all'interno di una Regione, il che significa che i dati sono altamente durevoli con minori probabilità di perdite.
-
DynamoDB viene automaticamente replicato in più zone di disponibilità per offrire livelli elevati di disponibilità e durabilità dei dati.
-
Amazon S3 offre il 99,999999999 di durabilità. Molti servizi di database, come Amazon RDS e DynamoDB, supportano l'esportazione di dati su Amazon S3 per la conservazione e l'archiviazione a lungo termine.
È presente il desiderio di abbandonare i motori di database commerciali o i costi di licenza? -
Valuta motori open-source come PostgreSQL e MySQL su Amazon RDS o Aurora.
-
sfrutta AWS Database Migration Service
e AWS Schema Conversion Tool per eseguire le migrazioni dai motori di database commerciali a quelli open-source
Quali sono le aspettative operative per il database? Il passaggio ai servizi gestiti è una priorità? -
Utilizzare Amazon RDS, invece di Amazon EC2, e scegliere DynamoDB o Amazon DocumentDB anziché ospitare in autonomia un database NoSQL, riduce le spese operative.
Come avviene attualmente l'accesso al database? È solo un accesso da applicazione o sono presenti utenti Business Intelligence (BI) e altre applicazioni pronte all'uso connesse? -
Se fossero presenti dipendenze verso altri strumenti esterni, potresti dover mantenere la compatibilità con i database che essi supportano. Amazon RDS è completamente compatibile con le diverse versioni dei motori che supporta, compresi Microsoft SQL Server, Oracle, MySQL e PostgreSQL.
-
-
Esegui esperimenti e benchmarking in un ambiente non di produzione per identificare quale datastore può soddisfare al meglio i requisiti del tuo carico di lavoro.
Risorse
Documenti correlati:
Video correlati:
Esempi correlati: