¿Cómo puedo restaurar la copia de seguridad de mi tabla de Amazon DynamoDB en otra región?

Última actualización: 17/08/2022

Quiero restaurar la copia de seguridad de mi tabla de Amazon DynamoDB en otra región.

Resolución

Para restaurar la tabla de DynamoDB en una región diferente, puede usar uno de los siguientes enfoques.

Restaurar una tabla de DynamoDB en una región diferente mediante DynamoDB

  1. Abra la consola de DynamoDB.
  2. En el panel de navegación, elija Backups (Copias de seguridad).
  3. En la lista que se muestra, seleccione la copia de seguridad desde la que desea restaurar la tabla.
  4. Seleccione Restore (Restaurar).
  5. En Name of restored table (Nombre de la tabla restaurada), ingrese el nombre de la nueva tabla.
  6. Para Secondary indexes (Índices secundarios), seleccione la opción que desee.
  7. En Destination AWS Region (Región de AWS de destino), seleccione Cross-Region (Entre regiones).
  8. En Select the destination AWS Region (Seleccionar la región de AWS de destino), elija la región que prefiera.
  9. Para Encryption key management (Administración de claves de cifrado), seleccione la opción que desee.
  10. Seleccione Restore (Restaurar).

Restaurar una tabla de DynamoDB en una región diferente con AWS Glue

Puede usar un trabajo de AWS Glue para restaurar una tabla de DynamoDB en otra región. AWS Glue proporciona más flexibilidad con el proceso de restauración. Puede elegir este enfoque si no desea restaurar todos los atributos o campos en la tabla de destino de la nueva región. Este enfoque solo funciona para una tabla que se exporta a Amazon Simple Storage Service (Amazon S3).

1.    Tras exportar la tabla de DynamoDB a Amazon S3 mediante la característica Export to S3 (Exportar a S3), cree un trabajo de AWS Glue. Asegúrese de especificar la siguiente información en la pestaña 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",
    }
)

Nota: Asegúrese de usar el nodo de transformación ApplyMapping y especifique los campos que deben estar presentes en la tabla de destino. Esta configuración genera automáticamente el código PySpark en función de la entrada proporcionada.

Ejemplo:

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

2.    Especifique una operación de sumidero para escribir directamente en la tabla de destino en la región de destino.

Ejemplo:

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.    Ejecute el trabajo desde la consola de AWS Glue para cargar datos de la región actual a la región de destino.