Accelerazione in memoria con DynamoDB Accelerator (DAX) - Amazon DynamoDB

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à.

Accelerazione in memoria con DynamoDB Accelerator (DAX)

Amazon DynamoDB è progettato per dimensionamento e prestazioni. Nella maggior parte dei casi, i tempi di risposta di DynamoDB possono essere misurati nell'ordine di millisecondi a una cifra. Tuttavia, alcuni casi d'uso richiedono tempi di risposta nell'ordine di microsecondi. Per questi casi d'uso, DynamoDB Accelerator (DAX) offre tempi di risposta rapidi per l'accesso a dati a consistenza finale.

DAX è un servizio di memorizzazione nella cache compatibile con DynamoDB che permette di trarre vantaggio da rapide prestazioni in memoria per le applicazioni più complesse. DAX affronta tre scenari principali:

  1. Come cache in memoria, DAX riduce in misura esponenziale i tempi di risposta dei carichi di lavoro di lettura a consistenza finale, da millisecondi a una cifra a microsecondi.

  2. DAX riduce la complessità operativa e dell'applicazione fornendo un servizio gestito compatibile con DynamoDB a livello di API e di conseguenza richiede solo modifiche funzionali minime per l'uso con un'applicazione esistente.

  3. Per carichi di lavoro gravosi in lettura o con lunghi intervalli di inattività, DAX offre velocità effettiva maggiore e possibili risparmi sui costi operativi riducendo la necessità di una assegnazione eccessiva di unità di capacità di lettura. Questa caratteristica è particolarmente vantaggiosa per le applicazioni che richiedono letture ripetute per singole chiavi.

DAX supporta la crittografia lato server. Con la crittografia a riposo, i dati persistenti da DAX su disco verranno crittografati. DAX; scrive i dati sul disco durante la propagazione delle modifiche dal nodo primario alle repliche di lettura. Per ulteriori informazioni, consulta Crittografia DAX dei dati inattivi.

DAX inoltre supporta la crittografia in transito, garantendo che tutte le richieste e le risposte tra l'applicazione e il cluster siano crittografate tramite TLS (Transport Level Security) e che le connessioni al cluster possano essere autenticate mediante la verifica di un certificato cluster x509. Per ulteriori informazioni, consulta Crittografia DAX in transito.

Casi d'uso per DAX

DAX permette di accedere a dati a consistenza finale da tabelle DynamoDB con latenza nell'ordine di microsecondi. Un cluster DAX multi-AZ può gestire milioni di richieste al secondo.

DAX è l'ideale per i seguenti tipi di applicazioni:

  • Applicazioni che richiedono il tempo di risposta minore possibile per le letture. Alcuni esempi includono applicazioni di aste in tempo reale, videogiochi, social e trading. DAX offre prestazioni di lettura in memoria rapide per questi casi d'uso.

  • Applicazioni che leggono un numero ridotto di item più spesso di altri. Ad esempio, considera un sistema di e-commerce che organizza la vendita per un solo giorno di un prodotto molto richiesto. Durante la vendita, la richiesta del prodotto (e dei relativi dati in DynamoDB) aumenta nettamente rispetto a tutti gli altri prodotti. Per ridurre gli impatti di una chiave hot e una distribuzione non uniforme del traffico, è possibile eseguire l'offload dell'attività di lettura in una cache DAX fino al termine della vendita della durata di un giorno.

  • Applicazioni con attività di lettura intensiva, ma anche sensibili ai costi. Con DynamoDB, è possibile assegnare il numero di letture al secondo richieste dall'applicazione. Se l'attività di lettura aumenta, puoi aumentare il throughput di lettura assegnato delle tabelle (a un costo aggiuntivo). Oppure, è possibile eseguire l'offload dell'attività dall'applicazione a un cluster DAX e ridurre il numero di unità di capacità di lettura che altrimenti si dovrebbe acquistare.

  • Applicazioni che richiedono letture ripetute su set di dati di grandi dimensioni. Un'applicazione di questo tipo può sottrarre risorse del database ad altre applicazioni. Ad esempio, un'analisi a esecuzione prolungata dei dati meteo regionali può temporaneamente utilizzare tutta la capacità di lettura di una tabella DynamoDB. e di conseguenza avere un impatto negativo sulle applicazioni che devono poter accedere agli stessi dati. Con DAX, l'analisi dei dati meteo può invece essere eseguita sui dati memorizzati nella cache.

DAX non è adatto ai seguenti tipi di applicazioni:

  • Applicazioni che richiedono letture consistenti assolute o che non possono tollerare letture consistenti finali.

  • Applicazioni che non richiedono tempi di risposta nell'ordine di microsecondi per le letture o che non devono eseguire l'offload di attività di lettura ripetute dalle tabelle sottostanti.

  • Applicazioni che richiedono un uso intensivo di scrittura. Un volume elevato di scritture porta a una maggiore replica tra i nodi DAX di un cluster. Ciò causa un maggiore consumo di risorse e il rischio di problemi di disponibilità.

  • Applicazioni senza molte letture ripetute. DAX offre prestazioni ottimali quando le percentuali di accesso alla cache superano il 90%. Le percentuali di accesso alla cache inferiori aumentano gli errori nella cache, il che consuma più risorse nel cluster DAX.

Note per l'utilizzo di DAX

  • Per un elenco delle AWS regioni in cui è disponibile DAX, consulta i prezzi di Amazon DynamoDB.

  • DAX supporta applicazioni scritte in Go, Java, Node.js, Python e.NET, AWS utilizzando client forniti per tali linguaggi di programmazione.

  • DAX è disponibile solo per la piattaforma EC2-VPC.

  • La policy del ruolo di servizio del cluster DAX deve consentire l'operazione dynamodb:DescribeTable per conservare i metadati relativi alla tabella DynamoDB.

  • I cluster DAX mantengono i metadati sui nomi degli attributi degli elementi da archiviare. e tali metadati sono mantenuti a tempo indeterminato (anche dopo che l'item è scaduto o è stato eliminato dalla cache). Le applicazioni che utilizzano un numero illimitato di nomi di attributi possono col tempo causare il riempimento totale della memoria nel cluster DAX. Questo limite si applica solo ai nomi di attributi di primo livello, non ai nomi di attributi nidificati. Esempi di nomi di attributi di primo livello problematici, compresi timestamp, UUID e ID di sessione.

    Questo limite si applica solo ai nomi di attributi, non ai loro valori. Item simile al seguente non sono un problema.

    { "Id": 123, "Title": "Bicycle 123", "CreationDate": "2017-10-24T01:02:03+00:00" }

    Ma item simili al seguente sono un problema se sono in numero sufficiente e ciascuno ha un timestamp diverso.

    { "Id": 123, "Title": "Bicycle 123", "2017-10-24T01:02:03+00:00": "created" }