Informazioni su Amazon DynamoDB
Cos'è Amazon DynamoDB?
DynamoDB è un servizio di database non relazionale rapido e flessibile per qualsiasi scala. DynamoDB solleva i clienti dagli oneri amministrativi connessi alla gestione e al dimensionamento dei database distribuiti su AWS; non dovranno dunque occuparsi di provisioning di hardware, installazioni e configurazioni, pianificazione della capacità effettiva di trasmissione, repliche, applicazioni di patch software o dimensionamento di cluster.
Quali attività sono gestite da DynamoDB per mio conto?
DynamoDB elimina la principale difficoltà del dimensionamento di database: la gestione del software di database e il provisioning dell'hardware necessario al suo funzionamento. Così è possibile distribuire un database non relazionale in pochi minuti. DynamoDB dimensiona automaticamente la capacità di throughput per soddisfare le richieste dei carichi di lavoro e partiziona e ripartiziona i dati man mano che crescono le dimensioni della tabella. Inoltre, DynamoDB replica simultaneamente i dati su tre strutture in una regione AWS, garantendo così disponibilità e durabilità elevate dei dati.
Archiviazione
Cosa sono le classi di tabelle DynamoDB?
Le classi di tabelle DynamoDB sono opzioni di ottimizzazione delle prestazioni e dei costi per le tabelle DynamoDB. Le due classi di tabelle disponibili sono DynamoDB Standard (classe di tabelle predefinita progettata per carichi di lavoro che richiedono le massime prestazioni e più adatta per tabelle con carichi di lavoro imprevedibili) e DynamoDB Standard-Infrequent Access (classe di tabelle ottimizzata per tabelle in cui l'archiviazione è il costo principale e ideale per tabelle che archiviano dati a cui si accede raramente). Le tabelle Standard hanno costi di lettura e scrittura inferiori ma costi di archiviazione più elevati. Le tabelle Standard-IA hanno costi di archiviazione inferiori ma costi di lettura e scrittura più elevati. È possibile passare da una classe di tabelle all'altra due volte in un periodo di 30 giorni senza tempi di inattività, ottimizzando i costi in base ai modelli di utilizzo della tabella. La scelta tra queste classi dipende dalle esigenze specifiche dell'applicazione e dai modelli di accesso dei dati.
Quali fattori occorre considerare nella scelta di una classe di tabelle?
Ci sono diversi fattori da considerare quando si sceglie una classe di tabelle in DynamoDB. I più comuni sono i modelli di accesso ai dati, le considerazioni sui costi e la prevedibilità dei carichi di lavoro. È possibile passare da una classe di tabelle all'altra senza codifica o tempi di inattività, così da poter modificare la scelta se le esigenze cambiano nel tempo.
Come funzionano le tabelle DynamoDB Standard-IA con le funzionalità DynamoDB esistenti?
Le tabelle DynamoDB Standard-IA (Infrequent Access) funzionano perfettamente con le funzionalità DynamoDB esistenti. Utilizzano le stesse API delle normali tabelle DynamoDB, quindi è possibile utilizzarle con le applicazioni esistenti senza modifiche al codice. Supportano le tabelle globali per la replica in più regioni, il ripristino point-in-time (PITR), i backup su richiesta, la crittografia a riposo tramite il Servizio AWS di gestione delle chiavi (KMS), i flussi DynamoDB, Time To Live per eliminare automaticamente gli elementi e operazioni di lettura e scrittura transazionali. Le tabelle Standard-IA sono compatibili con DynamoDB Accelerator (DAX).
In che modo DynamoDB archivia i dati?
Amazon DynamoDB archivia i dati in partizioni. Una partizione è un'allocazione di archiviazione per una tabella, supportata da unità a stato solido (SSD) e replicata automaticamente su più zone di disponibilità all'interno di una regione AWS. La gestione delle partizioni è effettuata interamente da DynamoDB: l'utente non ha mai la necessità di gestire le partizioni da sé.
Qual è la dimensione massima degli elementi consentita in DynamoDB?
La dimensione massima di un elemento che può essere archiviato in una tabella DynamoDB è di 400 KB. Non ci sono limiti di archiviazione predefiniti.
DynamoDB può archiviare un BLOB (Binary Large Object Storage)?
Sì, DynamoDB può archiviare BLOB; tuttavia, in genere non è adatto all'archiviazione di documenti o immagini. Un modello architettonico migliore consiste nell'archiviare i puntatori agli oggetti Amazon S3 in una tabella DynamoDB.
Per quanto tempo i dati restano in DynamoDB?
Per impostazione predefinita, non è prevista una data di scadenza o cancellazione per i dati archiviati in una tabella Amazon DynamoDB. Questi rimarranno nella tabella a tempo indeterminato a meno che non vengano eliminati esplicitamente dal cliente o tramite Time to Live (TTL), se abilitato.
Quanti elementi è possibile archiviare in DynamoDB?
Non esiste un limite predefinito al numero di elementi che è possibile archiviare in una tabella DynamoDB. DynamoDB è scalabile fino a centinaia di terabyte o più di dati su qualsiasi numero di elementi.
È possibile archiviare immagini in DynamoDB?
Sebbene sia tecnicamente possibile archiviare immagini in DynamoDB come dati binari (con codifica base64), ci sono alcune limitazioni e inconvenienti dovuti alla dimensione limite degli elementi di 400 KB. Invece di archiviare le immagini direttamente in DynamoDB, una pratica migliore è archiviare le immagini in Amazon S3 (Simple Storage Service) e quindi archiviare l'URL o la chiave dell'oggetto S3 in DynamoDB.
È possibile archiviare elenchi in DynamoDB?
Per archiviare un elenco in DynamoDB, è necessario utilizzare uno dei tipi di dati degli elenchi di DynamoDB: un elenco o un set. Scrivendo elementi nella tabella, il valore di quell'attributo può essere una serie o una raccolta di tipi di dati scalari (non oggetto) come stringhe, numeri ecc. DynamoDB si occuperà automaticamente della serializzazione dei dati dell'elenco e della loro memorizzazione in modo da mantenere la struttura dell'elenco. È quindi possibile interrogare l'attributo della tabella per recuperare l'elenco completo. L'aggiunta, l'aggiornamento o la rimozione di elementi dall'elenco funziona allo stesso modo di una normale operazione di scrittura.
DynamoDB può archiviare una mappa?
Sì, DynamoDB supporta l'archiviazione delle mappe come tipo di dati di attributo.
Sicurezza e controllo
Amazon DynamoDB supporta le autorizzazioni AWS Identity and Access Management (IAM)?
Sì, DynamoDB supporta le autorizzazioni IAM. È possibile definire le autorizzazioni IAM in policy basate sull'identità, policy basate sulle risorse o altre policy AWS per controllare l'accesso alle risorse DynamoDB. È possibile allegare policy IAM a utenti, gruppi, ruoli e tabelle e flussi IAM DynamoDB e controllarle a proprio piacimento.
Cos'è AWS PrivateLink per Amazon DynamoDB?
Con AWS PrivateLink, è possibile semplificare la connettività di rete privata tra cloud privati virtuali (VPC), DynamoDB e i data center on-premises utilizzando endpoint VPC di interfaccia e indirizzi IP privati. Con PrivateLink, è possibile accedere alle tabelle DynamoDB da una connessione privata e le richieste non escono dalla rete Amazon, con un miglioramento della sicurezza, in quanto il traffico fluisce attraverso qualsiasi gateway di rete e l'accesso può essere controllato utilizzando policy e gruppi di sicurezza IAM. PrivateLink è utile per le applicazioni che hanno requisiti di sicurezza dei dati e richiedono una bassa latenza. Inoltre, rende le tabelle DynamoDB accessibili da ambienti ibridi che si estendono su reti on-premises e AWS.
DynamoDB supporta policy basate sulle risorse?
Sì, DynamoDB supporta policy basate sulle risorse per tabelle e flussi. Le policy basate sulle risorse per ogni tabella coprono anche le autorizzazioni di accesso per gli indici della tabella (indici secondari globali e indici secondari locali). Con queste policy, i clienti possono definire autorizzazioni di accesso granulari per le tabelle DynamoDB e altre risorse senza la necessità di concedere l'accesso completo a livello di account AWS. Queste policy consentono ai clienti di controllare quali utenti, ruoli e utenti federati possono eseguire azioni come lettura, scrittura o eliminazione su tabelle, indici e flussi DynamoDB specifici. Le policy basate sulle risorse sono allegate e gestite all'interno di ogni risorsa DynamoDB.
Supportano le integrazioni con il Sistema di analisi degli accessi di AWS Identity and Access Management (IAM) e il Blocco dell'accesso pubblico (BPA). Il Sistema di analisi degli accessi IAM aiuta i clienti a perfezionare le autorizzazioni e a conformarsi al privilegio minimo. Il BPA aiuta i clienti a impedire l'accesso pubblico a tabelle, indici e flussi DynamoDB ed è sempre abilitato con DynamoDB.
DynamoDB supporta il controllo degli accessi basato sugli attributi per l'autorizzazione basata su tag?
DynamoDB supporta il controllo degli accessi basato sugli attributi, generalmente disponibile per tabelle e indici DynamoDB.
È possibile utilizzare Amazon DynamoDB nell'Amazon Virtual Private Cloud (Amazon VPC)?
Sì, è possibile utilizzare Amazon DynamoDB tramite gli endpoint VPC. DynamoDB supporta due tipi di endpoint VPC: gli endpoint gateway e quelli che utilizzano AWS PrivateLink. Con un endpoint gateway, è possibile accedere a DynamoDB dal proprio VPC, senza richiedere un gateway Internet o un dispositivo NAT per il VPC. Tuttavia, gli endpoint gateway non consentono l'accesso da reti on-premises, da VPC con peering in altre regioni AWS o tramite un gateway di transito. Per questi scenari, è necessario utilizzare AWS PrivateLink, disponibile a un costo aggiuntivo.
Cos'è il controllo granulare degli accessi di Amazon DynamoDB?
Il controllo granulare degli accessi (FGAC) offre al proprietario di una tabella DynamoDB un controllo granulare sui dati nella tabella tramite le policy e le condizioni di AWS Identity and Access Management (IAM). FGAC consente al proprietario di fornire le autorizzazioni per l'accesso agli elementi o agli attributi della tabella e alle azioni associate. Il controllo granulare degli accessi viene utilizzato insieme ad AWS IAM, che gestisce le credenziali di sicurezza e le autorizzazioni associate.
I dati in transito o inattivi vengono crittografati da Amazon DynamoDB?
Sì, tutti i dati degli utenti in Amazon DynamoDB sono completamente crittografati in transito e a riposo.
In che modo Amazon DynamoDB crittografa i miei dati in transito?
Il protocollo HTTPS viene utilizzato per proteggere il traffico di rete utilizzando la crittografia Secure Sockets Layer.
In che modo Amazon DynamoDB crittografa i miei dati a riposo?
La crittografia DynamoDB a riposo utilizza chiavi di crittografia archiviate nel Servizio AWS di gestione delle chiavi (AWS KMS). I dati a riposo sono crittografati utilizzando AES-256, il gold standard in cui sono richiesti i massimi livelli di sicurezza.
Quali tipi di chiavi sono disponibili per crittografare i miei dati DynamoDB a riposo?
Sono disponibili i seguenti tipi di chiave per crittografare i dati a riposo:
1. Chiavi di proprietà di AWS: sono gestite interamente da AWS e vengono utilizzate per impostazione predefinita se non viene specificata nessun'altra opzione. Sono gratuite e non richiedono alcuna configurazione aggiuntiva.
2. Chiavi gestite da AWS: si tratta di chiavi master del cliente (CMK) archiviate nel Servizio AWS di gestione delle chiavi (KMS) che vengono create, gestite e utilizzate da AWS per conto del cliente. Forniscono funzionalità di controllo e revisione aggiuntive rispetto alle chiavi di proprietà di AWS.
3. Chiavi gestite dal cliente: sono CMK create, possedute e gestite in AWS KMS. Offrono il massimo livello di controllo sulle chiavi di crittografia, inclusa la possibilità di creare, ruotare, disabilitare e definire i controlli sugli accesso.
Ciascuno di questi tipi di chiave offre un diverso equilibrio tra praticità, controllo e costi. Le chiavi di proprietà di AWS sono le più semplici da utilizzare, mentre quelle gestite dai clienti offrono il massimo controllo ma richiedono un maggiore sovraccarico di gestione.
In che modo la crittografia a riposo aiuta a proteggere i miei dati?
La crittografia a riposo aiuta a proteggere i dati crittografando i file contenenti informazioni sensibili quando sono inattivi. Quando i dati sono crittografati a riposo, le parti non autorizzate non possono accedere al contenuto in testo normale anche se sono in grado di ottenere l'accesso fisico ai dispositivi che archiviano i dati. Questo fornisce un ulteriore livello di sicurezza per i dati oltre ai semplici controlli di accesso e aiuta a garantire che le informazioni riservate rimangano private, anche in caso di smarrimento o furto del dispositivo fisico.
DynamoDB supporta la registrazione delle revisioni per le modifiche a livello di articolo sulla tabella?
Sì, DynamoDB supporta la registrazione di controllo per le modifiche a livello di elemento nelle tabelle. DynamoDB è integrato con AWS CloudTrail, un servizio che fornisce un registro delle azioni intraprese da un utente, da un ruolo o da un servizio AWS in DynamoDB a livello di elemento. I dati di registrazione aggiuntivi acquisiti includono creazioni, aggiornamenti, eliminazioni ed eventuali errori di controllo condizionale. I clienti possono accedere a questi record di log archiviati in CloudWatch Logs e creare applicazioni per analizzare le modifiche a livello di elemento per la revisione, il monitoraggio o altri scopi. La registrazione di revisione offre visibilità sulle modifiche dei dati a livello granulare senza influire sulle normali prestazioni di lettura/scrittura della tabella DynamoDB.
È possibile utilizzare Amazon DynamoDB con applicazioni che richiedono la conformità HIPAA?
È possibile utilizzare Amazon DynamoDB per creare applicazioni conformi allo standard HIPAA e archiviare informazioni sanitarie, fra cui i dati sanitari protetti da un Business Associate Agreement (BAA) stipulato con AWS.
Quali certificazioni di conformità soddisfa Amazon DynamoDB?
DynamoDB soddisfa molte certificazioni di conformità, tra cui idoneità HIPAA, FedRAMP, ISO 27001, SOC 1/SSAE 16/ISAE 3402 (ex SAS 70) e SOC 2. Per ulteriori informazioni, consulta Convalida della conformità per settore per DynamoDB. I rapporti di conformità di AWS sono disponibili per il download in AWS Artifact.
Disponibilità elevata e replica
Cosa sono le tabelle globali DynamoDB?
Le tabelle globali Amazon DynamoDB sono un database completamente gestito, serverless, multiregionale e multiattivo. Offrono una disponibilità del 99,999%, una maggiore resilienza delle applicazioni e una migliore continuità aziendale. Replicano automaticamente le tabelle DynamoDB nelle Regioni AWS a scelta, consentendo di ottenere prestazioni di lettura e scrittura locali veloci. Le tabelle globali utilizzano le stesse API delle tabelle DynamoDB a singola regione, quindi è possibile rendere facilmente disponibili le tabelle DynamoDB a livello globale senza modificare le applicazioni.
Perché è consigliabile utilizzare le tabelle globali?
È consigliabile utilizzare le tabelle globali per migliorare la resilienza dell'applicazione in più regioni. Inoltre, le tabelle globali consentono alle applicazioni di mantenere un'elevata disponibilità nell'improbabile caso di isolamento o degrado di un'intera regione.
Che differenza c'è tra le versioni delle tabelle globali?
Le tabelle globali DynamoDB sono disponibili in due versioni: 2019.11.21 (attuale) e 2017.11.29 (legacy). I clienti dovrebbero utilizzare la versione 2019.11.21 (attuale) per tutte le nuove tabelle globali, poiché questa versione è più efficiente e consuma meno capacità di scrittura. Chiunque utilizzi la versione 2017.11.29 (legacy) dovrebbe aggiornare le proprie tabelle globali alla versione 2019.11.21 (attuale).
Come posso aggiornare le mie tabelle globali alla versione 2019.11.21 (attuale)?
È possibile aggiornare la versione di una tabella globale in pochi clic nella Console di gestione AWS. L'aggiornamento dalla versione 2017.11.29 (legacy) alla versione 2019.11.21 (attuale) è un'azione una tantum e non può essere annullata. Prima di eseguire l'aggiornamento, assicurati di aver esaminato le differenze di comportamento tra le versioni e di aver eseguito tutti i test necessari. Per ulteriori informazioni, consulta Aggiornamento delle tabelle globali dalla versione 2017.11.29 (legacy) alla versione 2019.11.21 (attuale).
Le tabelle globali DynamoDB supportano il failover automatico se una regione non è disponibile?
Le tabelle globali DynamoDB utilizzano la replica multiattiva tra regioni, in cui tutte le tabelle di replica in tutte le regioni in una tabella globale supportano il traffico di lettura e scrittura. Una tabella globale non ha una regione primaria e quindi non è richiesto alcun failover del database quando si indirizza il traffico di lettura e scrittura verso una regione diversa. Nell'improbabile eventualità che una regione AWS venga isolata o degradata, l'applicazione può semplicemente leggere e scrivere da una tabella di replica in una regione non colpita. Per ulteriori informazioni, consulta Best practice per la progettazione di tabelle globali DynamoDB.
Elaborazione di dati
Amazon DynamoDB supporta l'acquisizione dei dati di modifica?
Sì, Amazon supporta l'acquisizione dei dati di modifica (CDC). In DynamoDB, la CDC è implementata utilizzando un modello di flussi, che consente alle applicazioni di acquisire le modifiche a livello di elemento in una tabella DynamoDB quasi in tempo reale come flusso di record di dati. Il flusso di record di dati CDC consente alle applicazioni di elaborare e rispondere in modo efficiente alle modifiche dei dati nella tabella DynamoDB. DynamoDB offre due modelli di flussi per la CDC: i flussi Amazon DynamoDB e i flussi di dati Amazon Kinesis per DynamoDB. Per aiutarti a scegliere la soluzione giusta per la tua applicazione, consulta le opzioni di flussi per l'acquisizione dei dati di modifica.
Cosa sono i flussi DynamoDB e a cosa servono?
Un flusso DynamoDB è un flusso ordinato di informazioni sulle modifiche agli elementi in una tabella DynamoDB. I flussi DynamoDB catturano una sequenza deduplicata in ordine cronologico delle modifiche a livello di elemento in una tabella e archiviano queste informazioni in un log per un massimo di 24 ore. I flussi DynamoDB scalano automaticamente la capacità, liberando l'utente dal provisioning e dalla gestione della capacità. In base alla configurazione dei flussi DynamoDB, è possibile visualizzare gli elementi di dati così come appaiono prima e dopo la modifica. È possibile creare applicazioni che utilizzano questi eventi di flussi e invocare flussi di lavoro in base al contenuto del flusso di eventi.
I flussi DynamoDB sono utili quando si desidera rispondere alle modifiche dei dati con trigger utilizzando l'integrazione nativa con AWS Lambda, tracciare e analizzare le interazioni con i clienti o monitorare le prestazioni delle applicazioni quasi in tempo reale, acquisire sequenze ordinate di eventi e migliorare la resilienza delle applicazioni attraverso la replica dei dati transazionali a livello di elemento.
Cosa sono i flussi di dati Kinesis per DynamoDB e a cosa servono?
I flussi di dati Kinesis rilevano le modifiche a livello di elemento in qualsiasi tabella DynamoDB e le replicano su un flusso di dati Kinesis. Le applicazioni possono accedere a questo flusso e visualizzare le modifiche a livello di elemento quasi in tempo reale. I flussi di dati Kinesis consentono di creare applicazioni personalizzate per elaborare o analizzare i flussi di dati per esigenze specialistiche. A differenza dei flussi DynamoDB, i flussi di dati Kinesis per DynamoDB non forniscono garanzie di ordinamento dei record né di deduplicazione. È necessario che l'ordinamento e la deduplicazione dei record siano implementati dalle applicazioni client, utilizzando il campo ApproximateCreationDateTime nel record a livello di elemento.
I flussi di dati Kinesis per DynamoDB sono utili se c'è bisogno di integrazione con il più ampio ecosistema Kinesis (come Kinesis Client Library, Servizio gestito da Amazon per Apache Flink o Amazon Data Firehose), conservazione e ripetibilità dei dati di durata più lunga (fino a 365 giorni) e gestione personalizzata degli shard per il consumo a valle e l'analisi dei flussi.
Quali informazioni sono incluse in un flusso?
Quando un flusso DynamoDB o un flusso di dati Kinesis è abilitato su una tabella DynamoDB, la tabella invia un record di dati che acquisisce eventuali modifiche ai dati di quella tabella. Questo record di dati include l'ora specifica in cui un elemento è stato creato, aggiornato o eliminato di recente, la chiave primaria di quell'elemento, un'immagine dell'elemento prima della modifica e una dell'elemento dopo la modifica
Come si utilizza un flusso DynamoDB o Kinesis?
È possibile abilitare o disabilitare i flussi su una tabella DynamoDB esistente utilizzando la Console di gestione AWS, l'AWS SDK, l'interfaccia a riga di comando AWS (AWS CLI) o la Kinesis Client Library (KCL).
Quando è consigliabile utilizzare un flusso DynamoDB e quando un flusso di dati Kinesis?
È consigliabile scegliere i flussi DynamoDB quando occorre specificamente tenere traccia delle modifiche alle tabelle DynamoDB. È consigliabile, invece, scegliere i flussi di dati Kinesis per esigenze di flussi più ampie, requisiti di throughput più elevati o quando occorrono periodi di conservazione dei dati più lunghi.
Cos'è il Time-to-Live (TTL) di DynamoDB e a cosa serve?
La funzionalità Time to Live (TTL) di Amazon DynamoDB elimina automaticamente gli elementi scaduti non più pertinenti da una tabella, riducendo così l'utilizzo dell'archiviazione e abbassando i costi. Con TTL, è possibile definire un timestamp per elemento per determinare quando un elemento non è più necessario e DynamoDB elimina automaticamente l'elemento dalla tabella senza consumare alcun throughput di scrittura. Ogni volta che un elemento viene creato o aggiornato, è possibile calcolare l'ora di scadenza e salvarla nell'attributo TTL. TTL è utile per l'archiviazione di elementi che perdono rilevanza dopo un determinato periodo di tempo.
Che tipo di funzionalità di query supporta DynamoDB?
DynamoDB supporta operazioni GET/PUT utilizzando una chiave primaria definita dall'utente. La chiave primaria è l'unico attributo richiesto per gli elementi in una tabella. La chiave primaria viene specificata al momento della creazione di una tabella che identifica in modo univoco ciascun elemento. Inoltre, DynamoDB offre query flessibili consentendo di eseguire query sugli attributi chiave non primari utilizzando indici secondari globali e indici secondari locali.
Una chiave primaria può essere una chiave di partizione ad attributo singolo o una chiave di ordinamento-partizione composta. Una chiave di partizione ad attributo singolo potrebbe essere, ad esempio, ID utente. Una chiave di partizione ad attributo singolo permette di leggere e scrivere rapidamente i dati di una voce associata a un determinato ID utente.
Dynamo DB indicizza una chiave di partizione-ordinamento composta come un elemento chiave di partizione e un elemento chiave di ordinamento. Questa chiave a più sezioni mantiene una gerarchia fra i valori del primo e del secondo elemento. Ad esempio, una chiave di partizione-ordinamento composta può essere una combinazione di ID utente (partizione) e Timestamp (ordinamento). Mantenere uno stesso elemento chiave di partizione consente di effettuare ricerche nell'elemento chiave di ordinamento, permettendo di utilizzare l'API Query per recuperare tutte le voci di un singolo ID utente su una serie di timestamp.
Come si aggiornano le voci dei dati e si eseguono query relative a tali voci con DynamoDB?
Dopo aver creato una tabella con la console Dynamo DB o l'API CreateTable, puoi utilizzare le API PutItem o BatchWriteItem per inserire le voci. Puoi quindi utilizzare GetItem, BatchGetItem o, se nella tabella sono abilitate e in uso le chiavi primarie composite, l'API Query per recuperare le voci aggiunte alla tabella.
DynamoDB può essere usato da applicazioni in esecuzione su qualunque sistema operativo?
Sì. DynamoDB è un servizio cloud interamente gestito a cui si accede attraverso API. DynamoDB può essere utilizzato dalle applicazioni in esecuzione su qualsiasi sistema operativo (come Linux, Windows, iOS, Android, Solaris, AIX e HP-UX). È consigliabile utilizzare gli AWS SDK per iniziare a utilizzare DynamoDB.
Ottieni l'accesso immediato al piano gratuito di AWS.
Inizia subito a utilizzare Amazon DynamoDB nella Console di gestione AWS.