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.
Configure una CI/CD canalización para la migración de bases de datos mediante Terraform
Dr. Rahul Sharad Gaikwad, Ashish Bhatt, Aniket Dekate, Ruchika Modi, Tamilselvan P, Nadeem Rahaman, Aarti Rajput y Naveen Suthar, Amazon Web Services
Resumen
Este patrón consiste en establecer un proceso de integración e implementación continuas (CI/CD) para administrar migraciones de bases de datos de una manera confiable y automatizada. Abarca el proceso de aprovisionamiento de la infraestructura necesaria, migración de datos y personalización de los cambios de esquema mediante Terraform, que es una herramienta de infraestructura como código (IaC).
En concreto, el patrón configura una CI/CD canalización para migrar una base de datos local de Microsoft SQL Server a Amazon Relational Database Service (Amazon RDS) en adelante. AWS También puede utilizar este patrón para migrar a Amazon RDS una base de datos de SQL Server que se encuentre en una máquina virtual (VM) o en otro entorno de nube.
Este patrón aborda los desafíos siguientes relacionados con la administración y la implementación de bases de datos:
Las implementaciones manuales de bases de datos son tardadas, propensas a errores y carecen de coherencia en los entornos.
Coordinar el aprovisionamiento de la infraestructura, las migraciones de datos y los cambios de esquema puede resultar complejo y difícil de administrar.
Garantizar la integridad de los datos y minimizar el tiempo de inactividad durante las actualizaciones de las bases de datos es fundamental para los sistemas de producción.
Este patrón proporciona los beneficios siguientes:
Simplifica el proceso de actualización e implementación de los cambios en la base de datos mediante la implementación de una CI/CD canalización para las migraciones de bases de datos. Esto reduce el riesgo de errores, garantiza la coherencia en todos los entornos y minimiza el tiempo de inactividad.
Ayuda a mejorar la fiabilidad, la eficiencia y la colaboración. Permite una comercialización más rápida y reduce el tiempo de inactividad durante las actualizaciones de las bases de datos.
Le ayuda a adoptar DevOps prácticas modernas para la administración de bases de datos, lo que se traduce en una mayor agilidad, confiabilidad y eficiencia en sus procesos de entrega de software.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS
La versión 0.12 o posterior de Terraform instalada en su máquina local (para obtener instrucciones, consulte la documentación de Terraform
) Terraform AWS Provider versión 3.0.0 o posterior de HashiCorp (consulte el GitHub repositorio
de este proveedor) Política de privilegios mínimos AWS Identity and Access Management (IAM) (consulte la entrada del blog Técnicas para redactar políticas de IAM con privilegios mínimos
)
Arquitectura
Este patrón implementa la arquitectura siguiente, que proporciona la infraestructura completa para el proceso de migración de la base de datos.

En esta arquitectura:
La base de datos de origen es una base de datos de SQL Server en las instalaciones, en una máquina virtual (VM) o alojada por otro proveedor de nube. El diagrama asume que la base de datos de origen está en un centro de datos en las instalaciones.
El centro de datos local y AWS están conectados a través de una VPN o conexión. AWS Direct Connect Esto proporciona comunicaciones seguras entre la base de datos de origen y la AWS infraestructura.
La base de datos de destino es una base de datos de Amazon RDS que se aloja en la nube privada virtual (VPC) con la ayuda de una AWS canalización de aprovisionamiento de bases de datos.
AWS Database Migration Service (AWS DMS) replica su base de datos local en. AWS Se utiliza para configurar la replicación de la base de datos de origen en la base de datos de destino.
El siguiente diagrama muestra la infraestructura configurada con diferentes niveles del proceso de migración de la base de datos, que implica el aprovisionamiento, la AWS DMS configuración y la validación.

En este proceso:
El proceso de validación valida todos los controles. La canalización integrada pasará al próximo paso cuando se hayan completado todas las validaciones necesarias.
El proceso de aprovisionamiento de la base de datos consta de varias AWS CodeBuild etapas que realizan acciones de Terraform en el código de Terraform proporcionado para la base de datos. Cuando se completan estos pasos, implementa los recursos en la Cuenta de AWS de destino.
El AWS DMS proceso consta de varias CodeBuild etapas en las que se realizan las pruebas y, a continuación, se aprovisiona la AWS DMS infraestructura necesaria para realizar la migración mediante el uso de la IaC.
Tools (Herramientas)
Servicios de AWS y herramientas
AWS CodeBuildes un servicio de integración continua totalmente gestionado que compila el código fuente, ejecuta pruebas y produce paquetes de ready-to-deploy software.
AWS CodePipeline es un servicio de entrega continua totalmente administrado que ayuda a automatizar las canalizaciones de lanzamiento para actualizaciones de infraestructura y aplicaciones rápidas y fiables.
Amazon Relational Database Service (Amazon RDS) lo ayuda a configurar, utilizar y escalar una base de datos relacional en la Nube de AWS.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento líderes del sector.
AWS Database Migration Service (AWS DMS) le ayuda a migrar los almacenes de datos a una combinación de configuraciones locales y en la nube Nube de AWS o entre ellas.
Otros servicios
Terraform
es una herramienta de iAC HashiCorp que le ayuda a crear y administrar recursos locales y en la nube.
Repositorio de código
El código de este patrón está disponible en el DevOps marco de migración de GitHub bases de datos mediante el repositorio de muestras de Terraform
Prácticas recomendadas
Implemente pruebas automatizadas para la migración de su base de datos a fin de verificar la exactitud de los cambios en el esquema y la integridad de los datos. Esto incluye pruebas unitarias, pruebas de integración y end-to-end pruebas.
Implemente una estrategia sólida de copia de seguridad y restauración para las bases de datos, sobre todo antes de la migración. Esto garantiza la integridad de los datos y proporciona una opción alternativa en caso de errores.
Implemente una estrategia sólida de reversión para revertir los cambios en la base de datos en caso de que se produzcan errores o problemas durante la migración. Esto podría implicar volver a un estado anterior de la base de datos o revertir los scripts de migración individuales.
Configure mecanismos de supervisión y registro para hacer un seguimiento del avance y el estado de las migraciones de bases de datos. Esto es útil para identificar y resolver los problemas de manera rápida.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Defina y configure Git en su estación de trabajo local. | Instale y configure Git en su estación de trabajo local con las instrucciones de la documentación de Git | DevOps ingeniero |
Cree una carpeta de proyecto y añada los archivos del GitHub repositorio. |
| DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Actualice los parámetros obligatorios. | El En la | DevOps ingeniero |
Inicialice la configuración de Terraform. | En la carpeta
| DevOps ingeniero |
Obtenga una vista previa del plan Terraform. | Para crear un plan de ejecución de Terraform, ingrese el comando siguiente:
Terraform evalúa los archivos de configuración para determinar el estado objetivo de los recursos declarados. A continuación, compara el estado objetivo con el estado actual y crea un plan. | DevOps ingeniero |
Verifique el plan. | Revise el plan y confirme que configura la arquitectura requerida en su Cuenta de AWS de destino. | DevOps ingeniero |
Implemente la solución. |
| DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Valide la implementación. | Verifique el estado de la canalización 1. Inicie sesión en la AWS CodePipeline consola y Consola de administración de AWS, a continuación, ábrala 2. En el panel de navegación, seleccione Canalizaciones. 3. Configure la canalización de 4. Valide que la ejecución de la canalización finalizó correctamente. | DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Limpie la infraestructura. |
| DevOps ingeniero |
Recursos relacionados
AWS documentación
Documentación de Terraform