Come faccio a copiare e ripristinare uno snapshot Amazon Redshift Serverless su un altro account AWS?

Ultimo aggiornamento: 11/10/2022

Voglio copiare e ripristinare uno snapshot Amazon Redshift Serverless da un account AWS a un altro. In che modo posso farlo?

Risoluzione

Esegui la copia e il ripristino da un account AWS all'altro utilizzando la console Amazon Redshift o l'interfaccia della linea di comando AWS (AWS CLI).

Prima di iniziare, tieni presente quanto segue:

  • Puoi ripristinare uno snapshot in uno spazio dei nomi Amazon Redshift Serverless solo se il suo stato è Available (Disponibile) ed è associato a un gruppo di lavoro disponibile.
  • Il ripristino di uno spazio dei nomi Amazon Redshift Serverless da uno snapshot sostituisce tutti i database dello spazio dei nomi con i database presenti nello snapshot.
  • Durante il ripristino, Amazon Redshift Serverless non sarà disponibile.

Copia e ripristino tramite la console Amazon Redshift

Conversione di un punto di ripristino di Amazon Redshift Serverless in uno snapshot nell'account di origine

  1. Apri la console Amazon Redshift.
  2. Nel pannello di navigazione, scegli Redshift Serverless, quindi scegli Data backup (Backup dei dati).
  3. In Recovery points (Punti di ripristino), scegli data/ora di creazione del punto di ripristino che vuoi convertire in uno snapshot.
  4. Scegli Create snapshot from recovery point (Crea snapshot da punto di ripristino).
  5. Inserisci uno Snapshot identifier (Identificatore snapshot) e un periodo di conservazione.
  6. Scegli Create (Crea).

Condivisione dello snapshot dell'account di origine con un altro account AWS

  1. Apri la console Amazon Redshift.
  2. Nel pannello di navigazione, scegli Redshift Serverless, quindi scegli Data backup (Backup dei dati).
  3. Scegli lo snapshot creato in precedenza.
  4. Scegli Actions, Manage access (Azioni, Gestisci l'accesso).
  5. Scegli Add AWS account (Aggiungi account AWS) che si trova in Provide access to serverless accounts (Fornisci l'accesso agli account serverless) e inserisci un AWS account ID (ID account AWS) (account di destinazione).
  6. Seleziona Save changes (Salva le modifiche).

Ripristino dello snapshot in uno spazio dei nomi Amazon Redshift Serverless nell'account di destinazione

  1. Apri la console Amazon Redshift.
  2. Nel pannello di navigazione, scegli Redshift Serverless, quindi scegli Data backup (Backup dei dati).
  3. Scegli lo snapshot condiviso con l'ID account AWS da ripristinare. È possibile ripristinare solo uno snapshot alla volta.
  4. Scegli Actions, Restore to serverless namespace (Azioni, Ripristina nello spazio dei nomi serverless).
  5. Scegli uno spazio dei nomi disponibile in cui effettuare il ripristino. È possibile ripristinare solo gli spazi dei nomi con lo stato Available (Disponibile).
  6. Scegli Restore (Ripristina).

Copia e ripristino tramite AWS CLI

Nota:se ricevi un messaggio di errore durante l'esecuzione dei comandi di AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Conversione di un punto di ripristino di Amazon Redshift Serverless in uno snapshot nell'account di origine

1.    Usa il comando list-recovery-points per ottenere un elenco di snapshot creati dopo un'ora di inizio start-time. Esegui il seguente comando e sostituisci namespacename con il tuo spazio dei nomi, us-west-2 con la tua Regione AWS e starttime con l'ora di inizio del tuo punto di ripristino nel fuso orario UTC:

aws redshift-serverless list-recovery-points --namespace-name <namespacename> --region <region name> --start-time <starttime>

Nell'esempio seguente, il cluster Redshift Serverless è nella regione Stati Uniti occidentali (Oregon) con uno spazio dei nomi default e un'ora di inizio 2022-09-06T07:10 UTC:

aws redshift-serverless list-recovery-points --namespace-name default --region us-west-2 --start-time 2022-09-06T07:10

2.    Usa il comando convert-recovery-point-to-snapshot per creare uno snapshot e un periodo di conservazione. Esegui il seguente comando e sostituisci recoveryPointId con l'ID dell'output del punto di ripristino del passaggio 1, days con il numero di giorni in cui conservare lo snapshot, snapshot name con il nome del tuo snapshot e us-west-2 con la tua Regione AWS:

aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id <recoveryPointId> --retention-period <days> --snapshot-name <snapshot name> --region <region name>

Nell'esempio seguente, il nome dello snapshot è snapshot01, con un periodo di conservazione di tre giorni e si trova nella regione Stati Uniti occidentali (Oregon).

aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id 72acee50-34df-45f6-865f-46aa178ada82 --retention-period 3 --snapshot-name snapshot01 --region us-west-2

3.    Usa il comando get-snapshot per verificare che lo snapshot sia stato creato. Esegui il seguente comando e sostituisci snapshot name con il nome del tuo snapshot:

aws redshift-serverless get-snapshot --snapshot-name <snapshot name>

Condivisione dello snapshot dell'account di origine con un altro account AWS

Usa il comando put-resource-policy per consentire l'accesso allo snapshot a un altro account AWS. Esegui il seguente comando e sostituisci destination account ID con l'ID dell'account AWS di destinazione e snapshot arn con l'ARN dello snapshot:

aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\”<destination account ID>\”]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn <snapshot arn>

Nell'esempio seguente, l'accesso viene concesso all'ARN dello snapshot nell'account numero 123456789012:

aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\"123456789012\"]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe

Ripristino dello snapshot in uno spazio dei nomi Amazon Redshift Serverless nell'account di destinazione

1.    Usa il comando list-snapshots per elencare gli snapshot nella tua Regione AWS. Esegui il seguente comando e sostituisci us-west-2 con la tua Regione AWS:

aws redshift-serverless list-snapshots  --region us-west-2

2.    Usa il comando restore-from-snapshot per ripristinare lo snapshot in un Amazon Redshift Serverless. Esegui il seguente comando e sostituisci snapshot name con il nome del tuo snapshot, workgroup name con il nome del tuo gruppo di lavoro e snapshot arn con l'ARN dello snapshot del comando precedente:

aws redshift-serverless  restore-from-snapshot --namespace-name <namespace name > --workgroup-name <workgroup name> --snapshot-arn <snapshot arn>

Nell'esempio seguente, l'ID account 112233445566 ha un Amazon Redshift Serverless con lo stato Available (Disponibile), con uno spazio dei nomi restore e un gruppo di lavoro restore:

aws redshift-serverless restore-from-snapshot --namespace-name restore --workgroup-name restore --snapshot-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe

Questo articolo è stato utile?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?