Tabelle globali Amazon DynamoDB

Perché scegliere le tabelle globali di Amazon DynamoDB?

Le tabelle globali di Amazon DynamoDB sono un database completamente gestito, serverless, multiregionale e multiattivo. Le tabelle globali offrono una disponibilità del 99,999%, una maggiore resilienza delle applicazioni e una migliore continuità aziendale. Poiché le tabelle globali replicano automaticamente le tabelle Amazon DynamoDB nelle Regioni AWS di tua scelta, puoi ottenere prestazioni di lettura e scrittura locali veloci.

Nel raro caso di un errore in una singola Regione, non è necessario effettuare un failover del database poiché l'architettura multiattiva delle tabelle globali consente ai clienti di leggere e scrivere su qualsiasi tabella di replica. Inoltre, le tabelle globali eliminano il difficile compito di replicare i dati tra Regioni e risolvere i conflitti di aggiornamento per i carichi di lavoro multiattivi. Inoltre, le tabelle globali consentono alle tue applicazioni di rimanere altamente disponibili anche nel raro caso di isolamento o problemi di un'intera Regione.

Puoi configurare tabelle globali nella Console di gestione AWS con l'interfaccia della linea di comando AWS (AWS CLI) o con AWS CloudFormation. Durante la lettura o la scrittura su una tabella globale non sono necessarie modifiche all'applicazione, poiché le tabelle globali utilizzano le stesse API DynamoDB delle tabelle a Regione singola.

Non sono previsti costi o impegni anticipati per l'utilizzo delle tabelle globali e paghi solo per le risorse che effettivamente utilizzi. Scopri di più sulla configurazione delle tabelle globali nella guida per gli sviluppatori di Amazon DynamoDB. Per ulteriori informazioni sui prezzi delle tabelle globali, consulta le opzioni di prezzo di Amazon DynamoDB per le versioni on demand e con capacità assegnata.

Come funziona

Una tabella globale DynamoDB è composta da più tabelle di replica. Ogni tabella di replica esiste in una Regione diversa, ma tutte le repliche hanno lo stesso nome e la stessa chiave primaria. Quando i dati vengono scritti su una tabella di replica, DynamoDB li replica automaticamente su tutte le altre tabelle di replica nella tabella globale.

Per esempio, supponiamo che la tua applicazione serva un'ampia base clienti distribuita in tre aree geografiche: la costa orientale degli Stati Uniti, il Canada e l'Europa occidentale. Senza tabelle globali, dovresti creare una tabella in ogni Regione AWS e scrivere codice per replicare le modifiche dei dati su ogni tabella in ogni Regione.

Grazie alle tabelle globali, puoi creare una tabella globale con una tabella di replica nelle tre Regioni più vicine a ciascuna area geografica. DynamoDB replicherà automaticamente le modifiche da qualsiasi replica alle repliche nelle altre Regioni.

Le tabelle globali consentono agli utenti dell'applicazione di accedere ai dati con bassa latenza, indipendentemente dalla loro posizione geografica. Nell'improbabile eventualità che una Regione AWS diventi temporaneamente non disponibile, i tuoi clienti possono comunque accedere alle tabelle di replica nelle altre Regioni.

Come funziona

Vantaggi della tabella globale Amazon DynamoDB

Le tabelle globali eliminano la complessità e l'onere operativo dell'implementazione e della gestione della replica multiattiva e multiregionale in Amazon DynamoDB. Basta selezionare le Regioni in cui vuoi replicare i dati e DynamoDB si occuperà di tutto il resto. Le applicazioni accedono alle tabelle globali tramite le API e gli endpoint DynamoDB esistenti.

La replica multiattiva e multiregionale garantisce che gli aggiornamenti eseguiti su una tabella di replica in una Regione vengano replicati nelle tabelle di replica in altre Regioni. La replica tra le repliche delle tabelle nelle Regioni è in ultimo coerente. Ciò significa che le letture e le scritture locali sulle tabelle di replica all'interno della stessa Regione dell'applicazione possono raggiungere una maggiore coerenza. Tuttavia, le letture degli elementi che si trovano in altre tabelle di replica all'interno di una Regione sono in ultimo coerenti.

Le tabelle globali sono progettate per una disponibilità del 99,999%. Se una singola Regione rimane isolata o presenta dei problemi, la tua applicazione può reindirizzare a una regione diversa ed eseguire letture e scritture su un'altra tabella di replica. Puoi applicare una logica aziendale personalizzata per determinare quando reindirizzare le richieste verso altre regioni. 

Inoltre, Amazon DynamoDB tiene traccia di qualsiasi scrittura effettuata ma che non è ancora stata propagata a tutte le tabelle di replica. Quando una Regione torna online, Amazon DynamoDB riprende la propagazione di qualsiasi scrittura in sospeso da quella regione alle tabelle di replica nelle altre Regioni e viceversa.

Le tabelle globali ti permettono di leggere e scrivere i dati localmente, con una latenza non superiore a una decina di millisecondi per la tua applicazione distribuita a livello globale su qualsiasi scala. Ciò può aumentare le prestazioni per applicazioni globali su larga scala.

