Configurer un pipeline CI/CD pour la migration de base de données à l'aide de Terraform - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer un pipeline CI/CD pour la migration de base de données à l'aide de Terraform

Créé par le Dr Rahul Sharad Gaikwad (AWS), Aarti Rajput (), Ashish Bhatt (AWS), Aniket Dekate (), Naveen Suthar (AWS), Nadeem Rahaman (AWS), Ruchika Modi () et Tamilselvan P (AWS) AWS AWS AWS

Environnement : PoC ou pilote

Technologies : bases de données DevOps ; migration

Charge de travail : Microsoft

AWSservices : AWS CodePipeline AWS DMS ; Amazon RDS

Récapitulatif

Ce modèle consiste à établir un pipeline d'intégration et de déploiement continus (CI/CD) pour gérer les migrations de bases de données de manière fiable et automatisée. Il couvre le processus de mise en service de l'infrastructure nécessaire, de migration des données et de personnalisation des modifications de schéma à l'aide de Terraform, un outil d'infrastructure en tant que code (IaC).

Plus précisément, le modèle met en place un pipeline CI/CD pour migrer une base de données SQL Microsoft Server sur site vers Amazon Relational Database Service (RDSAmazon) sur. AWS Vous pouvez également utiliser ce modèle pour migrer une base de données de SQL serveur située sur une machine virtuelle (VM) ou dans un autre environnement cloud vers AmazonRDS.

Ce modèle permet de relever les défis suivants liés à la gestion et au déploiement de bases de données :

  • Les déploiements manuels de bases de données prennent du temps, sont sujets aux erreurs et manquent de cohérence entre les environnements.

  • La coordination du provisionnement de l'infrastructure, des migrations de données et des modifications de schéma peut s'avérer complexe et difficile à gérer.

  • Garantir l'intégrité des données et minimiser les temps d'arrêt lors des mises à jour des bases de données est crucial pour les systèmes de production.

Ce modèle offre les avantages suivants :

  • Rationalise le processus de mise à jour et de déploiement des modifications de base de données en mettant en œuvre un pipeline CI/CD pour les migrations de bases de données. Cela réduit le risque d'erreurs, garantit la cohérence entre les environnements et minimise les temps d'arrêt.

  • Contribue à améliorer la fiabilité, l'efficacité et la collaboration. Permet d'accélérer la mise sur le marché et de réduire les temps d'arrêt lors des mises à jour des bases de données.

  • Vous aide à adopter DevOps des pratiques modernes de gestion de base de données, ce qui améliore l'agilité, la fiabilité et l'efficacité de vos processus de livraison de logiciels.

Conditions préalables et limitations

Prérequis

Architecture

Ce modèle implémente l'architecture suivante, qui fournit l'infrastructure complète pour le processus de migration de base de données.

Architecture de pipeline CI/CD pour la migration d'une SQL base de données serveur sur site vers Amazon on. RDS AWS

Dans cette architecture :

  • La base de données source est une base de données SQL serveur installée sur site, sur une machine virtuelle (VM) ou hébergée par un autre fournisseur de cloud. Le schéma suppose que la base de données source se trouve dans un centre de données local.

  • Le centre de données sur site est connecté via une AWS Direct Connect connexion VPN ou. AWS Cela garantit des communications sécurisées entre la base de données source et l' AWS infrastructure.

  • La base de données cible est une RDS base de données Amazon hébergée dans le cloud privé virtuel (VPC) à l' AWS aide d'un pipeline de provisionnement de base de données.

  • AWS Database Migration Service (AWS DMS) réplique votre base de données locale vers. AWS Il est utilisé pour configurer la réplication de la base de données source vers la base de données cible.

Le schéma suivant montre l'infrastructure configurée à différents niveaux du processus de migration de base de données, qui implique le provisionnement, la AWS DMS configuration et la validation.

Détails du pipeline CI/CD sur le processus de migration depuis le site vers. AWS

Dans le cadre de ce processus :

  • Le pipeline de validation valide toutes les vérifications. Le pipeline intégré passe à l'étape suivante lorsque toutes les validations nécessaires sont terminées.

  • Le pipeline de provisionnement de base de données comprend différentes AWS CodeBuild étapes qui exécutent des actions Terraform sur le code Terraform fourni pour la base de données. Lorsque ces étapes sont terminées, il déploie les ressources dans la cible Compte AWS.

  • Le AWS DMS pipeline comprend différentes CodeBuild étapes qui effectuent des tests, puis fournissent l' AWS DMS infrastructure pour effectuer la migration à l'aide d'IaC.

Outils

Services AWS et outils

  • AWS CodeBuildest un service d'intégration continue entièrement géré qui compile le code source, exécute des tests et produit des ready-to-deploy progiciels.

  • AWS CodePipelineest un service de livraison continue entièrement géré qui vous aide à automatiser vos pipelines de publication pour des mises à jour rapides et fiables des applications et de l'infrastructure.

  • Amazon Relational Database Service (RDSAmazon) vous aide à configurer, exploiter et dimensionner une base de données relationnelle dans le. AWS Cloud

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets qui offre évolutivité, disponibilité des données, sécurité et performances.

  • AWS Database Migration Service (AWS DMS) vous aide à migrer les banques de données vers AWS Cloud ou entre des combinaisons de configurations cloud et sur site.

Autres services

  • Terraform est un outil IaC HashiCorp qui vous aide à créer et à gérer des ressources sur site et dans le cloud.

Référentiel de code

Le code de ce modèle est disponible dans le DevOps framework de migration de GitHub base de données à l'aide du référentiel d'exemples Terraform.

Bonnes pratiques

  • Mettez en œuvre des tests automatisés pour la migration de votre base de données afin de vérifier l'exactitude des modifications de schéma et l'intégrité des données. Cela inclut les tests unitaires, les tests d'intégration et les end-to-end tests.

  • Mettez en œuvre une stratégie de sauvegarde et de restauration robuste pour vos bases de données, en particulier avant la migration. Cela garantit l'intégrité des données et fournit une option de secours en cas de panne.

  • Mettez en œuvre une stratégie de restauration robuste pour annuler les modifications apportées à la base de données en cas de défaillance ou de problème lors de la migration. Cela peut impliquer de revenir à un état de base de données antérieur ou de rétablir des scripts de migration individuels.

  • Configurez des mécanismes de surveillance et de journalisation pour suivre la progression et l'état des migrations de bases de données. Cela vous permet d'identifier et de résoudre rapidement les problèmes.

Épopées

TâcheDescriptionCompétences requises

Installez et configurez Git sur votre poste de travail local.

Installez et configurez Git sur votre poste de travail local en suivant les instructions de la documentation Git.

DevOps ingénieur

Créez un dossier de projet et ajoutez les fichiers du GitHub référentiel.

  1. Ouvrez le GitHub référentiel pour ce modèle.

  2. Choisissez Code pour voir les options de clonage, puis copiez le code URL fourni dans l'HTTPSonglet.

  3. Créez un dossier pour votre projet sur votre poste de travail.

  4. Ouvrez un terminal et naviguez jusqu'à ce dossier.

  5. Clonez le GitHub dépôt :

    git clone <github-repository-url>

    <github-repository-url> est celui que URL vous avez copié à l'étape 2.

  6. Lorsque le clonage est terminé, accédez au dépôt cloné dans le dossier de votre projet :

    cd <folder-name>/aws-terraform-db-migration-framework-samples
  7. Ouvrez ce projet dans un environnement de développement intégré (IDE) de votre choix.

DevOps ingénieur
TâcheDescriptionCompétences requises

Mettez à jour les paramètres requis.

Le ssm-parameters.sh fichier enregistre tous les AWS Systems Manager paramètres requis. Vous pouvez configurer ces paramètres avec les valeurs personnalisées de votre projet.

Dans le setup/db-ssm-params dossier de votre station de travail locale, ouvrez le ssm-parameters.sh fichier et définissez ces paramètres avant d'exécuter le pipeline CI/CD.

DevOps ingénieur

Initialisez la configuration Terraform.

Dans le db-cicd-integration dossier, entrez la commande suivante pour initialiser votre répertoire de travail contenant les fichiers de configuration Terraform :

terraform init
DevOps ingénieur

Prévisualisez le plan Terraform.

Pour créer un plan Terraform, entrez la commande suivante :

terraform plan -var-file="terraform.sample"

Terraform évalue les fichiers de configuration pour déterminer l'état cible des ressources déclarées. Il compare ensuite l'état cible à l'état actuel et crée un plan.

DevOps ingénieur

Vérifiez le plan.

Passez en revue le plan et confirmez qu'il configure l'architecture requise dans votre cible Compte AWS.

DevOps ingénieur

Déployez la solution.

  1. Entrez la commande suivante pour appliquer le plan :

    terraform apply -var-file="terraform.sample"
  2. Saisissez yes pour confirmer. Terraform crée, met à jour ou détruit l'infrastructure pour atteindre l'état cible déclaré dans les fichiers de configuration. Pour plus d'informations sur la séquence, consultez la section Architecture de ce modèle.

DevOps ingénieur
TâcheDescriptionCompétences requises

Validez le déploiement.

Vérifiez l'état du db-cicd-integration pipeline pour confirmer que la migration de la base de données est terminée.

1. Connectez-vous à la AWS CodePipeline console AWS Management Console, puis ouvrez-la.

2. Dans le volet de navigation, sélectionnez Pipelines.

3. Choisissez le db-cicd-integration pipeline.

4. Vérifiez que l'exécution du pipeline s'est terminée avec succès.

DevOps ingénieur
TâcheDescriptionCompétences requises

Nettoyez l'infrastructure.

  1. Une fois votre projet terminé, nettoyez l'infrastructure que vous avez créée à l'aide de la commande :

    terraform destroy --var-file=terraform.sample
  2. Saisissez yes pour confirmer.

DevOps ingénieur

Ressources connexes

AWS documentation

Documentation Terraform