Funzionalità di Amazon DynamoDB

Perché DynamoDB?

Amazon DynamoDB è un servizio di database NoSQL serverless che supporta i modelli di dati chiave-valore e documento. Gli sviluppatori possono utilizzare DynamoDB per creare applicazioni serverless moderne che possono partire da piccole applicazioni e scalare a livello globale. DynamoDB scala per supportare tabelle di qualsiasi dimensione con scalabilità orizzontale automatizzata.

Disponibilità, durabilità e tolleranza ai guasti sono funzionalità integrate che non possono essere disattivate, per cui non è necessario progettare le applicazioni affinché dispongano di tali funzionalità.

Amazon DynamoDB è progettato per eseguire applicazioni Internet a prestazioni elevate che altrimenti sovraccaricherebbero i database relazionali tradizionali. Con oltre dieci anni di investimenti pionieristici nell'innovazione, DynamoDB offre scalabilità illimitata con prestazioni costanti in millisecondi e disponibilità fino al 99,999%.

Per conoscere le nuove funzioni e funzionalità, visita il feed novità di DynamoDB.

Prestazioni serverless con scalabilità illimitata

DynamoDB supporta sia i modelli di dati di tipo documento sia quelli di tipo chiave-valore Essendo un database NoSQL, DynamoDB dispone di uno schema flessibile in modo che ogni elemento possa avere più attributi diversi. In questo modo è possibile adattare facilmente le tabelle alle esigenze mutevoli legate al tuo business, senza dover ridefinire lo schema della tabella come si farebbe invece nei database relazionali.

Con DynamoDB, non ci sono server da predisporre, gestire e ai quali applicare patch e non è necessario installare o gestire alcun software. DynamoDB non dispone di versioni (principali, secondarie o patch), non ci sono finestre di manutenzione e offre un tempo di inattività pari a zero. I prezzi on demand di DynamoDB sono con pagamento in base al consumo, scalano fino a zero, scalano automaticamente le tabelle per adattarle alla capacità e mantengono le prestazioni senza alcuna necessità di amministrazione.

DynamoDB è progettato per carichi di lavoro mission-critical, incluso il supporto per transazioni di atomicità, consistenza, isolamento e durabilità (ACID) per applicazioni che richiedono una logica di business complessa. DynamoDB offre supporto nativo lato server per le transazioni, semplificando allo sviluppatore l'esperienza di realizzare modifiche coordinate di tipo "tutto o niente" a più elementi all'interno delle tabelle o tra le tabelle.

DynamoDB supporta 100 operazioni per transazione, migliorando la produttività degli sviluppatori. Grazie al supporto per le transazioni, gli sviluppatori possono estendere le dimensioni e i vantaggi aziendali di DynamoDB a un set più ampio di carichi di lavoro mission-critical.

Le tabelle globali di DynamoDB forniscono la replica attiva-attiva dei dati nelle regioni AWS di tua scelta con una disponibilità del 99,999%. Le tabelle globali sono multi-attive, il che significa che è possibile leggere e scrivere da qualsiasi replica e le applicazioni distribuite a livello globale possono accedere ai dati in locale nelle regioni selezionate per ottenere prestazioni di lettura e scrittura a una cifra in millisecondi.

Inoltre, le tabelle globali dimensionano automaticamente la capacità per soddisfare i carichi di lavoro multi-regione. Le tabelle globali migliorano la resilienza multi-regione dell'applicazione e devono essere considerate parte della strategia di continuità aziendale dell'organizzazione.

Flussi DynamoDB è una funzionalità di acquisizione dei dati delle modifiche. Ogni volta che un'applicazione crea, aggiorna o elimina elementi in una tabella, Flussi DynamoDB registra una sequenza ordinata nel tempo di ogni modifica a livello di elemento in tempo quasi reale, il che lo rende ideale per le applicazioni con architettura basata sugli eventi per utilizzare e agire sulle modifiche. Tutte le modifiche vengono deduplicate e conservate per 24 ore.

Le applicazioni possono anche accedere a questo log e visualizzare gli elementi di dati come apparivano prima e dopo la modifica quasi in tempo reale. Flussi DynamoDB garantisce che ogni record di flusso appaia esattamente una volta nel flusso e per ogni elemento modificato, i record del flusso appaiano nella stessa sequenza delle modifiche effettive all'elemento.

Analogamente a tutti gli altri sistemi di database, si inizia creando una tabella, ovvero una raccolta di elementi. Con DynamoDB, ogni elemento della tabella ha la sua chiave primaria. Molte applicazioni possono anche trarre vantaggio dalla disponibilità di una o più chiavi secondarie per cercare in modo più efficiente i dati utilizzando altri attributi. DynamoDB offre la possibilità di creare indici secondari globali e locali, che consentono di eseguire query sui dati nella tabella utilizzando una chiave secondaria o alternativa.

Gli indici secondari globali sono noti anche come indici sparsi. Oltre a offrire la massima flessibilità su come accedere ai dati, è possibile fornire un throughput di scrittura inferiore con prestazioni eccellenti a un costo ridotto.

Sicurezza e affidabilità

Con DynamoDB, non vengono utilizzati nome utente o password. DynamoDB utilizza AWS Identity and Access Management (IAM) per autenticare, creare e accedere alle risorse. È possibile specificare policy IAM, policy basate su ricerche e condizioni che consentono un accesso granulare, limitando l'accesso in lettura o scrittura a elementi e attributi specifici in una tabella, in base all'identità dell'utente. Ciò consente ai clienti di applicare le policy di sicurezza a livello di codice.

DynamoDB crittografa tutti i dati a riposo dei clienti per impostazione predefinita. La crittografia dei dati a riposo migliora la sicurezza dei dati utilizzando chiavi di crittografia memorizzate nel Servizio AWS di gestione delle chiavi (AWS KMS). Con l'aggiunta dell'SDK per la crittografia del database AWS, puoi eseguire la crittografia a livello di attributo per applicare ulteriormente il controllo granulare degli accessi ai dati all'interno della tabella. DynamoDB consente di creare applicazioni ad alto livello di sicurezza che richiedono conformità crittografica e requisiti normativi elevati.

Le chiavi di crittografia forniscono un ulteriore livello di protezione dei dati proteggendo i dati dall'accesso non autorizzato all’archiviazione sottostante. Puoi specificare se, per crittografare i dati utente, DynamoDB deve utilizzare una chiave di proprietà di AWS (tipo di crittografia predefinito), una chiave gestita da AWS o una chiave gestita dal cliente. La crittografia predefinita che utilizza le chiavi AWS KMS è fornita senza costi aggiuntivi.

Il ripristino point-in-time (PITR) permette di proteggere le tabelle DynamoDB da operazioni di scrittura o eliminazione accidentali. Il PITR esegue backup continui dei dati della tabella DynamoDB e consente di recuperare la tabella in un qualsiasi momento, con precisione al secondo, negli ultimi 35 giorni.

PITR non utilizza la capacità assegnata e non ha alcun impatto sulle prestazioni o sulla disponibilità delle applicazioni. L'abilitazione di PITR o l'iniziazione di operazioni di backup e ripristino possono essere eseguite con un semplice passaggio nella Console di gestione AWS o con una singola chiamata API.

La caratteristica di backup e ripristino on demand consente di creare backup completi dei dati delle tabelle DynamoDB per l'archiviazione dei dati, permettendo di soddisfare i requisiti normativi aziendali e governativi. È possibile eseguire il backup di tabelle con dimensioni comprese tra pochi megabyte e centinaia di terabyte senza nessun impatto sulle prestazioni e sulla disponibilità delle applicazioni di produzione. Con l'integrazione con Backup AWS, è anche possibile copiare i backup on demand tra account e regioni, creare i tag per i backup all'allocazione dei costi e trasferire i backup nello spazio di archiviazione a freddo.

DynamoDB supporta endpoint cloud privato virtuale (VPC) di gateway ed endpoint VPC di interfaccia per connessioni all'interno di un VPC o da data center on-premises. È possibile configurare la connettività di rete privata dalle applicazioni on-premise a DynamoDB tramite endpoint VPC di interfaccia abilitati con AWS PrivateLink. Ciò consente ai clienti di semplificare la connettività privata a DynamoDB e mantenere la conformità.

Costi contenuti

DynamoDB offre modalità di capacità per ogni tabella: on demand e assegnata.

  • Per i carichi di lavoro meno prevedibili per i quali non è garantito un utilizzo elevato, la modalità capacità on demand gestisce la capacità per tuo conto e si paga solo in base al consumo.
  • Le tabelle che utilizzano la capacità assegnata richiedono che venga impostata la capacità di lettura e scrittura. La modalità di capacità assegnata è più efficace in termini di costi quando è garantito un utilizzo in linea alle previsioni. 

Per le tabelle che utilizzano la modalità capacità on demand, DynamoDB adatta automaticamente i carichi di lavoro a qualsiasi livello di traffico precedentemente raggiunto. Se un livello di traffico del carico di lavoro raggiunge un nuovo picco, DynamoDB adatta rapidamente il carico di lavoro. È inoltre possibile configurare la throughput massima in lettura o scrittura (o entrambi) per le singole tabelle on demand e gli indici secondari associati, semplificando il bilanciamento tra costi e prestazioni. Puoi utilizzare la modalità capacità on demand per le tabelle nuove e per quelle esistenti e puoi continuare a utilizzare le API DynamoDB esistenti senza apportare modifiche al codice.