Qualsiasi modifica apportata a qualsiasi voce in qualsiasi tabella di replica viene replicata in tutte le altre repliche all'interno della stessa tabella globale. In una tabella globale, un nuovo elemento scritto viene solitamente propagato a tutte le altre tabelle di replica entro un secondo.  Con una tabella globale, ogni tabella di replica contiene lo stesso set di voci di dati. Amazon DynamoDB non supporta la replica parziale di solo alcune delle voci. Se l'applicazione aggiorna la stessa voce in diverse regioni all'incirca nello stesso momento, potrebbero nascere dei conflitti.

Per risolvere i conflitti, le tabelle globali Amazon DynamoDB utilizzano una riconciliazione di tipo "last-writer-wins" tra gli aggiornamenti simultanei, in cui Amazon DynamoDB si impegna a determinare chi ha eseguito l'ultima scrittura. Grazie a questo meccanismo di risoluzione dei conflitti, tutte le repliche si accordano sull'ultimo aggiornamento e convergono verso uno stato in cui contengono tutte gli stessi dati.

Argomenti della pagina

Domande generali

Domande generali

Una tabella globale è una raccolta di una o più tabelle di replica, tutte di proprietà di un singolo account AWS. Una singola tabella globale Amazon DynamoDB può avere solo una tabella di replica per ogni Regione AWS.

Una tabella di replica è una singola tabella DynamoDB. Ogni tabella di replica memorizza lo stesso set di elementi di dati, ha lo stesso nome di tabella e lo stesso schema di chiave primaria. Quando un'applicazione scrive dati in una tabella di replica in una Regione, Amazon DynamoDB replica automaticamente le scritture in altre tabelle di replica nelle altre Regioni AWS.

Assolutamente sì, le tabelle globali di Amazon DynamoDB sono un'ottima scelta per rafforzare la continuità aziendale in quanto aumentano la resilienza dell'applicazione e garantiscono una maggiore coerenza dei dati all'interno di una singola Regione. Poiché le tabelle globali sono multiattive, un'applicazione può leggere o scrivere su qualsiasi tabella di replica. Nel raro caso di un evento regionale non pianificato, l'applicazione può reindirizzare a un'altra replica.

Puoi creare una tabella globale utilizzando la console Amazon DynamoDB, l'interfaccia della riga di comando AWS o AWS CloudFormation con questa guida dettagliata.

Prima di aggiungere una replica supplementare in un'altra regione a una tabella globale di Amazon DynamoDB, è necessario verificare che la tabella abbia DynamoDB Streams abilitato, che abbia lo stesso nome di tutte le altre repliche, che abbia la stessa chiave di partizione di tutte le altre repliche e le stesse impostazioni di capacità di scrittura specificate.

Tutte le tabelle di replica in una tabella globale Amazon DynamoDB devono avere lo stesso nome.

Analogamente ad altri database, Amazon DynamoDB archivia i dati in tabelle. Una tabella è una raccolta di elementi e ogni elemento è una raccolta di attributi. Amazon DynamoDB utilizza chiavi primarie per identificare in modo univoco ogni elemento in una tabella e dispone di indici secondari per fornire una maggiore flessibilità di query.

Al contrario, una tabella globale di Amazon DynamoDB è una raccolta di una o più tabelle di replica di proprietà di un singolo account AWS. Ogni tabella di replica è strutturalmente uguale a una normale tabella Amazon DynamoDB.

Sì, puoi abilitare il ripristino point-in-time su ogni replica di una tabella globale.

  • Zoom

    Quando è iniziata la pandemia da COVID-19, abbiamo osservato un'enorme domanda per i servizi voce e video. All'inizio del 2020 abbiamo visto una crescita dell'utilizzo senza precedenti: da 10 milioni a 300 milioni di partecipanti a riunioni giornaliere con clienti nuovi ed esistenti che avevano bisogno di connettersi virtualmente. A livello di back-end siamo stati in grado di gestire questa impennata con Amazon DynamoDB per le riunioni Zoom. L'utilizzo delle tabelle globali DynamoDB insieme alla modalità on demand ci ha permesso di scalare quasi all'infinito senza problemi di prestazioni, anche in presenza del nostro improvviso picco di utilizzo.

    Yasin Mohammed, Engineering Manager, Cloud Operations presso Zoom Video Communications, Inc.
  • Disney

    Disney+ utilizza Amazon DynamoDB per acquisire contenuti, metadati e miliardi di azioni dei clienti ogni giorno, consentendo agli spettatori di aggiungere contenuti alle liste, iniziare a guardare un video e riprenderlo su un dispositivo diverso e ricevere consigli su cosa guardare dopo.

    Miliardi di segnalibri acquisiti ogni giorno su Amazon Kinesis e in Amazon DynamoDB.

    Attilio Giue, Director of Content Discovery presso Disney+
    Leggi il comunicato stampa »
  • Snap Inc.

    Snap Inc. ha registrato risparmi significativi sui costi annuali dell'infrastruttura e ha creato un'infrastruttura veloce e affidabile per l'app di messaggistica multimediale Snapchat utilizzando Amazon DynamoDB.

    Le funzionalità offerte da Amazon DynamoDB e le continue innovazioni al suo interno ci danno la certezza di poter continuare a farci affidamento e utilizzarlo per innovare.

    Saral Jain, Director of Engineering e Head of Infrastructure, Snap Inc.
    Leggi il caso di studio »