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, il throughput 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 di 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: elevato
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 di libro mastro, relazionali, chiave-valore, di documenti, in memoria, a grafo, di serie temporali. 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 (servizi di archiviazione e database) disponibili per il carico di lavoro in AWS che possono soddisfare le caratteristiche dei tuoi dati (come illustrato in PERF01-BP01 Scopri e comprendi i servizi e le funzionalità cloud disponibili). Alcuni esempi di tecnologie di archiviazione AWS e delle loro caratteristiche chiave sono:
Tipo AWS Services Caratteristiche chiave Archiviazione di oggetti Amazon S3 Scalabilità illimitata, alta disponibilità e molteplici opzioni di accessibilità. L'accesso a oggetti e il relativo trasferimento da e verso Amazon S3 può utilizzare un servizio, come Transfer Acceleration o Punti di accesso , per supportare la posizione, le esigenze di sicurezza e i modelli 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. Latenza, throughput e IOPS di Amazon FSx 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. Storage a blocchi Amazon Elastic Block Store (Amazon EBS) Servizio di storage a blocchi scalabile e a elevate prestazioni progettato per Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS include storage su SSD per carichi di lavoro transazionali e intensivi dal punto di vista dell'IOPS, oltre a storage su HDD per carichi di lavoro con throughput intensivo. 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 Ottimizzato 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 elevatissimo throughput. È possibile utilizzare database in memoria per la memorizzazione nella cache delle applicazioni, la gestione delle sessioni, la classifica dei giochi, l'archivio delle caratteristiche ML a bassa latenza, il sistema di messaggistica dei microservizi e un meccanismo di streaming a elevato throughput. Database a grafo Amazon Neptune Utilizzato 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 Utilizzato per raccogliere, sintetizzare e derivare in modo efficiente 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 Database Amazon Quantum Ledger (Amazon QLDB) Fornisce 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. -
Per una piattaforma dati, sfrutta l'architettura dei dati moderna
di AWS per integrare data lake, data warehouse e archivi dati appositamente progettati. -
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, prendi in considerazione un archivio di oggetti, come Amazon S3
, o un database NoSQL, come Amazon DocumentDB -
Per i dati di tipo chiave-valore, valuta DynamoDB
, Amazon ElastiCache (Redis OSS) o Amazon MemoryDB
Quale livello di integrità referenziale è richiesto? -
Per i vincoli di chiave esterna, i database relazionali come Amazon RDS
e Aurora possono fornire livello di integrità richiesto. -
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 è necessaria un'elevata coerenza per i database NoSQL
, puoi utilizzare le elevate consistenza di lettura con DynamoDB .
Come cambierà nel tempo l'archiviazione? In che modo questo avrà effetto sulla scalabilità? -
I database serverless, come DynamoDB
e i Database Amazon Quantum Ledger (Amazon QLDB) offrono la scalabilità dinamica. -
Per i database relazionali sono previsti limiti massimi per l'archiviazione allocata, al raggiungimento dei quali si rende spesso necessario partizionare orizzontalmente tali database tramite meccanismi quali la partizione.
Qual è la proporzione di query in lettura rispetto alle quelle in scrittura? Il caching potrebbe probabilmente migliorare le prestazioni? -
Per i carichi di lavoro gravosi in termini di lettura, può essere utile un livello di memorizzazione nella cache, come ElastiCache
o 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'è a elevato throughput, prendi in considerazione un database NoSQL come DynamoDB.
-
Per schemi di lettura complessi con throughput elevato (come il join) con un uso coerente di Amazon RDS.
-
Per le query analitiche, prendi in considerazione un database a colonne, come Amazon Redshift
, o l'esportazione dei dati su Amazon S3, nonché l'esecuzione di analisi mediante Athena o Amazon QuickSight .
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, invece di 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? -
In presenza di dipendenze da strumenti esterni, potresti dover mantenere la compatibilità con i database che supportano. Amazon RDS è del tutto compatibile con le varie versioni dei motori che supporta, tra cui 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:
-
AWS re:Invent 2023: Improve Amazon Elastic Block Store efficiency and be more cost-efficient
-
AWS re:Invent 2023: Optimizing storage price and performance with Amazon Simple Storage Service
-
AWS re:Invent 2023: Building and optimizing a data lake on Amazon Simple Storage Service
-
AWS re:Invent 2022: Building modern data architectures on AWS
-
AWS re:Invent 2023: Deep dive into Amazon Aurora and its innovations
-
AWS re:Invent 2023: Advanced data modeling with Amazon DynamoDB
-
AWS re:Invent 2022: Modernize apps with purpose-built databases
Esempi correlati: