DynamoDB è un database NoSQL com­ple­ta­men­te gestito e senza server, svi­lup­pa­to da Amazon. Il servizio è ap­prez­za­to so­prat­tut­to per la sca­la­bi­li­tà senza in­ter­ru­zio­ni, i tempi di risposta nell’ordine dei mil­li­se­con­di e il minimo sforzo operativo, così come per l’in­te­gra­zio­ne semplice con AWS. I casi d’uso spaziano dallo sviluppo software alla sca­la­bi­li­tà delle piat­ta­for­me di gioco fino allo streaming video in tempo reale.

Cos’è DynamoDB?

Amazon DynamoDB è un servizio di database NoSQL senza server per ap­pli­ca­zio­ni moderne di qualsiasi di­men­sio­ne, di­spo­ni­bi­le dal 2012 tramite AWS (Amazon Web Services). A dif­fe­ren­za di molti prodotti con­cor­ren­ti, è una soluzione com­ple­ta­men­te gestita. Per questo motivo, non è ne­ces­sa­rio pre­oc­cu­par­si di attività come ag­gior­na­men­ti o sca­la­bi­li­tà. Il sistema di gestione del database offre inoltre un ampio re­per­to­rio di fun­zio­na­li­tà di sicurezza e standard di con­for­mi­tà.

Inoltre, DynamoDB si integra per­fet­ta­men­te con altri servizi AWS come Lambda o il servizio Amazon Open­Search.

Managed Database Services
Con­cen­tra­ti sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni fles­si­bi­li 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 dif­fe­ren­za dei database re­la­zio­na­li. DynamoDB di Amazon memorizza i dati in par­ti­zio­ni che vengono replicate au­to­ma­ti­ca­men­te. Ogni par­ti­zio­ne è composta da tre nodi, ognuno dei quali mantiene una copia dei dati, per­met­ten­do una facile sca­la­bi­li­tà e as­si­cu­ran­do la ri­don­dan­za in caso di guasto di un nodo. Gli svi­lup­pa­to­ri e le svi­lup­pa­tri­ci ar­chi­via­no 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 ot­ti­miz­za­re la struttura dei costi e delle pre­sta­zio­ni delle tabelle di DynamoDB. Gli utenti possono scegliere tra due classi e cambiare tra queste due volte in 30 giorni senza tempi di inat­ti­vi­tà, per adattare i costi ai modelli di utilizzo:

  • DynamoDB Standard è pro­get­ta­to come classe di tabelle standard per carichi di lavoro ad alte pre­sta­zio­ni e per tabelle con carichi di lavoro im­pre­ve­di­bi­li. Le tabelle standard si di­stin­guo­no per costi inferiori per ope­ra­zio­ni di lettura e scrittura.
  • DynamoDB Standard In­fre­quent Access è ot­ti­miz­za­to per le tabelle dove lo spazio di ar­chi­via­zio­ne è il prin­ci­pa­le fattore di costo. Le tabelle standard IA si di­stin­guo­no per costi di ar­chi­via­zio­ne 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 con­sen­to­no di creare ap­pli­ca­zio­ni scalabili, altamente di­spo­ni­bi­li e reattive. La sintesi seguente riassume le ca­rat­te­ri­sti­che prin­ci­pa­li:

  • Modelli di dati chiave e documento: il database ha uno schema fles­si­bi­le che consente l’as­se­gna­zio­ne di molti attributi diversi per singoli elementi.
  • Tran­sa­zio­ni ACID: il database NoSQL offre tran­sa­zio­ni con atomicità, con­si­sten­za, iso­la­men­to e du­ra­bi­li­tà (ab­bre­via­to con l’acronimo ACID) per una vasta gamma di ap­pli­ca­zio­ni. Ciò consente di estendere la sca­la­bi­li­tà e le pre­sta­zio­ni di DynamoDB a un più ampio spettro di processi aziendali.
  • Tabelle globali con replica attiva-attiva: le tabelle globali di DynamoDB sono multi-attive, per­met­ten­do agli utenti di scrivere e leggere da ogni replica. La capacità si adatta au­to­ma­ti­ca­men­te ai carichi di lavoro regionali.
  • DynamoDB Streams: la fun­zio­na­li­tà serve a re­gi­stra­re i dati delle modifiche. Quando un elemento viene creato, mo­di­fi­ca­to 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 ef­fet­tua­re query su chiavi al­ter­na­ti­ve. Possono essere im­ple­men­ta­ti op­zio­nal­men­te come indici sparsi per in­di­ciz­za­re solo sot­toin­sie­mi specifici dei dati.
  • Par­ti­zio­na­men­to au­to­ma­ti­co: i dati vengono di­stri­bui­ti au­to­ma­ti­ca­men­te su più par­ti­zio­ni e scalati quando ne­ces­sa­rio.
  • Funzioni di sicurezza: il database offre ampie fun­zio­na­li­tà per garantire la sicurezza dei tuoi dati. Tra queste vi sono controlli di accesso det­ta­glia­ti, crit­to­gra­fia a riposo, ri­pri­sti­no puntuale, backup su richiesta e con­net­ti­vi­tà di rete privata.
  • Modelli di capacità: gli utenti hanno la pos­si­bi­li­tà di scegliere tra una modalità di capacità su richiesta e una modalità di capacità pre­de­fi­ni­ta.
  • DynamoDB Ac­ce­le­ra­tor (DAX): si tratta di un servizio opzionale per un mi­glio­ra­men­to del caching che aumenta le pre­sta­zio­ni fino a dieci volte.