Per i dati a cui si accede raramente, puoi utilizzare la classe di tabella Amazon DynamoDB Standard-IA, che aiuta a ridurre i costi di DynamoDB fino al 60%. Il costo di archiviazione ridotto delle tabelle Standard-IA è progettato per l'archiviazione a lungo termine di dati a cui si accede raramente, come log delle applicazioni, dati storici di gioco, vecchi post sui social media e altro ancora. Ha le stesse disponibilità, durabilità e prestazioni delle tabelle Standard Amazon DynamoDB, che è l'opzione predefinita e più conveniente per la maggior parte dei carichi di lavoro.

Per le tabelle che utilizzano la capacità assegnata, DynamoDB offre il dimensionamento automatico del throughput e dell'archiviazione in base alla capacità precedentemente impostata, monitorando l'utilizzo delle prestazioni dell'applicazione.

  • Se il traffico dell'applicazione cresce, DynamoDB aumenta il throughput per adattare il carico.
  • Se il traffico dell'applicazione diminuisce, DynamoDB riduce il throughput consentendoti di pagare meno dato che la capacità non è stata utilizzata.

Integrazioni con i servizi AWS

Importazione e esportazione in blocco da Amazon Simple Storage Service (Amazon S3) consente di ottenere più valore dai dati eliminando la necessità di scrivere codice per spostare, trasformare e copiare le tabelle DynamoDB da un'applicazione, un account o una regione all'altra. Importazione ed esportazione in blocco non utilizza la capacità di lettura o scrittura della tabella, quindi non è necessario pianificare o fornire capacità aggiuntiva. Il processo di importazione ed esportazione in blocco è completamente gestito da DynamoDB.

Le importazioni in blocco da Amazon S3 consentono di importare dati su qualsiasi scala, da megabyte a terabyte, utilizzando formati supportati come CSV, DynamoDB JSON e Amazon Ion. Con le importazioni in blocco da Amazon S3, i clienti possono risparmiare fino al 66% rispetto alle scritture basate su client utilizzando la capacità assegnata.

Con le esportazioni in blocco in Amazon S3, puoi esportare dati da tabelle con PITR abilitato per qualsiasi momento negli ultimi 35 giorni con una granularità al secondo. Dopo aver esportato i dati da DynamoDB ad Amazon S3, sarà possibile utilizzare altri servizi AWS come Amazon Athena, Amazon SageMaker e altri per analizzare i dati ed estrarre informazioni utili.

Flusso di dati Amazon Kinesis per DynamoDB acquisisce le modifiche a livello di elemento nelle tabelle DynamoDB per alimentare i pannelli di controllo in tempo reale, generare parametri e fornire dati in data lake. Questa funzionalità consente di creare applicazioni di streaming avanzate come l’aggregazione dei log in tempo reale, l’analisi aziendale in tempo reale e l’acquisizione di dati IoT.

Tramite i flussi di dati Kinesis, puoi utilizzare Amazon Kinesis Data Firehose anche per fornire automaticamente i dati di DynamoDB ad altri servizi AWS come Amazon S3, Servizio OpenSearch di Amazon e Amazon Redshift.

Per monitorare facilmente le prestazioni del database, DynamoDB è integrato con Amazon Cloudwatch, che raccoglie e sviluppa dati non elaborati sulle prestazioni del database. CloudWatch può essere utilizzato per creare viste e pannelli di controllo personalizzati di parametri e allarmi per i database DynamoDB. Questa funzionalità di monitoraggio è offerta di default ed è gratuita. È possibile anche creare allarmi che vengono inviati automaticamente in base alle prestazioni dei parametri.

Contributor Insights di Amazon CloudWatch aiuta a identificare rapidamente chi o cosa sta influenzando i database e le prestazioni delle applicazioni. Questa funzionalità semplifica l'isolamento, la diagnosi e la risoluzione dei problemi durante un evento operativo.

Domande frequenti

I vantaggi esclusivi di DynamoDB includono un database serverless comprovato e completamente gestito, scalabile a zero, che offre prestazioni a una cifra in millisecondi e una disponibilità fino al 99,999%. Con prestazioni costanti su larga scala, DynamoDB offre anche la sicurezza, la durabilità e l'affidabilità integrate necessarie per le applicazioni globali con i requisiti più rigorosi.

Grazie sua facilità d'uso, DynamoDB viene spesso scelto sia per le nuove applicazioni moderne che per le applicazioni consolidate su scala Internet che cercano prestazioni veloci e costanti con una scalabilità illimitata.

DynamoDB è progettato per gli sviluppatori e, poiché è serverless, è molto facile da configurare seguendo la nostra documentazione tecnica.