DynamoDB è un database NoSQL completamente gestito e senza server, sviluppato da Amazon. Il servizio è apprezzato soprattutto per la scalabilità senza interruzioni, i tempi di risposta nell’ordine dei millisecondi e il minimo sforzo operativo, così come per l’integrazione semplice con AWS. I casi d’uso spaziano dallo sviluppo software alla scalabilità delle piattaforme di gioco fino allo streaming video in tempo reale.

Cos’è DynamoDB?

Amazon DynamoDB è un servizio di database NoSQL senza server per applicazioni moderne di qualsiasi dimensione, disponibile dal 2012 tramite AWS (Amazon Web Services). A differenza di molti prodotti concorrenti, è una soluzione completamente gestita. Per questo motivo, non è necessario preoccuparsi di attività come aggiornamenti o scalabilità. Il sistema di gestione del database offre inoltre un ampio repertorio di funzionalità di sicurezza e standard di conformità.

Inoltre, DynamoDB si integra perfettamente con altri servizi AWS come Lambda o il servizio Amazon OpenSearch.

Managed Database Services
Concentrati sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni flessibili e su misura
  • Data center situati in Europa

La struttura di DynamoDB

La struttura del database presenta una chiara gerarchia con tabelle come entità superiori, tra le quali non esistono relazioni rigide, a differenza dei database relazionali. DynamoDB di Amazon memorizza i dati in partizioni che vengono replicate automaticamente. Ogni partizione è composta da tre nodi, ognuno dei quali mantiene una copia dei dati, permettendo una facile scalabilità e assicurando la ridondanza in caso di guasto di un nodo. Gli sviluppatori e le sviluppatrici archiviano i record sotto forma di attributi e assegnano loro una chiave primaria univoca. Il database supporta sia i modelli di dati Key-Value sia i modelli orientati ai documenti.

Classi di tabelle in AWS DynamoDB

Le classi di tabelle aiutano a ottimizzare la struttura dei costi e delle prestazioni delle tabelle di DynamoDB. Gli utenti possono scegliere tra due classi e cambiare tra queste due volte in 30 giorni senza tempi di inattività, per adattare i costi ai modelli di utilizzo:

  • DynamoDB Standard è progettato come classe di tabelle standard per carichi di lavoro ad alte prestazioni e per tabelle con carichi di lavoro imprevedibili. Le tabelle standard si distinguono per costi inferiori per operazioni di lettura e scrittura.
  • DynamoDB Standard Infrequent Access è ottimizzato per le tabelle dove lo spazio di archiviazione è il principale fattore di costo. Le tabelle standard IA si distinguono per costi di archiviazione inferiori. Questa classe ben si adatta anche a tabelle con dati a cui si accede raramente.

Quali funzioni offre DynamoDB?

DynamoDB offre una vasta gamma di funzioni potenti che consentono di creare applicazioni scalabili, altamente disponibili e reattive. La sintesi seguente riassume le caratteristiche principali:

  • Modelli di dati chiave e documento: il database ha uno schema flessibile che consente l’assegnazione di molti attributi diversi per singoli elementi.
  • Transazioni ACID: il database NoSQL offre transazioni con atomicità, consistenza, isolamento e durabilità (abbreviato con l’acronimo ACID) per una vasta gamma di applicazioni. Ciò consente di estendere la scalabilità e le prestazioni di DynamoDB a un più ampio spettro di processi aziendali.
  • Tabelle globali con replica attiva-attiva: le tabelle globali di DynamoDB sono multi-attive, permettendo agli utenti di scrivere e leggere da ogni replica. La capacità si adatta automaticamente ai carichi di lavoro regionali.
  • DynamoDB Streams: la funzionalità serve a registrare i dati delle modifiche. Quando un elemento viene creato, modificato o eliminato in una tabella, DynamoDB Streams registra l’evento e lo conserva per 24 ore.
  • Indici secondari: DynamoDB consente sia indici secondari locali che globali, per effettuare query su chiavi alternative. Possono essere implementati opzionalmente come indici sparsi per indicizzare solo sottoinsiemi specifici dei dati.
  • Partizionamento automatico: i dati vengono distribuiti automaticamente su più partizioni e scalati quando necessario.
  • Funzioni di sicurezza: il database offre ampie funzionalità per garantire la sicurezza dei tuoi dati. Tra queste vi sono controlli di accesso dettagliati, crittografia a riposo, ripristino puntuale, backup su richiesta e connettività di rete privata.
  • Modelli di capacità: gli utenti hanno la possibilità di scegliere tra una modalità di capacità su richiesta e una modalità di capacità predefinita.
  • DynamoDB Accelerator (DAX): si tratta di un servizio opzionale per un miglioramento del caching che aumenta le prestazioni fino a dieci volte.

Vantaggi e svantaggi di Amazon DynamoDB

Il servizio NoSQL di Amazon, DynamoDB, convince soprattutto per i seguenti punti di forza:

  • Scalabilità automatica: AWS DynamoDB regola dinamicamente la capacità e il partizionamento in base al throughput, consentendo una crescita orizzontale illimitata.
  • Architettura serverless: il sistema di gestione del database è completamente gestito. Ciò consente agli utenti di concentrarsi totalmente sullo sviluppo delle applicazioni, invece di doversi occupare dell’infrastruttura di base.
  • Alta disponibilità: database multi-regione e replica automatica garantiscono una disponibilità fino al 99,999%.
  • Bassa latenza: il database NoSQL fornisce accessi di lettura e scrittura con latenze nell’ordine dei millisecondi. Con DynamoDB Accelerator, i tempi di risposta possono essere ridotti fino a microsecondi.
  • Integrazione AWS semplice: l’integrazione senza soluzione di continuità con i servizi AWS come CloudWatch o Kinesis amplia la funzionalità di DynamoDB e consente analisi dei dati aggiuntive.
Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7

Sebbene i vantaggi siano chiaramente superiori e DynamoDB sia sicuramente tra le migliori alternative a SQL, la piattaforma presenta anche alcuni punti deboli. Da un lato, il database offre solo opzioni di query limitate, meno estese rispetto a molte offerte concorrenti. D’altra parte, l’integrazione stretta con i servizi AWS rende difficile la migrazione ad altre piattaforme. Nei modelli on-demand, inoltre, c’è il rischio che i picchi di carico portino a costi imprevedibilmente elevati.

Per quali campi di applicazione è adatto DynamoDB?

DynamoDB è stato progettato appositamente per carichi di lavoro in cui enormi quantità di dati devono essere elaborate, scalate e fornite con latenza molto bassa e alta disponibilità. Tra i casi d’uso tipici rientrano:

  • Applicazioni web serverless e back end mobile, dove i dati degli account, le sessioni e le configurazioni vengono recuperati con latenza minima
  • Piattaforme di gioco, dove centinaia di migliaia o milioni di utenti accedono contemporaneamente ai server di gioco
  • Streaming di contenuti per un pubblico globale con traffico dati irregolare o a sbalzi
  • Banche e aziende di servizi finanziari, che devono elaborare molte transazioni simultaneamente e in tempo reale, affrontando la sfida di garantire l’attualità e la sicurezza delle transazioni finanziarie
  • Applicazioni IoT (IoT = Internet delle cose), che elaborano e memorizzano dati dei sensori su larga scala

Le principali alternative a DynamoDB

Oltre a DynamoDB, esistono altri sistemi di database che, a seconda delle esigenze, del modello di dati, della scalabilità e dell’infrastruttura, possono rappresentare un’alternativa. Tra questi, ci sono soprattutto:

  • MongoDB: elevata flessibilità e scalabilità illimitata
  • MySQL: sistema relazionale con disponibilità eccellente
  • MariaDB: alternativa open source a DynamoDB
  • PostgreSQL: soluzione di database relazionale con supporto per tipi di dati non relazionali
  • Firebase di Google: un’alternativa eccellente, soprattutto per applicazioni mobili e web
  • Apache Cassandra: particolarmente adatto per grandi volumi di dati
Hai trovato questo articolo utile?
Vai al menu principale