Si può usare DynamoDB come cache?
Sì. I lookup chiave-valore rapidi di DynamoDB e il TTL ne fanno una solida cache durevole — per sessioni, token e risultati calcolati. Per letture sotto il millisecondo, abbinalo a DynamoDB Accelerator (DAX), una cache in memoria write-through completamente gestita che si mette davanti alla tabella e restituisce letture eventualmente coerenti in microsecondi senza alcun codice di invalidazione della cache.
DynamoDB come cache durevole
Poiché le letture avvengono per chiave e in millisecondi a una cifra, DynamoDB funziona bene come livello di cache persistente. Il TTL fa scadere le voci obsolete al posto tuo, quindi le sessioni in cache o i risultati precalcolati si ripuliscono da soli.
Aggiungere DAX per i microsecondi
DAX è una cache in memoria che si posiziona davanti a DynamoDB:
- Read-through / write-through — gestisce popolamento e invalidazione al posto tuo.
- Letture in microsecondi — fino a 10 volte meglio sulle letture eventualmente coerenti.
- Compatibile con l'API — modifiche minime all'applicazione.
Quanto costa DAX prima di farti risparmiare
DAX è un acquisto di latenza. Messo in cifre, non inizia a far risparmiare finché non leggi moltissimo.
Un nodo dax.t3.small costa 0,04 $ l'ora in us-east-1, e AWS ne raccomanda almeno tre distribuiti tra zone di disponibilità in produzione, perché tre è il numero che rende un cluster tollerante ai guasti. Fanno 87,60 $ al mese. Una lettura on-demand eventualmente coerente di un Item fino a 4 KB costa 0,0000000625 $, quindi gli stessi 87,60 $ comprano 1,4 miliardi di letture direttamente dalla tabella, o 533 al secondo sostenute per tutto il mese.
Quel numero per giunta favorisce DAX: presuppone che ogni lettura vada a segno nella cache, mentre in pratica ogni miss fattura una lettura sulla tabella in aggiunta al cluster. Un cluster di sviluppo a nodo singolo costa 29,20 $ al mese, ovvero 178 letture al secondo, e AWS sconsiglia meno di tre nodi in produzione dato che un cluster da uno o due nodi può perdere del tutto i dati in cache.
Il TTL è gratuito, e non è puntuale
Far scadere una voce da solo costa un'unità di scrittura; un milione di chiamate a DeleteItem su Item fino a 1 KB costa 0,63 $. Il TTL fa lo stesso lavoro senza consumare throughput di scrittura, ed è l'argomento pratico a suo favore in una cache.
Il problema sono i tempi. AWS elimina gli Item scaduti tipicamente entro pochi giorni dalla scadenza, quindi lo storage continua a fatturare voci che la tua applicazione considera sparite, e il conto segue il ritardo di eliminazione e non il TTL che hai impostato. Metti in cache 1.000 Item al secondo da 1 KB con un TTL di un'ora e l'insieme vivo è 3,4 GB, 0,86 $ al mese; un ritardo di due giorni gli parcheggia accanto 165 GB di voci morte a 41,19 $ al mese. Gli Item scaduti continuano anche a comparire nei risultati di Query e Scan finché non vengono rimossi fisicamente, quindi filtra sull'attributo di scadenza in lettura invece di fidarti.
Quando va bene e quando no
Ottimo per carichi di lavoro con molte letture che tollerano la coerenza eventuale (DAX serve dati eventualmente coerenti). Se ti serve coerenza forte su ogni lettura, vai direttamente alla tabella. Anche i nodi DAX si replicano tra loro in modo eventuale, quindi due client che colpiscono lo stesso cluster possono leggere per un attimo valori diversi per la stessa chiave.
Approfondisci
Leggi TTL di DynamoDB e coerenza in DynamoDB. Scarica DynoTable per ispezionare le tue tabelle di cache.
Riferimenti
- In-memory acceleration with DynamoDB Accelerator (DAX) — Amazon DynamoDB Developer Guide
- DAX: How it works — Amazon DynamoDB Developer Guide
- Using time to live (TTL) in DynamoDB — Amazon DynamoDB Developer Guide
- Sizing your DAX cluster — Amazon DynamoDB Developer Guide — la raccomandazione dei tre nodi in produzione, riverificata il 2026-07-28.
- Amazon DynamoDB pricing — tariffe per ora-nodo DAX e per unità di richiesta.
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.
Costi calcolati il 2026-07-28. La tariffa oraria per nodo DAX è stata letta dalla AWS Price List API (us-east-1, dax.t3.small, 0,040 $) e le tariffe di lettura, scrittura e storage vengono dallo stesso feed che sincronizza il nostro calcolatore dei prezzi; l'aritmetica qui sopra è nostra e ogni suo dato in ingresso è sulla pagina.