Aggiornamento del cluster Amazon DocumentDB tramite AWS Database Migration Service - Amazon DocumentDB

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à.

Aggiornamento del cluster Amazon DocumentDB tramite AWS Database Migration Service

Importante

Amazon DocumentDB non segue gli stessi cicli di vita del supporto di MongoDB e la pianificazione di MongoDB non si applica ad Amazon DocumentDB. end-of-life Al momento non ci sono piani end-of-life per Amazon DocumentDB 3.6 e i driver, le applicazioni e gli strumenti di MongoDB 3.6 esistenti continueranno a funzionare con Amazon DocumentDB.

Puoi aggiornare il tuo cluster Amazon DocumentDB a una versione superiore con tempi di inattività minimi utilizzando. AWS DMS AWS DMS è un servizio completamente gestito che semplifica la migrazione da versioni precedenti di Amazon DocumentDB, database relazionali e database non relazionali al cluster Amazon DocumentDB di destinazione.

Fase 1: abilitare Change Streams

Per eseguire una migrazione con tempi di inattività minimi, è AWS DMS necessario l'accesso ai flussi di modifica del cluster. I flussi di modifica di Amazon DocumentDB forniscono una sequenza temporale di eventi di aggiornamento che si verificano all'interno delle raccolte e dei database del cluster. La lettura dal flusso di modifiche consente di AWS DMS eseguire l'acquisizione dei dati di modifica (CDC) e applicare aggiornamenti incrementali al cluster Amazon DocumentDB di destinazione.

Per abilitare i flussi di modifica per tutte le raccolte su un database specifico, esegui l'autenticazione nel tuo cluster Amazon DocumentDB utilizzando la shell mongo ed esegui i seguenti comandi:

db.adminCommand({modifyChangeStreams: 1, database: "db_name", collection: "", enable: true});

Fase 2: modifica la durata di conservazione di Change Streams

Successivamente, modifica il periodo di conservazione del flusso di modifiche in base al periodo di conservazione degli eventi di modifica nel flusso di modifiche. Ad esempio, se prevedi che la migrazione del cluster Amazon DocumentDB richieda 12 ore, devi impostare la conservazione del flusso di modifiche su un valore superiore a 12 ore. AWS DMS Il periodo di conservazione predefinito per il cluster Amazon DocumentDB è di tre ore. Puoi modificare la durata di conservazione dei log del flusso di modifiche per il tuo cluster Amazon DocumentDB in modo che sia compresa tra un'ora e sette giorni utilizzando il AWS Management Console . AWS CLI Per maggiori dettagli, consulta Modifica della durata di conservazione dei log di Change Stream.

Fase 3: Migrazione degli indici

Crea gli stessi indici sul cluster Amazon DocumentDB di destinazione che hai sul cluster Amazon DocumentDB di origine. Sebbene AWS DMS gestisca la migrazione dei dati, non migra gli indici. Per migrare gli indici, utilizza Amazon DocumentDB Index Tool per esportare gli indici dal cluster Amazon DocumentDB di origine. Puoi ottenere lo strumento creando un clone del repository di GitHub strumenti Amazon DocumentDB e seguendo le istruzioni riportate in. README.md Puoi eseguire lo strumento da un'istanza Amazon EC2 o da un AWS Cloud9 ambiente in esecuzione nello stesso Amazon VPC del cluster Amazon DocumentDB.

Nell'esempio seguente, sostituisci ogni segnaposto dell'input utente con le tue informazioni.

Il codice seguente esegue il dump degli indici dal cluster Amazon DocumentDB di origine:

python migrationtools/documentdb_index_tool.py --dump-indexes --uri mongodb://sample-user:user-password@sample-source-cluster.node.us-east 1.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false' --dir ~/index.js/ 2020-02-11 21:51:23,245: Successfully authenticated to database: admin2020-02-11 21:46:50,432: Successfully connected to instance docdb-40-xx.cluster-xxxxxxxx.us-east-1.docdb.amazonaws.com:27017 2020-02-11 21:46:50,432: Retrieving indexes from server...2020-02-11 21:46:50,440: Completed writing index metadata to local folder: /home/ec2-user/index.js/

Una volta che gli indici sono stati esportati con successo, ripristina tali indici nel cluster Amazon DocumentDB di destinazione. Per ripristinare gli indici esportati nel passaggio precedente, utilizza lo strumento di indicizzazione di Amazon DocumentDB. Il comando seguente ripristina gli indici nel cluster Amazon DocumentDB di destinazione dalla directory specificata.

python migrationtools/documentdb_index_tool.py --restore-indexes --uri mongodb://sample-user:user-password@sample-destination-cluster.node.us-east 1.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false' --dir ~/index.js/ 2020-02-11 21:51:23,245: Successfully authenticated to database: admin2020-02-11 21:51:23,245: Successfully connected to instance docdb-50-xx.cluster-xxxxxxxx.us-east-1.docdb.amazonaws.com:27017 2020-02-11 21:51:23,264: testdb.coll: added index: _id

Per confermare di aver ripristinato correttamente gli indici, connettiti al cluster Amazon DocumentDB di destinazione con la shell mongo ed elenca gli indici per una determinata raccolta. Vedi il codice seguente:

mongo --ssl --host docdb-xx-xx.cluster-xxxxxxxx.us-east-1.docdb.amazonaws.com:27017 --sslCAFile rds-ca-2019-root.pem --username documentdb --password documentdb db.coll.getIndexes()

Fase 4: Creare un'istanza di AWS DMS replica

Un'istanza di AWS DMS replica collega e legge i dati dal cluster Amazon DocumentDB di origine e li scrive nel cluster Amazon DocumentDB di destinazione. L'istanza di AWS DMS replica può eseguire sia operazioni di carico di massa che operazioni CDC. La maggior parte di questa elaborazione avviene in memoria. Tuttavia, operazioni di grandi dimensioni potrebbero richiedere un certo buffering su disco. Anche le transazioni e i file di log memorizzati nella cache vengono scritti su disco. Dopo la migrazione dei dati, l'istanza di replica trasmette anche tutti gli eventi di modifica per assicurarsi che l'origine e la destinazione siano sincronizzate.

Per creare un'istanza di replica AWS DMS :

  1. Apri la AWS DMS console.

  2. Nel riquadro di navigazione, scegli Replication instances (Istanze di replica).

  3. Scegliere Create replication instance (Crea istanza di replica) e immettere le seguenti informazioni:

    • In Nome, inserisci un nome a tua scelta. Ad esempio, docdb36todocdb40.

    • In Descrizione, inserisci una descrizione a tua scelta. Per listitem, istanza di replica da Amazon DocumentDB 3.6 ad Amazon DocumentDB 4.0.

    • Per la classe Instance, scegli la dimensione in base alle tue esigenze.

    • Per la versione Engine, scegli 3.4.1.

    • Per Amazon VPC, scegli Amazon VPC che ospita i cluster Amazon DocumentDB di origine e di destinazione.

    • Per lo storage allocato (GiB), usa il valore predefinito di 50 GiB. Se hai un carico di lavoro con throughput di scrittura elevato, aumenta questo valore in modo che corrisponda al tuo carico di lavoro.

    • Per Multi-AZ, scegli se hai bisogno di supporto per alta disponibilità e failover.

    • Per Publicly accessible (Accessibile pubblicamente), abilitare questa opzione.

    Immagine: finestra di dialogo di configurazione dell'istanza di replica che mostra 10 campi e pulsanti configurabili.
  4. Scegli Create replication instance (Crea istanza di replica).

Fase 5: Creare un AWS DMS endpoint di origine

L'endpoint di origine viene utilizzato per il cluster Amazon DocumentDB di origine.

Per creare un endpoint di origine

  1. Apri la AWS DMS console.

  2. Nel pannello di navigazione, seleziona Endpoint.

  3. Scegli Create endpoint e inserisci le seguenti informazioni:

    • Per Endpoint type (Tipo di endpoint), scegliere Source (Origine).

    • >Per l'identificatore dell'endpoint, inserisci un nome facile da ricordare, ad esempio. docdb-source

    • Per Source engine, scegli. docdb

    • Per Nome server, inserisci il nome DNS del cluster Amazon DocumentDB di origine.

    • Per Porta, inserisci il numero di porta del cluster Amazon DocumentDB di origine.

    • Per la modalità SSL, scegli. verify-full

    • Per il certificato CA, scegli Aggiungi nuovo certificato CA. Scarica il nuovo certificato CA, nuovo certificato per creare un pacchetto di connessioni TLS. Per l'identificatore del certificato, inserisci. rds-combined-ca-bundle Per Import certificate file (Importa file certificato), scegliere Choose file (Seleziona file) e passare al file .pem scaricato in precedenza. Selezionare e aprire il file. Scegli Importa certificato, quindi scegli rds-combined-ca-bundle dal menu a discesa Scegli un certificato

    • Per Nome utente, inserisci il nome utente principale del cluster Amazon DocumentDB di origine.

    • Per Password, inserisci la password principale del cluster Amazon DocumentDB di origine.

    • Per Nome del database, inserisci il nome del database che desideri aggiornare.

    Immagine: una finestra di dialogo di configurazione dell'endpoint per la AWS DMS sorgente che mostra nove campi configurabili e menu a discesa.
  4. Verifica la connessione per verificare che sia stata configurata correttamente.

    Immagine: finestra di dialogo di test della connessione all'endpoint per la AWS DMS sorgente che mostra due menu a discesa, un pulsante di test e un elenco dei test eseguiti.
  5. Scegliere Create Endpoint (Crea endpoint).

Nota

AWS DMS può migrare solo un database alla volta.

Passaggio 6: creare un endpoint di AWS DMS destinazione

L'endpoint di destinazione è per il cluster Amazon DocumentDB di destinazione.

Per creare un endpoint di destinazione:

  1. Apri la AWS DMS console.

  2. Nel pannello di navigazione, seleziona Endpoint.

  3. Scegliere Create endpoint (Crea endpoint) e immettere le informazioni seguenti:

    • Per Endpoint type (Tipo di endpoint), scegliere Target (Destinazione).

    • Per Endpoint identifier (Identificatore endpoint), immettere un nome facile da ricordare, ad esempio docdb-target.

    • Per Source engine, sceglidocdb.

    • Per Nome server, inserisci il nome DNS del cluster Amazon DocumentDB di destinazione.

    • Per Porta, inserisci il numero di porta del cluster Amazon DocumentDB di destinazione.

    • Per la modalità SSL, scegli. verify-full

    • Per il certificato CA, scegli il rds-combined-ca-bundle certificato esistente dal menu a discesa Scegli un certificato.

    • Per Nome utente, inserisci il nome utente principale del cluster Amazon DocumentDB di destinazione.

    • Per Password, inserisci la password principale del cluster Amazon DocumentDB di destinazione.

    • Per Nome del database, inserisci lo stesso nome di database utilizzato per configurare l'endpoint di origine.

    Immagine: una finestra di dialogo di configurazione dell'endpoint per l' AWS DMS obiettivo che mostra nove campi configurabili e menu a discesa.
  4. Verifica la connessione per verificare che sia stata configurata correttamente.

    Immagine: finestra di dialogo di test della connessione all'endpoint per la AWS DMS destinazione che mostra due menu a discesa, un pulsante di test e un elenco di test eseguiti.
  5. Scegliere Create Endpoint (Crea endpoint).

Fase 7: Creare ed eseguire un'attività di migrazione

Un' AWS DMS attività associa l'istanza di replica all'istanza di origine e di destinazione. Quando si crea un'attività di migrazione, si specifica l'endpoint di origine, l'endpoint di destinazione, l'istanza di replica e tutte le impostazioni di migrazione desiderate. È possibile creare un' AWS DMS attività con tre diversi tipi di migrazione: migrazione dei dati esistenti, migrazione dei dati esistenti e replica delle modifiche in corso o replica solo delle modifiche ai dati. Poiché lo scopo di questa procedura dettagliata è aggiornare un cluster Amazon DocumentDB con tempi di inattività minimi, i passaggi utilizzano l'opzione per migrare i dati esistenti e replicare le modifiche in corso. Con questa opzione, AWS DMS acquisisce le modifiche durante la migrazione dei dati esistenti. AWS DMS continua ad acquisire e applicare le modifiche anche dopo il caricamento di grandi quantità di dati. Alla fine i database di origine e di destinazione saranno sincronizzati, con tempi di inattività per la migrazione quasi nulli.

Di seguito sono riportati i passaggi per creare un'attività di migrazione per una migrazione con tempi di inattività minimi:

  1. Apri la AWS DMS console.

  2. Nel riquadro di navigazione scegliere Tasks (Attività).

  3. Scegliere Create task (Crea attività) e immettere le informazioni seguenti:

    • Per Task identifier, inserisci un nome facile da ricordare, ad esempiomy-dms-upgrade-task.

    • Per l'istanza di replica, scegliete l'istanza di replica creata nel passaggio 3: creazione di un'istanza di replica AWS Database Migration Service

    • Per l'endpoint del database di origine, scegli l'endpoint di origine creato nel passaggio 4: Creazione di un endpoint di origine AWS Database Migration Service

    • Per l'endpoint del database di Target, scegli l'endpoint di destinazione che hai creato nel passaggio 5: Creare un endpoint di destinazione AWS Database Migration Service

    • Per il tipo di migrazione, scegli Migra i dati esistenti e replica le modifiche in corso.

    Immagine: finestra di dialogo di configurazione dell'attività per l'attività di migrazione.
  4. Nella sezione Impostazioni attività, abilita CloudWatch i log.

  5. Per la sezione Mappature delle tabelle, scegli Non fare nulla. Ciò garantirà che gli indici creati nel passaggio 3 non vengano eliminati.

  6. Per la configurazione di avvio dell'attività di migrazione, scegli Automaticamente al momento della creazione. Questo avvierà automaticamente l'attività di migrazione una volta creata.

  7. Scegli Create task (Crea attività).

AWS DMS ora inizia la migrazione dei dati dal cluster Amazon DocumentDB di origine al cluster Amazon DocumentDB di destinazione. Lo stato dell'attività dovrebbe cambiare da Avvio a In esecuzione. Puoi monitorare l'avanzamento scegliendo Attività nella AWS DMS console. Dopo alcuni minuti/ore (a seconda delle dimensioni della migrazione), lo stato dovrebbe cambiare da Caricamento completo, replica in corso. Ciò significa che AWS DMS ha completato una migrazione a pieno carico del cluster Amazon DocumentDB di origine verso un cluster Amazon DocumentDB di destinazione e ora sta replicando gli eventi di modifica.

Immagine: finestra di dialogo di riepilogo della migrazione.

Alla fine la fonte e la destinazione saranno sincronizzate. Puoi verificare se sono sincronizzati eseguendo un'count()operazione sulle tue raccolte per verificare che tutti gli eventi di modifica siano stati migrati.

Fase 8: Modifica dell'endpoint dell'applicazione nel cluster Amazon DocumentDB di destinazione

Una volta completato il caricamento completo e dopo la replica continua del processo CDC, sei pronto a modificare l'endpoint di connessione al database dell'applicazione dal cluster Amazon DocumentDB di origine al cluster Amazon DocumentDB di destinazione.