Vantaggi e svantaggi di Amazon DynamoDB

Il servizio NoSQL di Amazon, DynamoDB, convince so­prat­tut­to per i seguenti punti di forza:

  • Sca­la­bi­li­tà au­to­ma­ti­ca: AWS DynamoDB regola di­na­mi­ca­men­te la capacità e il par­ti­zio­na­men­to in base al th­rou­gh­put, con­sen­ten­do una crescita oriz­zon­ta­le il­li­mi­ta­ta.
  • Ar­chi­tet­tu­ra ser­ver­less: il sistema di gestione del database è com­ple­ta­men­te gestito. Ciò consente agli utenti di con­cen­trar­si to­tal­men­te sullo sviluppo delle ap­pli­ca­zio­ni, invece di doversi occupare dell’in­fra­strut­tu­ra di base.
  • Alta di­spo­ni­bi­li­tà: database multi-regione e replica au­to­ma­ti­ca ga­ran­ti­sco­no una di­spo­ni­bi­li­tà fino al 99,999%.
  • Bassa latenza: il database NoSQL fornisce accessi di lettura e scrittura con latenze nell’ordine dei mil­li­se­con­di. Con DynamoDB Ac­ce­le­ra­tor, i tempi di risposta possono essere ridotti fino a mi­cro­se­con­di.
  • In­te­gra­zio­ne AWS semplice: l’in­te­gra­zio­ne senza soluzione di con­ti­nui­tà con i servizi AWS come Cloud­Watch o Kinesis amplia la fun­zio­na­li­tà di DynamoDB e consente analisi dei dati ag­giun­ti­ve.

Sebbene i vantaggi siano chia­ra­men­te superiori e DynamoDB sia si­cu­ra­men­te tra le migliori al­ter­na­ti­ve a SQL, la piat­ta­for­ma presenta anche alcuni punti deboli. Da un lato, il database offre solo opzioni di query limitate, meno estese rispetto a molte offerte con­cor­ren­ti. D’altra parte, l’in­te­gra­zio­ne stretta con i servizi AWS rende difficile la mi­gra­zio­ne ad altre piat­ta­for­me. Nei modelli on-demand, inoltre, c’è il rischio che i picchi di carico portino a costi im­pre­ve­di­bil­men­te elevati.

Per quali campi di ap­pli­ca­zio­ne è adatto DynamoDB?

DynamoDB è stato pro­get­ta­to ap­po­si­ta­men­te per carichi di lavoro in cui enormi quantità di dati devono essere elaborate, scalate e fornite con latenza molto bassa e alta di­spo­ni­bi­li­tà. Tra i casi d’uso tipici rientrano:

  • Ap­pli­ca­zio­ni web ser­ver­less e back end mobile, dove i dati degli account, le sessioni e le con­fi­gu­ra­zio­ni vengono re­cu­pe­ra­ti con latenza minima
  • Piat­ta­for­me di gioco, dove centinaia di migliaia o milioni di utenti accedono con­tem­po­ra­nea­men­te ai server di gioco
  • Streaming di contenuti per un pubblico globale con traffico dati ir­re­go­la­re o a sbalzi
  • Banche e aziende di servizi fi­nan­zia­ri, che devono elaborare molte tran­sa­zio­ni si­mul­ta­nea­men­te e in tempo reale, af­fron­tan­do la sfida di garantire l’attualità e la sicurezza delle tran­sa­zio­ni fi­nan­zia­rie
  • Ap­pli­ca­zio­ni IoT (IoT = Internet delle cose), che elaborano e me­mo­riz­za­no dati dei sensori su larga scala

Le prin­ci­pa­li al­ter­na­ti­ve a DynamoDB

Oltre a DynamoDB, esistono altri sistemi di database che, a seconda delle esigenze, del modello di dati, della sca­la­bi­li­tà e dell’in­fra­strut­tu­ra, possono rap­pre­sen­ta­re un’al­ter­na­ti­va. Tra questi, ci sono so­prat­tut­to:

  • MongoDB: elevata fles­si­bi­li­tà e sca­la­bi­li­tà il­li­mi­ta­ta
  • MySQL: sistema re­la­zio­na­le con di­spo­ni­bi­li­tà ec­cel­len­te
  • MariaDB: al­ter­na­ti­va open source a DynamoDB
  • Post­gre­SQL: soluzione di database re­la­zio­na­le con supporto per tipi di dati non re­la­zio­na­li
  • Firebase di Google: un’al­ter­na­ti­va ec­cel­len­te, so­prat­tut­to per ap­pli­ca­zio­ni mobili e web
  • Apache Cassandra: par­ti­co­lar­men­te adatto per grandi volumi di dati
Vai al menu prin­ci­pa­le