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.
Automatice blue/green las implementaciones de las bases de datos globales de Amazon Aurora mediante los principios de la IaC
Ishwar Chauthaiwale, ANKIT JAIN y Ramu Jagini, Amazon Web Services
Resumen
La administración de las actualizaciones de bases de datos, las migraciones o los esfuerzos de escalado puede resultar difícil para las organizaciones que ejecutan cargas de trabajo críticas en bases de datos globales de Amazon Aurora
Una estrategia de blue/green implementación ofrece una solución a este desafío, ya que le permite ejecutar dos entornos idénticos de forma simultánea: azul (el entorno actual) y verde (el nuevo entorno). Una blue/green estrategia le permite implementar cambios, realizar pruebas y cambiar el tráfico entre entornos con un riesgo y un tiempo de inactividad mínimos.
Este patrón le ayuda a automatizar el proceso de blue/green implementación de las bases de datos globales de Aurora mediante el uso de los principios de la infraestructura como código (IaC). Utiliza AWS CloudFormationAmazon Route 53 y Amazon Route 53 para simplificar blue/green las implementaciones. AWS Lambda Para mejorar la confiabilidad, utiliza identificadores de transacciones globales (GTIDs) para la replicación. La replicación basada en GTID proporciona una mejor coherencia de datos y funcionalidades de conmutación por error entre entornos en comparación con la replicación de registros binarios (binlog).
nota
Este patrón presupone que usa un clúster de base de datos global de la edición de Aurora compatible con MySQL. Si en su lugar utiliza una edición de Aurora compatible con PostgreSQL, utilice los equivalentes en PostgreSQL de los comandos de MySQL.
Si sigue los pasos que se describen en este patrón, puede hacer lo siguiente:
Aprovisionar una base de datos global de Aurora verde: mediante CloudFormation plantillas, se crea un entorno verde que refleja el entorno azul existente.
Configurar la replicación basada en GTID: configure la replicación de GTID para mantener sincronizados los entornos azul y verde.
Cambie el tráfico sin problemas: utilice Route 53 y Lambda para cambiar automáticamente el tráfico del entorno azul al verde tras completar la sincronización.
Finalice la implementación: valide que el entorno ecológico esté en pleno funcionamiento como base de datos principal y, a continuación, detenga la replicación y elimine los recursos temporales.
El enfoque de este patrón proporciona las siguientes ventajas:
Reduce el tiempo de inactividad durante las actualizaciones o migraciones críticas de las bases de datos: la automatización garantiza una transición fluida entre entornos con una interrupción mínima del servicio.
Permite reversiones rápidas: si surge un problema después de cambiar el tráfico al entorno verde, puede volver rápidamente al entorno azul y mantener la continuidad del servicio.
Mejora las pruebas y la verificación: el entorno verde se puede probar por completo sin afectar al entorno azul activo, lo que reduce la probabilidad de que surjan errores en producción.
Garantiza la coherencia de datos: la replicación basada en GTID mantiene sincronizados los entornos azul y verde, lo que evita la pérdida de datos o las incoherencias durante la migración.
Mantiene la continuidad empresarial: la automatización de blue/green las implementaciones ayuda a evitar interrupciones prolongadas y pérdidas financieras al mantener sus servicios disponibles durante las actualizaciones o las migraciones.
Requisitos previos y limitaciones
Requisitos previos
Un activo. Cuenta de AWS
Un clúster de base de datos global de Aurora compatible con MySQL de origen (entorno azul). Las bases de datos globales proporcionan una configuración multirregional para tener alta disponibilidad y recuperación ante desastres. Para obtener instrucciones sobre cómo configurar un clúster de base de datos global, consulte la documentación de Aurora.
Replicación basada en GTID habilitada en el clúster de origen.
Limitaciones
Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para conocer la disponibilidad de las regiones, consulte Servicios de AWS by Region
. Para ver los puntos de conexión específicos, consulte la página Service endpoints and quotas y elija el enlace del servicio.
Versiones de producto
Versión 8.0 o posterior de Aurora compatible con MySQL
Arquitectura

