Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Come posso migrare le mie tabelle DynamoDB da un account AWS a un altro?
Desidero copiare i dati della mia tabella Amazon DynamoDB in una nuova tabella nello stesso account o in un account diverso
Breve descrizione
Sono disponibili diversi metodi per trasferire dati di una tabella DynamoDB da un account AWS a un altro. La scelta migliore può dipendere da diversi fattori, tra cui il volume dei dati, la necessità di aggiornamenti in tempo reale e la complessità delle trasformazioni dei dati.
Per eseguire la migrazione di tabelle DynamoDB da un account AWS a un altro, scegli una delle seguenti opzioni:
- Backup AWS
- Esportazione di DynamoDB in Amazon Simple Storage Service (Amazon S3) e importazione
- Amazon EMR
- Pipeline dei dati AWS
- Amazon S3 e AWS Glue
- Script di esportazione e importazione personalizzato
Risoluzione
In base al tuo caso d'uso, completa le seguenti attività.
Backup AWS
Per gli account AWS di origine e di destinazione nella stessa organizzazione AWS Organizations, AWS Backup è in grado di eseguire trasferimenti di dati DynamoDB tra regioni e account. Per ulteriori informazioni, consulta Creazione di copie di backup tra account AWS.
Nell'account di destinazione, completa i seguenti passaggi:
- Crea un vault di Backup AWS nell'account di destinazione nella regione AWS in cui si trova DynamoDB. Quando crei il vault, utilizza la chiave del Servizio AWS di gestione delle chiavi (AWS KMS) che hai configurato. È la chiave che hai già condiviso con l'account di origine nella stessa organizzazione.
- Aggiungi una policy AWS Identity and Access Management (IAM) al vault che ti consenta di eseguire il backup nel vault. A tal fine, seleziona l'opzione Allow access to a backup vault from organization (Consenti l'accesso a un deposito di backup dall'organizzazione). Ciò consentirà ad altri account all'interno della stessa organizzazione di effettuare copie nel vault.
Nell'account di origine, completa le seguenti attività:
- Crea un vault di Backup AWS nella regione in cui devi migrare i dati della tabella. Quando crei il vault, utilizza la chiave AWS KMS che hai già configurato. È la chiave che è stata condivisa con altri account dell'organizzazione.
- Aggiungi una policy IAM al vault che consenta ad altri account dell'organizzazione di effettuare copie nel vault. A tal fine, seleziona l'opzione Allow access to a backup vault from organization (Consenti l'accesso a un deposito di backup dall'organizzazione).
- Crea un piano di backup per generare backup delle tabelle DynamoDB presenti nell'account di origine sull'account di destinazione. In Vault di backup, scegli il vault che hai creato nell'account di origine.
- Seleziona l'opzione Copia nel vault di un altro account.
- Per Assegna risorse, scegli l'opzione ** Includi tipi di risorse specifici** per includere le risorse di cui devi eseguire il backup.
- In Seleziona tipi di risorse specifici, scegli DynamoDB. Quindi scegli tutte le tabelle o solo quelle di cui devi eseguire il backup.
Per rivedere la configurazione e ripristinare una tabella, completa i seguenti passaggi:
- Nell'account di destinazione, spostati sul vault che hai creato. Puoi vedere che i Punti di ripristino sono gli stessi dell'account di origine.
- Ripristina la tabella DynamoDB nell'account di destinazione.
Nota: questa opzione è supportata solo per gli account che fanno parte della stessa organizzazione AWS.
Esportazione di DynamoDB in Amazon S3 e importazione
Utilizza la funzionalità di esportazione di DynamoDB in Amazon S3 per esportare dati da una tabella Amazon DynamoDB in qualsiasi momento all'interno della finestra di ripristino point-in-time. Per un esempio dell'utilizzo di questa funzionalità, consulta Export Amazon DynamoDB table data to your data lake in Amazon S3, no code writing required (Esportazione di dati di tabelle Amazon DynamoDB in un data lake in Amazon S3 senza scrivere codici).
Per utilizzare la funzionalità di esportazione di DynamoDB in Amazon S3, completa i seguenti passaggi:
- Per eseguire la migrazione dei dati della tabella DynamoDB, esporta la tabella in un bucket Amazon S3 nell'account di destinazione.
Nota: DynamoDB deve disporre delle autorizzazioni s3:ListBucket per bucket S3. Il bucket S3 non può avere liste di controllo degli accessi che neghino l'accesso ai dati esportati. - Importa i dati dal bucket S3 in una nuova tabella nell'account di destinazione.
Nota: per questa opzione è necessario configurare e gestire Pipeline dei dati AWS, autorizzazioni multi-account e ruoli IAM.
Amazon EMR
Per utilizzare Amazon EMR per esportare i dati in un bucket S3, utilizza uno dei seguenti metodi:
- Utilizza DynamoDBStorageHandler per eseguire query Hive o Spark sulle tabelle DynamoDB. Per ulteriori informazioni, consulta Esportazione di dati da DynamoDB.
- Per esportare o importare tabelle DynamoDB, utilizza lo strumento open source emr-dynamodb-tool su GitHub.
Per utilizzare Amazon EMR per eseguire la migrazione di una tabella DynamoDB, completa i seguenti passaggi:
- Avvia i cluster EMR negli account di origine e di destinazione. Nella sezione Configurazione del software, scegli un'opzione che includa Apache Hive.
Nota: è consigliabile avviare i cluster Amazon EMR in sottoreti private. Le sottoreti private devono avere un endpoint VPC Amazon S3 e un routing instradato verso DynamoDB. Se i cluster devono accedere a Internet, utilizza un gateway NAT che risiede in una sottorete pubblica. Per ulteriori informazioni, consulta VPC con server in sottoreti private e NAT. - Aggiorna i ruoli IAM EMR_EC2_DefaultRole in entrambi gli account per avere l'autorizzazione di scrittura nel bucket S3 nell'account di destinazione. Per ulteriori informazioni, consulta Configurazione dei ruoli di servizio IAM per le autorizzazioni di Amazon EMR per servizi e risorse AWS.
- Nell'account di origine, utilizza SSH per connetterti al nodo principale.
- Nell'account di origine, utilizza i comandi Hive per esportare i dati della tabella DynamoDB nel bucket S3 all'interno dell'account di destinazione.
- Nell'account di destinazione, importa i dati Amazon S3 nella nuova tabella DynamoDB.
Nota: se utilizzi una tabella temporanea per acquisire le scritture che avvengono durante la migrazione, ripeti i passaggi 3 e 4 sulla tabella intermedia.
Per ridurre i tempi di inattività, è possibile archiviare tutte le transazioni che si verificano durante la migrazione in una tabella temporanea. Dopo la migrazione della tabella di origine all'account di destinazione, trasferisci le nuove transazioni dalla tabella temporanea alla tabella di destinazione.
Il tempo necessario per la migrazione delle tabelle con Amazon EMR può variare. Il tempo dipende dalle prestazioni di rete di throughput assegnate dalla tabella DynamoDB e dalla quantità di dati archiviati nella tabella.
Nota: questa opzione richiede la creazione e la gestione di un cluster EMR.
Pipeline dei dati AWS
Utilizza Pipeline dei dati AWS per esportare dati da una tabella DynamoDB a un file in un bucket Amazon S3. Questa opzione esegue cluster Hadoop gestiti in Amazon EMR per eseguire letture e scritture tra DynamoDB e Amazon S3.
Nota: per questa opzione è necessario configurare e gestire Pipeline dei dati AWS, autorizzazioni multi-account e ruoli IAM.
Amazon S3 e AWS Glue
I processi ETL di AWS Glue supportano la lettura dei dati dalla tabella DynamoDB di un altro account e la scrittura dei dati nella tabella DynamoDB di un altro account. Utilizza il parametro dynamodb.sts.roleArn per assumere un ruolo multi-account nello script del processo. Quando assumi il ruolo, ottieni credenziali temporanee che devono essere utilizzate per l'accesso multi-account a DynamoDB. Per ulteriori informazioni, consulta Accesso multi-account in più regioni alle tabelle DynamoDB e How to export an Amazon DynamoDB table to Amazon S3 using AWS Step Functions and AWS Glue (Come esportare una tabella Amazon DynamoDB in Amazon S3 utilizzando AWS Step Functions e AWS Glue).
Nota: questa opzione richiede un uso estensivo di Spark e la gestione del codice sorgente per il processo ETL di AWS Glue. Per ulteriori informazioni, consulta Connessioni a DynamoDB.
Script di esportazione e importazione personalizzato
Per set di dati più piccoli di circa 2 GB o per trasferimenti una tantum, puoi utilizzare un processo di esportazione e importazione manuale. Ad esempio, puoi utilizzare un codice C# che utilizza le operazioni Scansione di DynamoDB per leggere gli elementi dalla tabella sorgente. Quindi il codice utilizza le chiamate API BatchWriteItem per scrivere i dati in una tabella di destinazione nell'account di destinazione.
Nota: questo processo può richiedere molto tempo per set di dati di grandi dimensioni e richiede script personalizzati. Per l'entità IAM che esegue lo script, è necessario configurare l'accesso S3 multi-account.
Informazioni correlate
Come posso eseguire la migrazione delle mie tabelle Amazon DynamoDB da un account AWS a un altro?
Come posso eseguire il backup di una tabella DynamoDB su Amazon S3?
Video correlati

