PERF04-BP04 Scelta dello spazio di archiviazione dei dati in base ai modelli di accesso
Utilizza gli schemi di accesso del carico di lavoro e i requisiti delle applicazioni per decidere i servizi di dati e le tecnologie ottimali da utilizzare.
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 ed eliminazione 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 motore 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 di dati in base ai modelli di accesso contribuirà a ridurre la complessità dello sviluppo e a ottimizzare le opportunità di performance. 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: medio
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.
| AWS Services | Amazon RDS | Amazon Aurora | Amazon DynamoDB | Amazon DocumentDB | Amazon ElastiCache | Amazon Neptune | Amazon Timestream | Amazon Keyspaces | Amazon QLDB |
|---|---|---|---|---|---|---|---|---|---|
| Scaling Storage | Storage can be scaled up manually or configured to scale automatically to a maximum of 64 TiB based on engine types. Provisioned storage cannot be decreased. | Storage scales automatically up to maximum of 128 TiB and decreases when data is removed. Maximum storage size also depends upon specific Aurora MySQL or Aurora Postgres engine versions. | Storage automatically scales. Tables are unconstrained in terms of size. | Storage scales automatically up to maximum of 64 TiB. Starting Amazon DocumentDB 4.0 storage can decrease by comparable amounts for data removal through dropping a collection or index. With Amazon DocumentDB 3.6 allocated space remains same and free space is reused when data volume increases. | Storage is in-memory, tied to instance type or count. | Storage scales automatically can grow up to 128 TiB (or 64 TiB in few Regions). Upon data removal from, total allocated space remains same and is reused in the future. | Organizes your time series data to optimize query processing and reduce storage costs. Retention period can be configured through in-memory and magnetic tiers. | Scales table storage up and down automatically as your application writes, updates, and deletes data. | Storage automatically scales. Tables are unconstrained in terms of size. |
Passaggi dell'implementazione:
-
Comprendere i requisiti delle transazioni, la conformità ACID (atomicità, coerenza, isolamento, durabilità) e le letture consistenti. Non tutti i database supportano queste caratteristiche e la maggior parte dei database NoSQL fornisce un modello di consistenza eventuale.
-
Considerare i modelli di traffico, la latenza e i requisiti di accesso per un'applicazione distribuita globalmente al fine di identificare la soluzione di archiviazione ottimale.
-
Analizzare modelli di query, schemi di accesso casuale e query one-time. 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.
-
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 performance 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 (replica globale, Multi-AZ, replica in lettura e nodi di scrittura multipli).
Livello di impegno per il piano di implementazione: Basso. 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 dell'archiviazione di dati richiede un livello di impegno basso.
Risorse
Documenti correlati:
Video correlati:
Esempi correlati: