Comment effectuer une migration vers une instance de base de données MySQL Amazon RDS ou Aurora à l'aide d'AWS DMS ?

Date de la dernière mise à jour : 16/02/2021

Je dois migrer une base de données et je cherche une méthode à la fois simple et qui permet de réduire au minimum le temps d'arrêt. Comment effectuer une migration vers une instance de base de données MySQL Amazon Relational Database Service (Amazon RDS) ou Amazon Aurora à l'aide d'AWS Database Migration Service (AWS DMS) ?

Brève description

Remarque : Si vous procédez à une migration homogène, utilisez les outils natifs de votre moteur (tels que l'outil de vidage ou de réplication MySQL) lorsque cela est possible.

Pour effectuer une migration vers une instance de base de données MySQL Amazon RDS ou Aurora provisionnée à l'aide d'AWS DMS :

  • créez une instance de réplication ;
  • créez des points de terminaison cible et source ;
  • actualisez les schémas de point de terminaison source ;
  • créez une tâche de migration ;
  • surveillez votre tâche de migration.

Résolution

Remarque : AWS DMS crée seulement une table avec une clé principale sur la cible si nécessaire avant la migration des données de la table. Pour générer un schéma cible complet, utilisez le Schema Conversion Tool d'AWS. Pour plus d'informations, consultez Conversion de schémas.

(Facultatif) Activation de la journalisation avec Amazon CloudWatch

Amazon CloudWatch Logs peut vous prévenir de problèmes potentiels lors de la migration. Pour plus d'informations, consultez Surveillance des tâches de réplication en utilisant Amazon CloudWatch.

Créer une instance de réplication

  1. Ouvrez la console AWS DMS, puis choisissez Instances de réplication à partir du volet de navigation.
  2. Choisissez Créer instance de réplication.
  3. Saisissez le nom, la description, la classe d'instance, Amazon Virtual Private Cloud (Amazon VPC) et la préférence Multi-AZ de votre réplication.
    Remarque : Assurez-vous de choisir une classe d'instance suffisante pour votre charge de travail de migration. Si l'instance n'est pas suffisante pour votre charge de travail, vous pouvez modifier l'instance de réplication ultérieurement.
  4. Dans la section Avancé, choisissez vos groupes de sécurité VPC ou conservez l'option par défaut.
  5. Choisissez Créer instance de réplication.

Créez des points de terminaison source et cible

  1. Ouvrez la console AWS DMS, puis choisissez Points de terminaison à partir du volet de navigation.
  2. Sélectionnez Créer un point de terminaison pour créer les bases de données source et cible.
  3. Au moment de définir le paramètre Endpoint type (Type de point de terminaison), sélectionnez Source.
  4. Entrez les informations spécifiques au moteur du point de terminaison, telles que le nom du serveur, le port, le mode SSL ou le nom du compartiment Amazon Simple Storage Service (Amazon S3), si vous utilisez Amazon S3 comme source.
  5. Choisissez Exécuter un test.
  6. Lorsque le test est terminé, choisissez Save (Enregistrer).
  7. Répétez les étapes 3 à 6, mais pour Type de point de terminaison, choisissez Cible.
    Remarque : Assurez-vous d'effectuer ces étapes pour la cible et la source.

Actualiser les schémas de point de terminaison source

  1. Ouvrez la console AWS DMS, puis choisissez Points de terminaison à partir du volet de navigation.
  2. Sélectionnez le point de terminaison source, puis Refresh schemas (Actualiser les schémas).
  3. Sélectionnez Refresh schemas (Actualiser les schémas).
    Remarque : Vous devez actualiser la source afin que les schémas sources apparaissent dans les mappages de table lorsque vous créez une tâche AWS DMS.

Créer une tâche de migration

  1. Ouvrez la console d'AWS DMS, puis choisissez Tâches de migration de base de données dans le volet de navigation.
  2. Choisissez Créer une tâche.
  3. Précisez les informations suivantes : Identifiant de tâche, Instance de réplication, Point de terminaison de base de données source, Point de terminaison de base de données cible et Type de migration. Choisissez un des types de migration suivants :
    Migrate existing data only (Migration des données existantes uniquement) : utilisez ce type de migration pour des migrations ponctuelles.
    Migrate existing data and replicate ongoing changes (Migrer les données existantes et répliquer les modifications en cours) : utilisez ce type de migration pour migrer des bases de données volumineuses vers le cloud AWS avec un temps d'arrêt minimal.
    Migrer les modifications de réplication continue : utilisez ce type de migration lorsque vous avez déjà migré vos données et que vous souhaitez synchroniser la base de données source avec la base de données MySQL cible hébergée sur le cloud AWS.
  4. Dans la section Paramètres de tâche, modifiez la tâche si nécessaire. 
  5. Dans la section Mappages de table, sélectionnez IU guidée.
  6. Sélectionnez Ajouter une nouvelle règle de sélection et indiquez le Nom de votre table et votre Schéma.
    Remarque : Pour modifier ou transformer le schéma source, la table ou le nom de colonne de tout ou partie des objets sélectionnés, développez la section Règles de transformation. Sélectionnez Ajouter une règle de transformation. Sélectionnez ensuite Target (Cible), Schema name (Nom du schéma) et Action.
  7. Choisissez Créer une tâche.

Remarque : Si vous utilisez des colonnes LOB, le Mode LOB limité est recommandé. Pour en savoir plus, consultez la section Définition de la prise en charge LOB pour les bases de données source dans une tâche AWS DMS.

Surveiller votre tâche de migration

  1. La vue Surveillance des tâches permet de surveiller les tâches de migration. Vous pouvez voir quelles sont les tables pour lesquelles la migration est terminée et sont celles dont la migration est toujours en cours. Prêtez attention aux types de message suivants :
    I : indique un message d'information
    W : indique des avertissements
    E : indique des erreurs qui se sont produites lors de la migration de la base de données
  2. Vérifiez que les bases de données ont été migrées avec succès en vous connectant aux instance source et cible via le terminal.

Migration Oracle

Lorsque vous utilisez Oracle en tant que base de données source, les tables sont migrées vers l'utilisateur du point de terminaison cible spécifié. Vous pouvez modifier le schéma pour une cible Oracle en utilisation les règles de transformation. Pour plus d'informations, consultez Modification de l'utilisateur et du schéma pour une cible Oracle.

Migration MySQL

Lors d'une migration à partir de MySQL vers Amazon Aurora, utilisez les outils natifs du moteur lorsque cela est possible. Au cours d'une migration, les schémas et les tables sont migrés avec les mêmes noms vers la cible. Si vous souhaitez migrer des tables vers une cible ou un schéma différent, créez une règle de mappage pour spécifier le nouveau schéma sur la base de données cible : 

{
  "rules": [{
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "test",
        "table-name": "%"
      },
      "rule-action": "include"
    }, {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "rename",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "test"
      },
      "value": "newtest"
    }
  ]
}
Vérifiez les journaux pour vérifier qu'il n'y a pas d'erreur.

Surveillez la latence et comparez le nombre de données dans les bases de données source et cible avant de basculer vers la nouvelle base de données cible. Pour plus d'informations, consultez Résolution des problèmes liés aux tâches de migration.