View a markdown version of this page

PERF03-BP01 Uso di un archivio dati dedicato che supporta al meglio i requisiti di accesso e archiviazione dei dati - Framework AWS Well-Architected

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

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

    Acquisizione e archiviazione efficienti dei dati in streaming.
    File system condiviso

    Amazon Elastic File System (Amazon EFS)

    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 AuroraAmazon RDSAmazon 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?
    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?
    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: