Comment copier et restaurer un instantané Amazon Redshift Serverless vers un autre compte AWS ?

Dernière mise à jour : 11-10-2022

Je souhaite copier et restaurer un instantané Amazon Redshift Serverless d'un compte AWS vers un autre compte AWS. Comment procéder ?

Solution

Effectuez une copie et une restauration d'un compte AWS vers un autre à l'aide de la console Amazon Redshift ou de l'interface de ligne de commande AWS (AWS CLI).

Avant de commencer, vérifiez les points suivants :

  • Vous pouvez restaurer un instantané dans un espace de noms Amazon Redshift Serverless uniquement s'il a l'état Disponible et s'il est associé à un groupe de travail disponible.
  • La restauration d'un espace de noms Amazon Redshift Serverless à partir d'un instantané remplace toutes les bases de données de l'espace de nommage par les bases de données de l'instantané.
  • Pendant la restauration, Amazon Redshift Serverless ne sera pas disponible.

Copier et restaurer à l'aide de la console Amazon Redshift

Convertir un point de restauration d'Amazon Redshift Serverless en instantané dans le compte source

  1. Ouvrez la console Amazon Redshift.
  2. Dans le volet de navigation, sélectionnez Redshift Serverless, puis Restauration des données.
  3. Sous Points de restauration, choisissez l'heure de création du point de récupération que vous souhaitez convertir en instantané.
  4. Choisissez Créer un instantané à partir du point de restauration.
  5. Entrez un identifiant de snapshot et une période de conservation.
  6. Sélectionnez Create (Créer).

Partagez l'instantané du compte source avec un autre compte AWS

  1. Ouvrez la console Amazon Redshift.
  2. Dans le volet de navigation, sélectionnez Redshift Serverless, puis Restauration des données.
  3. Choisissez l'instantané que vous avez créé précédemment.
  4. Choisissez Actions, puis Gérer l'accès.
  5. Choisissez Ajouter un compte AWS situé sous Fournir l'accès aux comptes sans serveur et entrez un ID de compte AWS (destination).
  6. Sélectionnez Save changes (Enregistrer les modifications).

Restaurez l'instantané dans un espace de noms Amazon Redshift Serverless dans le compte de destination

  1. Ouvrez la console Amazon Redshift.
  2. Dans le volet de navigation, sélectionnez Redshift Serverless, puis Restauration des données.
  3. Choisissez l'instantané partagé avec l'ID de compte AWS à restaurer. Vous ne pouvez restaurer qu'un seul instantané à la fois.
  4. Choisissez Actions, Restaurer vers un espace de noms sans serveur.
  5. Choisissez un espace de noms disponible vers lequel effectuer la restauration. Vous pouvez restaurer uniquement les espaces de noms dont le statut est Disponible.
  6. Choisissez Restore.

Copiez et restaurez à l'aide de l'interface

Remarque : si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Convertir un point de restauration d'Amazon Redshift Serverless en instantané dans le compte source

1.    Utilisez la commande list-recovery-points pour obtenir la liste des instantanés créés après une heure de démarrage. Exécutez la commande suivante et remplacez namespacename par votre espace de noms, us-west-2 par votre région AWS et starttime par l'heure de début de votre point de restauration en UTC :

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

Dans l'exemple suivant, le cluster Redshift Serverless se trouve dans la région USA Ouest (Oregon) avec un espace de noms par défaut et une heure de début du 2022-09-06 T 07h10 UTC :

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

2.    Utilisez la commande convert-recovery-point-to-snapshot pour créer un instantané et une période de conservation. Exécutez la commande suivante et remplacez RecoveryPointID par l'ID du point de récupération obtenu à l'étape 1, days par le nombre de jours nécessaires pour conserver le snapshot, le nom du snapshot par le nom de votre snapshot et us-west- 2 avec votre région AWS :

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

Dans l'exemple suivant, l'instantané est nommé snapshot01 avec une période de conservation de trois jours et se trouve dans la région USA Ouest (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.    Utilisez la commande get-snapshot pour confirmer que l'instantané a été créé. Exécutez la commande suivante et remplacez le nom de l'instantané par le nom de votre instantané :

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

Partagez l'instantané du compte source avec un autre compte AWS

Utilisez la commande put-resource-policy pour fournir à un autre compte AWS l'accès au snapshot. Exécutez la commande suivante et remplacez l'ID du compte de destination par l'ID du compte AWS de destination et l'ARN du snapshot par l'ARN du 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>

Dans l'exemple suivant, l'accès est fourni à l'ARN du snapshot sous le numéro de compte 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

Restaurez l'instantané dans un espace de noms Amazon Redshift Serverless dans le compte de destination

1.    Utilisez la commande list-snapshots pour répertorier l'instantané dans votre région AWS. Exécutez la commande suivante et remplacez us-west-2 par votre région AWS :

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

2.    Utilisez la commande restore-from-snapshot pour restaurer l'instantané sur un Amazon Redshift Serverless. Exécutez la commande suivante et remplacez le nom du snapshot par le nom de votre instantané, le nom du groupe de travail par le nom de votre groupe de travail et le nom du snapshot par l'ARN du snapshot de la commande précédente :

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

Dans l'exemple suivant, l'ID de compte 112233445566 possède un état Amazon Redshift Serverless in Available avec un nom d'espace de noms de restauration et un nom de groupe de travail de restauration :

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

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?