PERF04-BP04 Scelta dello spazio di archiviazione dei dati in base ai modelli di accesso
Utilizza gli schemi di accesso del carico di lavoro per decidere quali servizi e tecnologie utilizzare. Oltre ai requisiti non funzionali, come le prestazioni e il dimensionamento, i modelli di accesso influenzano pesantemente la scelta del database e delle soluzioni di archiviazione. La prima dimensione è data da necessità di transazioni, conformità ACID e letture coerenti. Non tutti i database supportano queste caratteristiche e la maggior parte dei database NoSQL fornisce un modello di consistenza eventuale. La seconda dimensione importante è la distribuzione delle scritture e delle letture nel tempo e nello spazio. Le applicazioni distribuite a livello globale devono considerare i modelli di traffico, la latenza e i requisiti di accesso per identificare la soluzione di archiviazione ottimale. Il terzo aspetto cruciale da scegliere è la flessibilità dei modelli di query, i modelli di accesso casuale e le query una tantum. Occorre inoltre tenere conto delle funzionalità di query altamente specializzate per l'elaborazione del testo e del linguaggio naturale, delle serie temporali e dei grafici.
Risultato desiderato: l'archiviazione di dati è stata selezionata in base a modelli di accesso ai dati identificati e documentati. Ciò potrebbe includere le query di lettura, scrittura e cancellazione più comuni, la necessità di calcoli e aggregazioni ad hoc, la complessità dei dati, l'interdipendenza dei dati e le esigenze di coerenza richieste.
Anti-pattern comuni:
-
È sufficiente selezionare un solo fornitore di database per semplificare la gestione delle operazioni.
-
Ritieni che gli schemi di accesso ai dati rimarranno coerenti nel tempo.
-
Implementi transazioni complesse, rollback e logica di coerenza nell'applicazione.
-
Il database è configurato per supportare un potenziale burst di traffico elevato, che fa sì che le risorse del database rimangano inattive per la maggior parte del tempo.
-
Utilizzo di un database condiviso per usi transazionali e analitici.
Vantaggi dell'adozione di questa best practice: la selezione e l'ottimizzazione dell'archiviazione dei dati in base ai modelli di accesso contribuirà a ridurre la complessità dello sviluppo e a ottimizzare le opportunità di prestazione. Capire quando utilizzare le repliche di lettura, le tabelle globali, il partizionamento dei dati e la memorizzazione nella cache, ti aiuterà a ridurre i costi operativi e a effettuare il dimensionamento in base alle esigenze del carico di lavoro.
Livello di rischio associato se questa best practice non fosse adottata: Medium
Guida all'implementazione
Identifica e valuta il modello di accesso ai dati per selezionare la configurazione di archiviazione corretta. Ogni soluzione di database dispone di opzioni per configurare e ottimizzare la soluzione di archiviazione. Utilizza i parametri e i registri raccolti e sperimenta le opzioni per trovare la configurazione ottimale. Utilizza la tabella seguente per esaminare le opzioni di archiviazione per ogni servizio di database.
Servizi AWS | Amazon RDS, Amazon Aurora | Amazon DynamoDB | Amazon DocumentDB | Amazon ElastiCache | Amazon Neptune | Amazon Timestream | Amazon Keyspaces | Amazon QLDB |
---|---|---|---|---|---|---|---|---|
Dimensionamento dello spazio di archiviazione | L'opzione di dimensionamento automatico dello spazio di archiviazione è disponibile per dimensionare automaticamente lo spazio di archiviazione allocato. La capacità di IOPS allocata può essere dimensionata anche indipendentemente dallo spazio di archiviazione allocato quando si sfruttano i tipi di spazio di archiviazione IOPS allocati. | Dimensionamento automatico. Le tabelle non hanno vincoli di dimensione. | Opzione di dimensionamento automatico dello spazio di archiviazione disponibile per dimensionare lo spazio di archiviazione allocato | Spazio di archiviazione in memoria, legato al tipo o al numero di istanze | Opzione di dimensionamento automatico dello spazio di archiviazione disponibile per dimensionare automaticamente lo spazio di archiviazione allocato | Configura il periodo di conservazione per i livelli in memoria e magnetici nei giorni | Aumenta e diminuisce automaticamente lo spazio di archiviazione della tabella | Dimensionamento automatico. Le tabelle non hanno vincoli di dimensione. |
Passaggi dell'implementazione:
-
Identifica e documenta la crescita prevista dei dati e del traffico.
-
Amazon RDS e Aurora supportano l'aumento automatico dello spazio di archiviazione fino ai limiti documentati. Oltre a questo, si può prendere in considerazione la transizione dei dati più vecchi verso Amazon S3 per l'archiviazione, l'aggregazione dei dati storici per l'analisi o la scalabilità orizzontale tramite partizioni.
-
DynamoDB e Amazon S3 dimensioneranno automaticamente fino a raggiungere un volume di archiviazione quasi illimitato.
-
I database e le istanze Amazon RDS in esecuzione su EC2 possono essere ridimensionati manualmente e le istanze EC2 possono avere nuovi volumi EBS aggiunti in un secondo momento per ottenere ulteriore spazio di archiviazione.
-
I tipi di istanza possono essere modificati in base alle variazioni dell'attività. Ad esempio, puoi iniziare con un'istanza più piccola durante i test, per poi dimensionare l'istanza quando inizi a ricevere traffico di produzione verso il servizio. Aurora Serverless V2 si riduce orizzontalmente in modo automatico in risposta alle modifiche nel carico.
-
-
Documenta i requisiti relativi alle prestazioni normali e di picco (transazioni al secondo TPS e query al secondo QPS) e alla consistenza (ACID e consistenza eventuale).
-
Documenta gli aspetti di implementazione della soluzione e i requisiti di accesso al database (globale, Mult-AZ, replica in lettura, nodi di scrittura multipli)
Livello di impegno per il piano di implementazione: se non disponi di registri o parametri per la tua soluzione di gestione dei dati, devi completarli prima di identificare e documentare i modelli di accesso ai dati. Una volta compreso il modello di accesso ai dati, la selezione e la configurazione dello spazio di archiviazione dei dati è un basso livello di impegno
Risorse
Documenti correlati:
Video correlati:
Esempi correlati: