Concetti fondamentali delle tabelle globali - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Concetti fondamentali delle tabelle globali

Le seguenti sezioni descrivono i concetti e i comportamenti delle tabelle globali in Amazon DynamoDB.

Concetti

Le tabelle globali sono una funzionalità di DynamoDB che replica i dati delle tabelle tra le regioni. AWS

Una tabella di replica (o replica) è una singola tabella DynamoDB che funziona come parte di una tabella globale. Una tabella globale è composta da due o più tabelle di replica in diverse regioni. AWS Ciascuna tabella globale può avere una sola tabella di replica per Regione AWS . Tutte le repliche in una tabella globale condividono lo stesso nome di tabella, lo stesso schema di chiave primaria e gli stessi dati degli elementi.

Quando un’applicazione scrive dati in una replica in una Regione, DynamoDB replica automaticamente la scrittura in tutte le altre repliche nella tabella globale. Per ulteriori informazioni su come iniziare a utilizzare le tabelle globali, consulta Tutorial: creazione di tabelle globali oTutorial: Creazione di tabelle globali multi-account.

Versioni

Sono disponibili due versioni delle tabelle globali DynamoDB: Tabelle globali versione 2019.11.21 (Corrente) e Tabelle globali versione 2017.11.29 (Legacy). È necessario utilizzare la versione 2019.11.21 (corrente) di Global Tables ogni volta che è possibile. Le informazioni contenute in questa sezione della documentazione si riferiscono alla versione 2019.11.21 (Corrente). Per ulteriori informazioni, vedere Determinazione della versione di una tabella globale. Determinare la versione di una tabella globale

Disponibilità

Le tabelle globali aiutano a migliorare la continuità aziendale semplificando l’implementazione di un’architettura ad alta disponibilità multi-Regione. Se un carico di lavoro in una singola AWS regione viene compromesso, è possibile spostare il traffico delle applicazioni in una regione diversa ed eseguire letture e scritture su una tabella di replica diversa nella stessa tabella globale.

Ogni tabella di replica in una tabella globale offre la stessa durata e disponibilità di una tabella DynamoDB a Regione singola. Le tabelle globali offrono un Accordo sul livello di servizio (SLA) con disponibilità del 99,999%, rispetto al 99,99% delle tabelle a Regione singola.

Test di iniezione di guasti

Entrambe le tabelle globali MREC e MRSC si integrano con AWSAWS Fault Injection Service (FIS), un servizio completamente gestito per l'esecuzione di esperimenti di iniezione di errori controllati per migliorare la resilienza di un'applicazione. Utilizzando AWS FIS, è possibile:

  • Creare modelli di esperimenti che definiscono scenari di fallimento specifici.

  • Inietta gli errori per convalidare la resilienza delle applicazioni simulando l'isolamento di una regione (ovvero, mettendo in pausa la replica da e verso una replica selezionata) per testare la gestione degli errori, i meccanismi di ripristino e il comportamento dello spostamento del traffico tra più regioni quando un'area subisce un'interruzione. AWS

Ad esempio, in una tabella globale con repliche negli Stati Uniti orientali (Virginia settentrionale), negli Stati Uniti orientali (Ohio) e negli Stati Uniti occidentali (Oregon), è possibile eseguire un esperimento negli Stati Uniti orientali (Ohio) per testare l'isolamento della regione mentre Stati Uniti orientali (Virginia settentrionale) e Stati Uniti occidentali (Oregon) continuano le normali operazioni. Questo test controllato consente di identificare e risolvere potenziali problemi prima che influiscano sui carichi di lavoro di produzione.

Consulta Action targets nella guida per l'utente AWS FIS per un elenco completo delle azioni supportate da AWS FIS e della connettività interregionale per sospendere la replica di DynamoDB tra le regioni.

Per informazioni sulle azioni delle tabelle globali di Amazon DynamoDB disponibili AWS in FIS, consulta il riferimento alle azioni delle tabelle globali di DynamoDB nella FIS User Guide.AWS

Per iniziare a eseguire esperimenti di fault injection, consulta Planning your AWS FIS experiment (Pianificazione degli esperimenti FIS) nella guida per l'utente FIS. AWS

Nota

Durante AWS FIS gli esperimenti in MRSC, alla fine sono consentite letture coerenti, ma gli aggiornamenti delle impostazioni delle tabelle, come la modifica della modalità di fatturazione o la configurazione del throughput della tabella, non sono consentiti, analogamente a MREC. Controlla la CloudWatch metrica per ulteriori dettagli sul codice FaultInjectionServiceInducedErrorsdi errore.

Time to live (TTL)

Le tabelle globali configurate per MREC supportano la configurazione dell’eliminazione Time to Live (TTL). Le impostazioni del TTL vengono sincronizzate automaticamente per tutte le repliche in una tabella globale. Quando il TTL elimina un elemento da una replica in una Regione, l’eliminazione viene replicata su tutte le altre repliche nella tabella globale. Il TTL non consuma capacità di scrittura, quindi non viene addebitato alcun costo per l’eliminazione TTL nella Regione in cui è avvenuta l’eliminazione. Tuttavia, viene addebitato il costo dell’eliminazione replicata in ogni altra Regione con una replica nella tabella globale.

La replica di eliminazione TTL consuma la capacità di scrittura sulle repliche in cui viene replicata l’eliminazione. Le repliche configurate per la capacità allocata possono limitare le richieste se la combinazione di throughput di scrittura e throughput di eliminazione TTL è superiore alla capacità di scrittura allocata.

Le tabelle globali configurate per MRSC (elevata consistenza multi-Regione) non supportano la configurazione dell’eliminazione TTL.

Streams

Le tabelle globali configurate per coerenza finale multi-Regione (MREC) replicano le modifiche leggendo tali modifiche da un flusso DynamoDB su una tabella di replica e applicandole a tutte le altre tabelle di replica. I flussi sono quindi abilitati per impostazione predefinita su tutte le repliche in una tabella globale MREC e non possono essere disabilitati su tali repliche. Il processo di replica MREC può combinare più modifiche in un breve periodo di tempo in un’unica scrittura replicata, con il risultato che il flusso di ogni replica contiene record leggermente diversi. I record Streams sulle repliche MREC mantengono l'ordine per tutte le modifiche allo stesso elemento, ma l'ordine relativo delle modifiche ai diversi elementi può variare tra le repliche.

Se si desidera scrivere un’applicazione che elabori i record dei flussi per le modifiche avvenute in una particolare Regione ma non in altre Regioni in una tabella globale, è possibile aggiungere un attributo a ogni elemento che definisce in quale Regione è avvenuta la modifica per quell’elemento. È possibile utilizzare questo attributo per filtrare i record dei flussi in base alle modifiche apportate in altre Regioni, incluso l’uso dei filtri di eventi Lambda per invocare le funzioni Lambda solo per le modifiche in una Regione specifica.

Le tabelle globali configurate per elevata consistenza multi-Regione (MRSC) non utilizzano i flussi DynamoDB per la replica, pertanto i flussi non sono abilitati per impostazione predefinita sulle repliche MRSC. È possibile abilitare i flussi su una replica MRSC. I record dei flussi sulle repliche MRSC sono identici per ogni replica, incluso l’ordinamento dei record dei flussi.

Transazioni

In una tabella globale configurata per MREC, le operazioni di transazione DynamoDB (TransactWriteItems e TransactGetItems) sono atomiche solo all’interno della Regione in cui è stata invocata l’operazione. Le scritture transazionali non vengono replicate come unità tra le Regioni, il che significa che solo alcune delle scritture di una transazione possono essere restituite dalle operazioni di lettura in altre repliche in un determinato momento.

Ad esempio, se è presente una tabella globale con repliche nelle Regioni Stati Uniti orientali (Ohio) e Stati Uniti occidentali (Oregon) e si esegue un’operazione TransactWriteItems nella Regione Stati Uniti orientali (Ohio), potrebbe essere possibile osservare transazioni parzialmente completate nella Regione Stati Uniti occidentali (Oregon) man mano che le modifiche vengono replicate. Le modifiche vengono replicate in altre Regioni solo dopo essere state confermate nella Regione di origine.

Le tabelle globali configurate per MRSC (elevata consistenza multi-Regione) non supportano le operazioni di transazione e restituiranno un errore se tali operazioni vengono invocate su una replica MRSC.

Velocità di trasmissione effettiva di lettura e di scrittura

Modalità provisioning

La replica consuma capacità di scrittura. Le repliche configurate per la capacità assegnata possono limitare le richieste se la combinazione del throughput di scrittura dell'applicazione e del throughput di scrittura della replica supera la capacità di scrittura assegnata. Per le tabelle globali che utilizzano la modalità provisioned, le impostazioni di ridimensionamento automatico per le capacità di lettura e scrittura sono sincronizzate tra le repliche.

È possibile configurare in modo indipendente le impostazioni della capacità di lettura per ogni replica in una tabella globale utilizzando il ProvisionedThroughputOverrideparametro a livello di replica. Per impostazione predefinita, le modifiche alla capacità di lettura assegnata vengono applicate a tutte le repliche nella tabella globale. Quando si aggiunge una nuova replica a una tabella globale, la capacità di lettura della tabella o della replica di origine viene utilizzata come valore iniziale, a meno che non venga specificata esplicitamente un'eccezione a livello di replica.

Modalità on demand

Per le tabelle globali configurate per la modalità on demand, la capacità di scrittura viene sincronizzata automaticamente su tutte le repliche. DynamoDB regola automaticamente la capacità in base al traffico e non ci sono impostazioni di capacità di lettura o scrittura specifiche per la replica da gestire.

Monitoraggio delle tabelle globali

Le tabelle globali configurate per la coerenza finale tra più regioni (MREC) pubblicano la metrica su. ReplicationLatency CloudWatch Questa metrica tiene traccia del tempo trascorso tra la scrittura di un elemento in una tabella di replica e la visualizzazione di tale elemento in un’altra replica nella tabella globale. ReplicationLatency è espresso in millisecondi e viene emesso per ogni coppia di Regioni di origine e di destinazione in una tabella globale.

ReplicationLatencyI valori tipici dipendono dalla distanza tra le AWS regioni scelte e da altre variabili come il tipo di carico di lavoro e la velocità effettiva. Ad esempio, una replica di origine nella Regione Stati Uniti occidentali (California settentrionale) (us-west-1) ha un ReplicationLatency inferiore rispetto alla Regione Stati Uniti occidentali (Oregon) (us-west-2) rispetto alla Regione Africa (Città del Capo) (af-south-1).

Un valore crescente per ReplicationLatency potrebbe indicare che gli aggiornamenti da una replica non si propagano ad altre tabelle di replica in modo tempestivo. In questo caso, puoi reindirizzare temporaneamente l'attività di lettura e scrittura dell'applicazione verso un'altra regione. AWS

Le tabelle globali configurate per l’elevata consistenza multi-Regione (MRSC) non pubblicano una metrica ReplicationLatency.

Considerazioni sulla gestione delle tabelle globali

Non è possibile eliminare una tabella utilizzata per aggiungere una nuova replica globale della tabella prima che siano trascorse 24 ore dalla creazione della nuova replica.

Se si disabilita una AWS regione che contiene repliche di tabelle globali, tali repliche vengono convertite in modo permanente in tabelle a regione singola 20 ore dopo la disattivazione della regione.