En el siguiente diagrama se ilustra lo siguiente:
Configuración de la base de datos global: un clúster de base de datos global Aurora se implementa estratégicamente en dos Regiones de AWS. Esta configuración permite la distribución geográfica y la redundancia regional para mejorar las capacidades de recuperación ante desastres.
Replicación de la región principal a la región secundaria: el mecanismo de replicación lógica garantiza una sincronización perfecta de los datos de la región principal a la secundaria. Esta replicación conserva la coherencia de datos con una latencia mínima en todas las distancias geográficas.
Replicación entre clústeres basada en GTID: la replicación basada en GTID mantiene la coherencia de las transacciones y el orden del flujo de datos entre el clúster principal azul y el clúster principal verde, y garantiza una sincronización de datos fiable.
Replicación del clúster azul principal al secundario: la replicación lógica establece una canalización de datos sólida entre el clúster principal azul y el clúster secundario. Esta replicación permite una sincronización continua de los datos y una alta disponibilidad.
Configuración de DNS de Route 53: los registros de zonas alojadas de Route 53 administran la resolución de DNS de todos los puntos de conexión de las bases de datos de clústeres azules y verdes. Esta configuración proporciona una asignación perfecta de los puntos de conexión y permite un enrutamiento eficiente del tráfico durante los escenarios de conmutación por error.
Tools (Herramientas)
Servicios de AWS
Amazon Aurora es un motor de base de datos relacional completamente administrado diseñado para la nube y compatible con MySQL y PostgreSQL.
CloudFormationle ayuda a modelar y configurar sus AWS recursos para que pueda dedicar menos tiempo a administrarlos y más tiempo a centrarse en las aplicaciones en las que se ejecutan AWS. Crea una plantilla que describe todos los AWS recursos que desea y CloudFormation se encarga de aprovisionar y configurar esos recursos por usted.
AWS Lambda es un servicio de computación que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo.
Amazon Route 53 es un servicio web de sistema de nombres de dominio (DNS) escalable y de alta disponibilidad.
Prácticas recomendadas
Le recomendamos que revise detenidamente la AWS documentación para comprender mejor la estrategia de implementación económica y ecológica, la replicación basada en GTID y las políticas de enrutamiento ponderado de Route 53. Este conocimiento es crucial para implementar y administrar eficazmente las migraciones de bases de datos, garantizar la coherencia de datos y optimizar el enrutamiento del tráfico. Al obtener una comprensión completa de estas AWS funciones y prácticas recomendadas, estará mejor preparado para gestionar futuras actualizaciones, minimizar el tiempo de inactividad y mantener un entorno de base de datos seguro y resistente.
Para ver las pautas de Servicios de AWS uso de este patrón, consulte la siguiente AWS documentación:
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Cree una copia de seguridad de la instantánea a partir del clúster azul. | En una blue/green implementación, el entorno verde representa una versión nueva e idéntica del entorno de base de datos actual (azul). Utilice el entorno verde para probar las actualizaciones de forma segura, validar los cambios y garantizar la estabilidad antes de cambiar el tráfico de producción. Actúa como espacio de pruebas para implementar cambios en las bases de datos con una interrupción mínima del entorno activo. Para crear un entorno verde, primero debe crear una instantánea del clúster principal (azul) en la base de datos global de Aurora compatible con MySQL. Esta instantánea sirve de base para crear el entorno verde. Para crear una instantánea:
Como alternativa, puede usar AWS Command Line Interface (AWS CLI) para crear la instantánea:
Asegúrese de que la instantánea se complete correctamente antes de pasar al siguiente paso. | Administrador de base de datos |
Genere la CloudFormation plantilla para su base de datos global y sus recursos. | El generador CloudFormation IaC le ayuda a generar CloudFormation plantillas a partir de AWS los recursos existentes. Utilice esta función para crear una CloudFormation plantilla para su base de datos global compatible con Aurora MySQL existente y sus recursos asociados. Esta plantilla configura grupos de subred, grupos de seguridad, grupos de parámetros y otros ajustes.
| Administrador de base de datos |
Modifique la CloudFormation plantilla para el entorno ecológico. | Personalice la CloudFormation plantilla para que refleje la configuración del entorno verde. Esto implica actualizar los nombres e identificadores de los recursos para garantizar que el entorno verde funcione de forma independiente del clúster azul.
notaSi utiliza la propiedad | Administrador de base de datos |
Implemente la CloudFormation pila para crear recursos para un entorno ecológico. | En este paso, implementará la CloudFormation plantilla personalizada para crear los recursos para el entorno ecológico. Para implementar la CloudFormation pila:
CloudFormation inicia el proceso de creación de los recursos del entorno ecológico. Este proceso puede tardar varios minutos en completarse. | Administrador de base de datos |
Valide la CloudFormation pila y los recursos. | Cuando se complete el despliegue de la CloudFormation pila, tendrás que comprobar que el entorno ecológico se ha creado correctamente:
Tras la verificación, el entorno verde estará listo para seguirlo configurando, así como para replicarlo desde el entorno azul. | Administrador de base de datos |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Compruebe la configuración de GTID en el clúster azul. | GTIDs proporcionan un método altamente confiable para replicar datos entre sus entornos azul y verde. La replicación basada en GTID ofrece un enfoque flexible y simplificado al asignar un identificador único a cada transacción en el entorno azul. Este método garantiza que la sincronización de datos entre los entornos sea fluida, coherente y más fácil de administrar que la replicación binlog tradicional. Antes de configurar la replicación, debe asegurarse de que la replicación basada en GTID esté habilitada correctamente en el clúster azul. Este paso garantiza que cada transacción del entorno azul tenga un seguimiento exclusivo y se pueda replicar en el entorno verde. Para confirmar que los GTID están habilitados, siga estos pasos:
Esta configuración permite hacer un seguimiento de los GTID para todas las transacciones futuras en el entorno azul. Después de confirmar esta configuración, puede comenzar a configurar la replicación. | Administrador de base de datos |
Cree un usuario de replicación | Para replicar datos del entorno azul al entorno verde, tiene que crear un usuario de replicación específico en el clúster azul. Este usuario será responsable de administrar el proceso de replicación. Para configurar el usuario de replicación, siga estos pasos:
Este usuario ahora tiene los permisos necesarios para replicar datos entre los dos entornos. | Administrador de base de datos |
Configure la replicación basada en GTID en el clúster verde. | El siguiente paso es configurar el clúster verde para la replicación basada en GTID. Esta configuración garantiza que en el entorno verde se reflejen continuamente todas las transacciones que se realicen en el entorno azul. Para configurar el clúster verde, siga estos pasos:
| Administrador de base de datos |
Inicie la replicación en el clúster verde. | Ya puede empezar el proceso de replicación: En el clúster verde, ejecute este comando:
Este comando permite que el entorno verde comience a sincronizar los datos y a recibir y aplicar transacciones del entorno azul. | Administrador de base de datos |
Verifique el proceso de replicación. | Para comprobar que el entorno verde está replicando con precisión los datos del clúster azul, siga estos pasos:
Si todos los indicadores son correctos, la replicación basada en GTID funciona sin problemas y el entorno verde está completamente sincronizado con el entorno azul. | Administrador de base de datos |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configure las políticas de enrutamiento ponderado de Route 53. | Después de verificar la coherencia de datos entre los entornos azul y verde, puede cambiar el tráfico del clúster azul al clúster verde. Esta transición debe ser fluida y minimizar el tiempo de inactividad y garantizar la integridad de la base de datos de la aplicación. Para cumplir con estos requisitos, puede usar Route 53 para el enrutamiento de DNS y Lambda para automatizar el cambio de tráfico. Además, un plan de reversión bien definido garantiza que pueda volver al clúster azul en caso de que surja algún problema. El primer paso es configurar el enrutamiento ponderado en Route 53. El enrutamiento ponderado le permite controlar la distribución del tráfico entre los clústeres azul y verde y desplazar gradualmente el tráfico de un entorno a otro. Para configurar el enrutamiento ponderado, siga estos pasos:
Para obtener más información sobre las políticas de enrutamiento ponderado, consulte la documentación de Route 53. | AWS DevOps |
Implemente una función de Lambda para supervisar el retraso de la replicación. | Para garantizar que el entorno verde se sincronice completamente con el entorno azul, implemente una función de Lambda que supervise el retraso de la replicación entre los clústeres. Esta función puede comprobar el estado de la replicación (específicamente, la métrica Seconds_Behind_Master) para determinar si el clúster verde está preparado para gestionar todo el tráfico. A continuación, se muestra un ejemplo de función de Lambda que puede utilizar:
Esta función comprueba el retraso de la replicación y devuelve el valor. Si el retraso es cero, el clúster verde está totalmente sincronizado con el clúster azul. | AWS DevOps |
Automatice el ajuste de ponderaciones de DNS mediante Lambda. | Cuando el retraso de la replicación llegue a cero, ya podrá cambiar todo el tráfico al clúster verde. Puede automatizar esta transición mediante otra función de Lambda que ajuste las ponderaciones de DNS en Route 53 para dirigir el 100 % del tráfico al clúster verde. A continuación, se muestra un ejemplo de una función de Lambda que automatiza el cambio de tráfico:
Esta función comprueba el retraso de la replicación y actualiza las ponderaciones de DNS de Route 53 cuando el retraso es cero para transferir completamente el tráfico al clúster verde. notaDurante el proceso de transición, si el clúster azul experimenta un tráfico de escritura intenso, considere la posibilidad de pausar temporalmente las operaciones de escritura durante la transición. Esto garantiza que la replicación se recupere del retraso y evita incoherencias en los datos entre los clústeres azul y verde. | AWS DevOps |
Verifique el cambio de tráfico. | Una vez que la función de Lambda ajuste las ponedraciones de DNS, debe comprobar que todo el tráfico se dirige al clúster verde y que el cambio se ha realizado correctamente. Para verificarlo, siga estos pasos:
Si todo funciona según lo esperado, el cambio de tráfico se ha completado. | AWS DevOps |
Si encuentra algún problema, revierta los cambios. | Tener un plan de reversión es esencial en caso de que surja algún problema después del cambio de tráfico. A continuación, le explicamos cómo revertir rápidamente al clúster azul si es necesario:
Al implementar este plan de reversión, puede garantizar una interrupción mínima para sus usuarios en caso de que surjan problemas inesperados. | AWS DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Detenga la replicación basada en GTID en el clúster verde. | Después de cambiar el tráfico del entorno azul al entorno verde, debe validar que la transición se haya completado correctamente y asegurarse de que el clúster verde funcione según lo esperado. Además, debe detener la replicación basada en GTID entre los clústeres azul y verde, ya que el entorno verde ahora sirve como base de datos principal. Realizar estas tareas garantiza que su entorno sea seguro, ágil y optimizado para las operaciones continuas. Para detener la replicación, siga estos pasos:
Cuando detiene la replicación, el clúster verde pasa a ser completamente independiente y funciona como el entorno de base de datos principal para las cargas de trabajo. | Administrador de base de datos |
Eliminación de recursos. | Al limpiar los recursos temporales o no usados que se crearon durante la migración del clúster azul al verde, se asegura de que el entorno siga siendo optimizado, seguro y rentable. Durante la limpieza, de ajustar la configuración de seguridad, realizar las copias de seguridad finales y retirar los recursos innecesarios. Para limpiar los recursos, siga estos pasos:
La limpieza de los recursos ayuda a mantener un entorno seguro y optimizado, reduce los costos y garantiza que solo quede la infraestructura necesaria. | AWS DevOps |
Recursos relacionados
CloudFormation:
prácticas recomendadas de CloudFormation
Generar plantillas de los recursos existentes con el generador IaC
Importe aplicaciones enteras a CloudFormation
(AWS entrada de blog)
Amazon Aurora:
Estrategia de implementación azul/verde:
Replicación basada en GTID:
Uso de la replicación basada en GTID (documentación de Amazon RDS)
AWS Lambda:
Amazon Route 53:
Herramientas del cliente MySQL: