• 20 juillet 2016

    REX sur le service DMS proposé par AWS dans le cadre de migrations de bases de données

    AWS – Test de Database Migration Service (DMS)

    Contexte

    Dans le cadre de migration d’infrastructures vers AWS, nous avons besoin de migrer les bases de données en réduisant au minimum le downtime. Pour se faire, AWS nous propose son service Database Migration Service (DMS) : https://aws.amazon.com/fr/dms/

    TL;DR: avec DMS on spécifie une base de données source (un MySQL hébergé en premise), une base de données cible (une instance RDS) et une copie des données de la source vers la cible est réalisée avec la possibilité de mettre en place une réplication (pas de setup spécifique à réaliser, c’est « presque » magique). Il faut préalablement rendre la base de données accessible pour AWS (n’oubliez pas le filtrage !).

    Mise en place

    Ci-dessous les actions à réaliser dans la console AWS pour effectuer une copie d’une base de données que l’on appellera « testdatabase« .

    Subnet groups

    Il faut créer un groupe de subnet dans lequel seront renseignés au moins deux subnets qui pourront accéder à l’instance RDS présente dans le VPC. Ces subnets devront aussi être rattachés à une table de routage possédant une route pour sortir vers l’extérieur (0.0.0.0/0 -> IGW ou NATGW).

    dms_01

    Replication instances

    Une instance de réplication est nécessaire afin de faire le lien entre la source et la target. On prendra soin de cocher la case « Publicly accessible » afin qu’une IP publique lui soit allouée et qu’on autorise au niveau des firewall Oxalide cette IP à accéder à la base de données.

    dms_02

    Endpoints

    Il s’agit de renseigner le serveur source et cible pour copier les données et mettre en place la réplication

    • Source : serveur de base de données on premise, soit une IP publique et le port MySQL
    • Target : instance RDS située dans le VPC du compte AWS, soit un alias et le port MySQL

    dms_03

    dms_04

    Tasks

    Il faut créer une task qui permettra de lancer le job d’import des données et de réplication. Par exemple, si on souhaite récupérer/répliquer une base nommée ‘testdatabase’, il nous faut renseigner dans mapping method le code ci-dessous :

    dms_05

    dms_06

    Les limites identifiées

    • Le format des logs binaires doit être obligatoirement en mode ROW (MIXED et STATEMENT KO) sur le serveur source.
    • Les drop table ne fonctionnent pas à travers la « réplication » mise en place par DMS. Fonction non prise en charge pour le moment.

    Article rédigé par Benjamin Rabiller – ITWO Confirmé chez Oxalide

Newsletter

Inscrivez-vous et tenez vous au courant de l’actualité Oxalide