Comment restaurer la sauvegarde de ma table Amazon DynamoDB dans une autre région ?

Dernière mise à jour : 17-08-2022

Je souhaite restaurer la sauvegarde de ma table Amazon DynamoDB dans une autre région.

Solution

Pour restaurer votre table DynamoDB dans une autre région, vous pouvez utiliser l'une des approches suivantes.

Restauration d'une table DynamoDB dans une autre région à l'aide de DynamoDB

  1. Ouvrez la console DynamoDB.
  2. Dans le volet de navigation, sélectionnez Backup plans (Plans de sauvegarde).
  3. Dans la liste affichée, choisissez la sauvegarde à partir de laquelle vous souhaitez restaurer la table.
  4. Choisissez Restore.
  5. Pour Nom de la table restaurée, entrez le nouveau nom de la table.
  6. Pour les index secondaires, sélectionnez l'option de votre choix.
  7. Pour Destination AWS Region, sélectionnez Cross-Region.
  8. Pour Sélectionner la région AWS de destination, choisissez la région de votre choix.
  9. Pour la gestion des clés de chiffrement, sélectionnez l'option de votre choix.
  10. Choisissez Restore.

Restauration d'une table DynamoDB dans une autre région à l'aide d'AWS Glue

Vous pouvez utiliser une tâche AWS Glue pour restaurer une table DynamoDB dans une autre région. AWS Glue offre plus de flexibilité dans le processus de restauration. Vous pouvez choisir cette approche si vous ne souhaitez pas restaurer tous les attributs ou les champs dans la table cible de la nouvelle région. Cette approche ne fonctionne que pour une table exportée vers Amazon Simple Storage Service (Amazon S3).

1.    Après avoir exporté la table DynamoDB vers Amazon S3 à l'aide de la fonctionnalité Exporter vers S3, créez une tâche AWS Glue. Veillez à spécifier les informations suivantes dans l'onglet Script :

datasource0 = glueContext.create_dynamic_frame.from_options(
    connection_type="dynamodb",
    connection_options={
        "dynamodb.export": "ddb",
        "dynamodb.tableArn": "arn:aws:dynamodb:source-region:account-number:table/TableName",
        "dynamodb.unnestDDBJson": True,
        "dynamodb.s3.bucket": "example-bucket",
        "dynamodb.s3.prefix": "dynamodb",
        "dynamodb.s3.bucketOwner": "account-number",
    }
)

Remarque : veillez à utiliser le nœud de transformation ApplyMapping et à spécifier les champs qui doivent être présents dans la table cible. Ce paramètre génère automatiquement le code PySpark en fonction de l'entrée fournie.

Exemple :

applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [("resource_id", "string", "resource_id", "string")], transformation_ctx = "applymapping1")

2.    Spécifiez une opération de réception pour écrire directement dans la table de destination de la région cible.

Exemple :

glueContext.write_dynamic_frame_from_options (frame = MappedFrame, connection_type = "dynamodb", connection_options = { "dynamodb.region": "example-region", "dynamodb.output.tableName": "example_table", "dynamodb.throughput.write.percent": "1.0" })

3.    Exécutez la tâche à partir de la console AWS Glue pour charger les données de la région actuelle vers la région cible.