Comment puis-je migrer mes tables DynamoDB d’un compte AWS vers un autre ?

Lecture de 8 minute(s)
0

Je souhaite copier les données de ma table Amazon DynamoDB vers une nouvelle table d'un autre compte, du même compte ou d'un compte différent

Brève description

Vous pouvez utiliser plusieurs méthodes pour transférer des données d'une table DynamoDB d'un compte AWS à un autre. Le meilleur choix peut dépendre de plusieurs facteurs, notamment le volume de données, la nécessité de mises à jour en temps réel et la complexité des transformations de données.

Pour migrer des tables DynamoDB d'un compte AWS vers un autre, choisissez l'une des options suivantes :

  • AWS Backup
  • Exportation de DynamoDB vers Amazon Simple Storage Service (Amazon S3) et importation
  • Amazon EMR
  • AWS Data Pipeline
  • Amazon S3 et AWS Glue
  • Script d'exportation et d'importation personnalisé

Résolution

En fonction de votre cas d’utilisation, effectuez les tâches suivantes.

AWS Backup

Pour les comptes AWS source et de destination appartenant à la même organisation AWS Organizations, AWS Backup peut effectuer des transferts de données DynamoDB entre régions et entre comptes. Pour en savoir plus, consultez la section Création de copies de sauvegarde entre comptes AWS.

Dans le compte cible, procédez comme suit :

  1. Créez un coffre-fort AWS Backup dans le compte cible de la région où se trouve votre DynamoDB. Lors de la création du coffre-fort, utilisez la clé AWS Key Management Service (AWS KMS) que vous avez configurée. Il s’agit de la clé qui a été partagée avec le compte source de la même organisation.
  2. Ajoutez une politique AWS Identity and Access Management (IAM) au coffre-fort qui vous permet de sauvegarder dans le coffre-fort. Pour ce faire, sélectionnez l'option Autoriser l'accès à un coffre-fort de sauvegarde depuis l'organisation. Cela permet à d’autres comptes de la même organisation d’effectuer des opérations de copie dans le coffre-fort.

Dans le compte source, effectuez les tâches suivantes :

  1. Créez un coffre-fort AWS Backup dans la région vers laquelle vous devez migrer les données de vos tables. Lors de la création du coffre-fort, utilisez la clé AWS KMS que vous avez déjà configurée. Il s’agit de la clé qui a été partagée avec les autres comptes de l’organisation.
  2. Ajoutez au coffre-fort une politique IAM qui autorise les autres comptes de l’organisation à effectuer des opérations de copie dans le coffre-fort. Pour ce faire, sélectionnez l'option Autoriser l'accès à un coffre-fort de sauvegarde depuis l'organisation.
  3. Créez un plan de sauvegarde pour générer des sauvegardes des tables DynamoDB du compte source vers le compte cible. Dans Coffre-fort de sauvegarde, sélectionnez le coffre-fort que vous avez créé dans le compte source comme coffre-fort de sauvegarde.
  4. Sélectionnez l’option Copier dans le coffre d’un autre compte.
  5. Dans Attribuer des ressources, choisissez l'option Inclure des types de ressources spécifiques pour inclure les ressources que vous devez sauvegarder.
  6. Dans Sélectionner des types de ressources spécifiques, sélectionnez DynamoDB. Puis, choisissez toutes les tables ou uniquement celles que vous devez sauvegarder.

Pour examiner votre configuration et restaurer une table, procédez comme suit :

  1. Dans le compte cible, accédez au coffre-fort que vous avez créé. Vous pouvez voir que les Points de récupération sont identiques à ceux du compte source.
  2. Restaurez votre table DynamoDB dans le compte cible.

Remarque : Cette option n'est prise en charge que pour les comptes qui font partie de la même organisation AWS.

Exportation de DynamoDB vers Amazon S3 et importation

Utilisez la fonctionnalité Exportation de DynamoDB vers Amazon S3 pour exporter des données depuis une table Amazon DynamoDB à tout moment au cours de votre fenêtre de récupération ponctuelle. Pour un exemple d'utilisation de cette fonctionnalité, consultez la section Exporter les données des tables Amazon DynamoDB vers votre lac de données dans Amazon S3, aucune écriture de code n'est requise.

Pour utiliser la fonctionnalité d'exportation de DynamoDB vers Amazon S3, procédez comme suit :

  1. Pour migrer les données de la table DynamoDB, exportez la table vers un compartiment Amazon S3 du compte cible.
    Remarque : DynamoDB doit disposer des autorisations s3:ListBucket sur ce compartiment S3. Le compartiment S3 ne peut contenir aucune liste de contrôle d’accès qui refuse l’accès aux données exportées.
  2. Importez les données du compartiment S3 dans une nouvelle table du compte cible.

Remarque : Cette option nécessite que vous configuriez et gériez AWS Data Pipeline, les autorisations entre comptes et les rôles IAM.

Amazon EMR

Pour utiliser Amazon EMR afin d'exporter vos données vers un compartiment S3, utilisez l'une des méthodes suivantes :

  • Utilisez DynamoDBStorageHandler pour exécuter des requêtes Hive ou Spark sur des tables DynamoDB. Pour plus d'informations, consultez la section Exportation de données depuis DynamoDB.
  • Pour exporter/importer des tables DynamoDB, utilisez l'outil emr-dynamodb-tool open source sur GitHub.

Pour utiliser Amazon EMR afin de migrer une table DynamoDB, procédez comme suit :

  1. Lancez des clusters EMR dans les comptes source et de destination. Dans la section Configuration logicielle, choisissez une option incluant Apache Hive.
    Remarque : Il est recommandé de lancer les clusters Amazon EMR dans des sous-réseaux privés. Ces sous-réseaux privés doivent disposer d’un point de terminaison d’un VPC Amazon S3 et d’un routage vers DynamoDB. Si les clusters doivent accéder à Internet, utilisez une passerelle NAT résidant dans un sous-réseau public. Pour plus d'informations, consultez la section VPC avec serveurs dans des sous-réseaux privés et NAT.
  2. Mettez à jour les rôles IAM EMR_EC2_DefaultRole des deux comptes pour disposer de l’autorisation d’écriture dans le compartiment S3 du compte de destination. Pour en savoir plus, consultez la section Configurer des rôles de service IAM pour les autorisations Amazon EMR sur les services et ressources AWS.
  3. Dans le compte source, utilisez SSH pour vous connecter au nœud principal.
  4. Dans le compte source, utilisez les commandes Hive pour exporter les données de la table DynamoDB vers le compartiment S3 du compte de destination.
  5. Dans le compte de destination, importez les données Amazon S3 dans la nouvelle table DynamoDB.
    Remarque : Si vous utilisez une table intermédiaire pour capturer les écritures effectuées pendant la migration, répétez les étapes 3 et 4 pour la table intermédiaire.

Pour réduire la durée d’indisponibilité, vous pouvez stocker toutes les transactions qui se produisent pendant la migration dans une table intermédiaire. Une fois la table source migrée vers le compte cible, transférez les nouvelles transactions de la table intermédiaire vers la table cible.

Le temps nécessaire à la migration des tables avec Amazon EMR peut varier. Ce délai dépend des performances du réseau de débit provisionné de la table DynamoDB et de la quantité de données stockées dans la table.

Remarque : Cette option requiert la création et la gestion d'un cluster EMR.

AWS Data Pipeline

Utilisez AWS Data Pipeline pour exporter les données d'une table DynamoDB vers un fichier d'un compartiment Amazon S3. Cette option exécute des clusters Hadoop gérés dans Amazon EMR pour effectuer des lectures et des écritures entre DynamoDB et Amazon S3.

Remarque : Cette option nécessite que vous configuriez et gériez AWS Data Pipeline, les autorisations entre comptes et les rôles IAM.

Amazon S3 et AWS Glue

Les tâches ETL AWS Glue permettent de lire les données de la table DynamoDB d'un autre compte et d'écrire des données dans la table DynamoDB d'un autre compte. Utilisez le paramètre dynamodb.sts.roleArn pour endosser un rôle entre comptes dans le script de tâche. Lorsque vous endossez ce rôle, vous obtenez des informations d'identification temporaires qui doivent être utilisées pour accéder à DynamoDB entre comptes. Pour en savoir plus, consultez les sections Accès entre comptes et interrégional aux tables DynamoDB et Comment exporter une table Amazon DynamoDB vers Amazon S3 grâce à AWS Step Functions et AWS Glue.

Remarque : Cette option requiert une utilisation intensive de Spark et vous permet de gérer le code source de votre tâche ETL AWS Glue. Pour plus d'informations, consultez la section Connexions DynamoDB.

Script d'exportation et d'importation personnalisé

Pour les petits jeux de données d'environ 2 Go ou pour les transferts ponctuels, vous pouvez utiliser un processus d'exportation et d'importation manuel. Par exemple, vous pouvez utiliser un code C# qui utilise les opérations d’analyse DynamoDB pour lire les éléments de la table source. Le code utilise ensuite des appels d'API BatchWriteItem pour écrire les données dans une table de destination du compte cible.

Remarque : Ce processus peut prendre du temps pour les grands jeux de données et nécessite des scripts personnalisés. Pour l'entité IAM qui exécute le script, vous devez configurer l'accès S3 entre comptes.

Informations connexes

Comment puis-je migrer mes tables Amazon DynamoDB d’un compte AWS vers un autre ?

Comment puis-je sauvegarder une table DynamoDB sur Amazon S3 ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 9 mois