¿Cómo puedo migrar mis tablas de DynamoDB de una cuenta de AWS a otra?

8 minutos de lectura
0

Quiero copiar los datos de mi tabla de Amazon DynamoDB a una nueva en otra cuenta de la misma cuenta o de una cuenta diferente

Breve descripción

Dispone de varios métodos que puede utilizar para transferir datos de una tabla de DynamoDB de una cuenta de AWS a otra. La mejor elección puede depender de varios factores, como el volumen de datos, la necesidad de actualizaciones en tiempo real y la complejidad de las transformaciones de datos.

Para migrar las tablas de DynamoDB de una cuenta de AWS a otra, elija una de las siguientes opciones:

  • AWS Backup
  • Exportación de DynamoDB a Amazon Simple Storage Service (Amazon S3) e importación
  • Amazon EMR
  • AWS Data Pipeline
  • Amazon S3 y AWS Glue
  • Script de exportación e importación personalizado

Resolución

Según su caso de uso, lleve a cabo las siguientes tareas.

AWS Backup

Para las cuentas de AWS de origen y destino de la misma organización de AWS Organizations, AWS Backup puede realizar transferencias de datos de DynamoDB entre regiones y entre cuentas. Para obtener más información, consulte Creación de copias de seguridad entre cuentas de AWS.

En la cuenta de destino, complete los siguientes pasos:

  1. Cree un almacén de AWS Backup en la cuenta de destino de la región de AWS en la que esté presente su DynamoDB. Al crear el almacén, utilice la clave de AWS Key Management Service (AWS KMS) que ya haya configurado. Esta es la clave que compartió con la cuenta de origen de la misma organización.
  2. Agregue una política de AWS Identity and Access Management (IAM) al almacén que le permita realizar copias de seguridad en el almacén. Para ello, seleccione la opción Permitir el acceso a un almacén de copia de seguridad de la organización. Esto permite que otras cuentas de la misma organización se copien en el almacén.

En la cuenta de origen, complete las siguientes tareas:

  1. Cree un almacén de AWS Backup en la región a la que necesite migrar los datos de la tabla. Al crear el almacén, utilice la clave de AWS KMS que ya configuró. Esta es la clave que compartió con otras cuentas de la organización.
  2. Agregue una política de IAM al almacén que permita que otras cuentas de la organización puedan copiar contenido en este. Para ello, seleccione la opción Permitir el acceso a un almacén de copia de seguridad de la organización.
  3. Cree un plan de copia de seguridad para generar copias de seguridad de las tablas de DynamoDB de la cuenta de origen en la cuenta de destino. En Almacén de copia de seguridad, asegúrese de elegir el almacén que creó en la cuenta de origen.
  4. Seleccione la opción Copiar en el almacén de otra cuenta.
  5. En Asignar recursos, elija la opción Incluir tipos de recursos específicos para incluir los recursos de los que debe hacer una copia de seguridad.
  6. En Seleccionar tipos de recursos específicos, seleccione DynamoDB. A continuación, elija todas las tablas o solo las tablas de las que necesite hacer una copia de seguridad.

Para revisar la configuración y restaurar una tabla, siga estos pasos:

  1. En la cuenta de destino, navegue hasta el almacén que creó. Puede ver que los puntos de recuperación son los mismos que en la cuenta de origen.
  2. Puede restaurar la tabla de DynamoDB en la cuenta de destino.

Nota: Esta opción solo se admite para cuentas que forman parte de la misma organización de AWS.

Exportación de DynamoDB a Amazon S3 e importación

Utilice la característica de exportación de DynamoDB a Amazon S3 para exportar datos de una tabla de Amazon DynamoDB en cualquier momento de su periodo de recuperación a un momento dado. Para ver un ejemplo de cómo utilizar esta característica, consulte Exportar datos de tablas de Amazon DynamoDB a su lago de datos en Amazon S3, sin necesidad de escribir ningún código.

Para utilizar la característica de exportación de DynamoDB a Amazon S3, siga estos pasos:

  1. Para migrar los datos de la tabla de DynamoDB, exporte la tabla a un bucket de Amazon S3 en la cuenta de destino.
    Nota: DynamoDB debe tener permisos de s3:ListBucket para este bucket de S3. El bucket de S3 no puede tener ninguna lista de control de acceso que deniegue el acceso a los datos exportados.
  2. Importe los datos del bucket de S3 a una nueva tabla de la cuenta de destino.

Nota: Esta opción requiere que configure y administre AWS Data Pipeline, los permisos entre cuentas y los roles de IAM.

Amazon EMR

Para usar Amazon EMR para exportar sus datos a un bucket de S3, utilice uno de los siguientes métodos:

  • Utilice DynamoDBStorageHandler para ejecutar consultas de Hive o Spark en tablas de DynamoDB. Para obtener más información, consulte Exportar datos de DynamoDB.
  • Para exportar o importar tablas de DynamoDB, utilice la herramienta de código abierto emr-dynamodb-tool en GitHub.

Para usar Amazon EMR para migrar una tabla de DynamoDB, siga estos pasos:

  1. Inicie clústeres de EMR en las cuentas de origen y destino. En la sección Configuración del software, asegúrese de elegir una opción que incluya Apache Hive.
    Nota: Una práctica recomendada es iniciar clústeres de Amazon EMR en subredes privadas. Las subredes privadas deben tener un punto de enlace de VPC de Amazon S3 y una ruta a DynamoDB. Si los clústeres necesitan acceder a Internet, utilice una puerta de enlace NAT que resida en una subred pública. Para obtener más información, consulte VPC con servidores en subredes privadas y NAT.
  2. Actualice los roles de IAM EMR_EC2_DefaultRole de ambas cuentas para que tengan permiso para escribir en el bucket de S3 de la cuenta de destino. Para obtener más información, consulte Configuración de los roles de servicio de IAM de los permisos de Amazon EMR para los servicios y recursos de AWS.
  3. En la cuenta de origen, use SSH para conectarse al nodo principal.
  4. En la cuenta de origen, utilice los comandos de Hive para exportar los datos de la tabla de DynamoDB al bucket de S3 de la cuenta de destino.
  5. En la cuenta de destino, importe los datos de Amazon S3 a la nueva tabla de DynamoDB.
    Nota: Si utiliza una tabla provisional para capturar las escrituras que se produjeron durante la migración, repita los pasos 3 y 4 de la tabla provisional.

Para reducir el tiempo de inactividad, puede almacenar todas las transacciones que se producen durante la migración en una tabla provisional. Después de migrar la tabla de origen a la cuenta de destino, transfiera las nuevas transacciones de la tabla provisional a la tabla de destino.

El tiempo necesario para migrar las tablas con Amazon EMR puede variar. El tiempo depende del rendimiento aprovisionado de la tabla de DynamoDB, del rendimiento de la red y de la cantidad de datos almacenados en la tabla.

Nota: Esta opción requiere que cree y mantenga un clúster de EMR.

AWS Data Pipeline

Utilice AWS Data Pipeline para exportar datos de una tabla de DynamoDB a un archivo de un bucket de Amazon S3. Esta opción ejecuta clústeres de Hadoop administrados en Amazon EMR para realizar operaciones de lectura y escritura entre DynamoDB y Amazon S3.

Nota: Esta opción requiere que configure y administre AWS Data Pipeline, los permisos entre cuentas y los roles de IAM.

Amazon S3 y AWS Glue

Los trabajos de ETL de AWS Glue permiten leer datos de la tabla de DynamoDB de otra cuenta y escribir datos en la tabla de DynamoDB de otra cuenta. Utilice el parámetro dynamodb.sts.roleArn para asumir un rol entre cuentas en el script del trabajo. Cuando asume el rol, obtiene credenciales temporales que deben usarse para el acceso entre cuentas a DynamoDB. Para obtener más información, consulte Acceso entre regiones y entre cuentas a tablas de DynamoDB y Cómo exportar una tabla de Amazon DynamoDB a Amazon S3 mediante AWS Step Functions y AWS Glue.

Nota: Esta opción requiere un uso intensivo de Spark y que mantenga el código fuente para su trabajo de ETL de AWS Glue. Para obtener más información, consulte Conexiones de DynamoDB.

Script de exportación e importación personalizado

Para conjuntos de datos más pequeños, de alrededor de 2 GB, o para transferencias únicas, puede utilizar un proceso de exportación e importación manual. Por ejemplo, puede usar un código de C# que utilice las operaciones de análisis de DynamoDB para leer los elementos de la tabla de origen. A continuación, el código utiliza las llamadas a la API BatchWriteItem para escribir los datos en una tabla de destino de la cuenta de destino.

Nota: Este proceso puede llevar mucho tiempo en el caso de grandes conjuntos de datos y requiere scripting personalizado. Para la entidad de IAM que ejecuta el script, debe configurar el acceso entre cuentas a S3.

Información relacionada

¿Cómo puedo migrar mis tablas de Amazon DynamoDB de una cuenta de AWS a otra?

¿Cómo puedo hacer una copia de seguridad de una tabla de DynamoDB en Amazon S3?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses