Uso de una implementación personalizada en .NET o Java con AWS SDKs - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de una implementación personalizada en .NET o Java con AWS SDKs

En lugar de confiar en otros AWS servicios para realizar copias de tablas entre cuentas, puede crear una solución personalizada mediante .NET, Java, Python u otro lenguaje de programación compatible. AWS proporciona SDKs, que permiten el acceso programático a AWS los servicios o APIs, en varios idiomas. Esta solución requiere experiencia práctica de desarrollo en el idioma que utilice.

Puede crear una aplicación de consola (o un nuevo punto final de API, si trabaja en una API web) que se pueda invocar para realizar una copia completa de la tabla. La solución personalizada debe realizar los siguientes pasos:

  1. Elimine la tabla de DynamoDB de la cuenta de destino.

  2. Cree la tabla de DynamoDB (con capacidad bajo demanda) y los índices en la cuenta de destino. Como alternativa, puede utilizar el modo de capacidad aprovisionada y configurar RCUs y WCUs según sus necesidades.

  3. Copie los datos de la cuenta de origen a la cuenta de destino mediante la operación de escritura por lotes de DynamoDB AWS en el SDK para reducir el número de llamadas de servicio a DynamoDB.

La implementación personalizada utiliza tokens de seguridad para acceder a las políticas de IAM que proporcionan acceso a las cuentas de origen y destino.

Esta solución se adapta mejor a las tablas de DynamoDB de tamaño pequeño (menos de 500 MB).

Para una tabla de DynamoDB con 200 000 elementos (un tamaño medio de elemento de 30 KB y un tamaño de tabla de 250 MB), esta solución, que incluye la creación de tablas y el relleno de datos, tarda unos 5 minutos:

  • Modo de capacidad: aprovisionado, con 4000 y 4000 RCUs WCUs

  • Unidades de capacidad consumidas: 30 K RCUs y aproximadamente 400 K WCUs

Ventajas

  • La solución no depende de ningún otro AWS servicio que no sea DynamoDB, por lo que hay menos gastos de mantenimiento.

  • Se puede hacer que la solución no tenga servidor utilizando una AWS Lambda función para ejecutarla. Sin embargo, el tiempo de ejecución debe ser de 15 minutos o menos.

Inconvenientes

  • La solución consume más RCUs y WCUs.

  • Puede que no sea una buena solución para conjuntos de datos grandes, ya que la solución requiere conexiones activas con dos tablas de DynamoDB diferentes en dos cuentas diferentes (utilizando dos tokens de seguridad diferentes). Si la copia de la tabla de un conjunto de datos grande tarda mucho tiempo, es posible que se produzcan interrupciones en la conexión o que el token de seguridad caduque, por lo que debe implementar una lógica que gestione esas posibilidades. También debes implementar la lógica para continuar con la copia desde donde se produjo el error.

Para obtener más información, consulte Copiar tablas de Amazon DynamoDB entre cuentas mediante un patrón de implementación personalizado.