PERF03-BP01 Utilizza un archivio dati appositamente progettato che supporti al meglio i requisiti di accesso e archiviazione dei dati - AWS Well-Architected Framework

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

PERF03-BP01 Utilizza un archivio dati appositamente progettato che supporti 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 selezionate e implementate l'archiviazione dei dati, assicuratevi che le caratteristiche di interrogazione, scalabilità e archiviazione supportino i requisiti relativi ai dati del carico di lavoro. AWS offre numerose tecnologie di archiviazione dei dati e di database, tra cui storage a blocchi, storage di oggetti, storage in streaming, file system, database relazionali, chiave-valore, documentali, in memoria, grafici, di serie temporali e di registro. 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, è possibile abbandonare la tecnologia di storage monolitica e adottare approcci restrittivi per concentrarsi sulla gestione appropriata dei dati. one-size-fits-all

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

    • ACIDrequisiti (atomicità, coerenza, isolamento, durabilità)

    • Schemi di accesso ai dati (con uso intensivo di lettura o scrittura)

    • Latenza

    • Prestazioni

    • IOPS(operazioni di ingresso/uscita al secondo)

    • Periodo di conservazione dei dati

  • Scopri i diversi archivi di dati (servizi di archiviazione e database) disponibili per il tuo carico di lavoro e AWS che possono soddisfare le caratteristiche dei tuoi dati, come descritto 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 Servizi 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 S3 Glacier Progettato per l'archiviazione dei dati.
    Archiviazione in streaming

    Amazon Kinesis

    Streaming gestito da Amazon per Apache Kafka (Amazon) MSK

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

    Amazon Elastic File System (AmazonEFS)

    File system montabile a cui è possibile accedere da più tipi di soluzioni di calcolo.

    File system condiviso Amazon FSx Basato sulle più recenti soluzioni di AWS elaborazione per supportare quattro file system di uso comune: Open NetApp ONTAPZFS, Windows File Server e Lustre. FSxLa latenza, la velocità effettiva e la velocità effettiva di Amazon IOPS variano in base al file system e devono essere prese in considerazione quando si seleziona il file system giusto per le esigenze di carico di lavoro.
    Storage a blocchi Amazon Elastic Block Store (AmazonEBS) Servizio di storage a blocchi scalabile e ad alte prestazioni progettato per Amazon Elastic Compute Cloud (Amazon). EC2 Amazon EBS include storage SSD supportato per carichi di lavoro transazionali e intensivi e HDD storage supportato per carichi di lavoro con throughput IOPS intensivo.
    Database relazionale Amazon Aurora, AmazonRDS, Amazon Redshift. Progettato per supportare transazioni ACID (atomicità, coerenza, isolamento, durabilità) e mantenere l'integrità referenziale e una forte coerenza dei dati. Molte applicazioni tradizionali, la pianificazione delle risorse aziendali (ERP), la gestione delle relazioni con i clienti (CRM) e l'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 similiJSON. 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. Le applicazioni IoT e DevOps la telemetria industriale possono utilizzare database di serie temporali.
    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.  
  • Se stai creando una piattaforma dati, sfrutta un'architettura di dati moderna AWS per integrare il tuo data lake, il data warehouse e gli archivi dati 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 e RDS Aurora possono fornire questo livello di integrità.

    • In genere, all'interno di un SQL modello senza dati, i dati vengono denormalizzati in un unico documento o in una raccolta di documenti da recuperare in un'unica richiesta anziché riunirli tra più documenti o tabelle. 

    È richiesta la conformità ACID (atomicità, coerenza, isolamento, durabilità)?
    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) verranno scalati dinamicamente. QLDB

    • 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?
    L'archiviazione e la modifica (OLTP- Elaborazione delle transazioni online) o il recupero e il reporting (OLAP- Elaborazione analitica online) hanno una priorità più elevata?
    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à?
    • Sfruttare Amazon RDS anziché Amazon EC2 e DynamoDB o Amazon DocumentDB anziché ospitare autonomamente SQL un database No può ridurre il sovraccarico operativo.

    Come avviene attualmente l'accesso al database? Si tratta solo di accesso alle applicazioni o ci sono utenti di business intelligence (BI) e altre applicazioni connesse? off-the-shelf
    • In presenza di dipendenze da strumenti esterni, potresti dover mantenere la compatibilità con i database che supportano. Amazon RDS è completamente compatibile con le diverse versioni del motore che supporta, tra cui Microsoft SQL Server, OracleSQL, My e SQL Postgre.

  • 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: