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.
Automatización de la conmutación por error y la conmutación por recuperación entre regiones mediante DR Orchestrator Framework
Jitendra Kumar, Pavithra Balasubramanian y Oliver Francis, Amazon Web Services
Resumen
Este patrón describe cómo utilizar DR Orchestrator Framework para orquestar y automatizar los pasos manuales que san propensos a errores, para realizar la recuperación ante desastres en todas las regiones de Amazon Web Services (AWS). El patrón cubre las siguientes bases de datos:
Amazon Relational Database Service (Amazon RDS) para MySQL, Amazon RDS para PostgreSQL o Amazon RDS para MariaDB
Edición compatible de Amazon Aurora MySQL o de Amazon Aurora PostgreSQL (mediante un archivo centralizado)
Amazon ElastiCache (Redis OSS)
Para demostrar la funcionalidad de DR Orchestrator Framework, debe crear dos instancias o clústeres de bases de datos. El principal está en y Región de AWS us-east-1 el secundario está dentro. us-west-2 Para crear estos recursos, utilice las AWS CloudFormation plantillas de la App-Stack carpeta del GitHub repositorio aws-cross-region-dr-databases
Requisitos previos y limitaciones
Requisitos previos generales
El marco DR Orchestrator se implementó tanto en el sistema primario como en el secundario Regiones de AWS
Dos buckets de Amazon Simple Storage Service
Una nube privada virtual (VPC)
con dos subredes y un grupo de seguridad AWS
Requisitos previos específicos del motor
Amazon Aurora: debe haber al menos una base de datos global de Aurora disponible en dos Regiones de AWS. Puede utilizar
us-east-1como región principal yus-west-2como región secundaria.Amazon ElastiCache (Redis OSS): un almacén de datos ElastiCache global debe estar disponible en dos. Regiones de AWS Puede usar
use us-east-1como región principal yus-west-2como región secundaria.
Limitaciones de Amazon RDS
DR Orchestrator Framework no comprueba el retraso de la replicación antes de realizar una conmutación por error o una conmutación por recuperación. El retraso de la replicación debe comprobarse manualmente.
Esta solución se probó con una instancia de base de datos principal con una réplica de lectura. Si desea utilizar más de una réplica de lectura, pruebe la solución minuciosamente antes de implementarla en un entorno de producción.
Limitaciones de Aurora
La disponibilidad de las características varía según las versiones específicas de cada motor de base de datos y entre Regiones de AWS. Para más información sobre la disponibilidad en características y regiones de la replicación entre regiones, consulte Réplicas de lectura entre regiones.
Las bases de datos globales de Aurora tienen requisitos de configuración específicos para las clases de instancias de base de datos Aurora compatibles y el número máximo de Regiones de AWS. Para más información, consulte Requisitos de configuración de una base de datos global de Amazon Aurora.
Esta solución se probó con una instancia de base de datos principal con una réplica de lectura. Si desea utilizar más de una réplica de lectura, pruebe la solución minuciosamente antes de implementarla en un entorno de producción.
ElastiCache Limitaciones
Para obtener información sobre la disponibilidad regional del almacén de datos global y los requisitos de ElastiCache configuración, consulte los requisitos previos y las limitaciones en la documentación. ElastiCache
Versiones de productos de Amazon RDS
Amazon RDS es compatible con las siguientes versiones de motor:
MySQL: Amazon RDS admite instancias de base de datos que ejecutan las siguientes versiones de MySQL: MySQL 8.0 y MySQL 5.7.
PostgreSQL: para obtener información sobre las versiones compatibles de Amazon RDS para PostgreSQL, consulte Versiones de bases de datos disponibles de PostgreSQL.
MariaDB: Amazon RDS admite instancias de base de datos que ejecutan las siguientes versiones de MariaDB:
MariaDB 10.11
MariaDB 10.6
MariaDB 10.5
Versiones de productos de Aurora
La transición de base de datos global de Amazon Aurora requiere una instancia de Aurora MySQL que sea compatible con MySQL 5.7 o la versión 2.09.1 y superior.
Para más información, consulte Limitaciones de bases de datos globales de Amazon Aurora.
ElastiCache Versiones de productos (Redis OSS)
Amazon ElastiCache (Redis OSS) es compatible con las siguientes versiones de Redis:
Redis 7.1 (mejorada)
Redis 7.0 (mejorada)
Redis 6.2 (mejorada)
Redis 6.0 (mejorada)
Redis 5.0.6 (mejorada)
Para obtener más información, consulte Versiones compatibles ElastiCache (Redis OSS).
Arquitectura
Arquitectura de Amazon RDS
La arquitectura de Amazon RDS incluye los siguientes recursos:
La instancia de base de datos de Amazon RDS principal creada en la región principal (
us-east-1) con read/write acceso para los clientesUna réplica de lectura de Amazon RDS creada en la región secundaria (
us-west-2) con acceso de solo lectura para los clientesDR Orchestrator Framework se implementó tanto en la región principal como en la secundaria

En el diagrama se muestra lo siguiente:
Replicación asíncrona entre la instancia principal y la instancia secundaria
Acceso de lectura y escritura para los clientes de la región principal
Acceso de solo lectura para los clientes de la región secundaria
Arquitectura de Aurora
La arquitectura de Amazon Aurora incluye los siguientes recursos:
El clúster de base de datos principal de Aurora creado en la región principal (
us-east-1) con un punto de conexión de escritura activoUn clúster de base de datos de Aurora creado en la región secundaria (
us-west-2) con un punto de conexión de escritura inactivoDR Orchestrator Framework se implementó tanto en la región principal como en la secundaria

En el diagrama se muestra lo siguiente:
Replicación asíncrona entre el clúster principal y el clúster secundario
El clúster de base de datos principal con un punto de conexión de escritura activo
El clúster de base de datos secundario con un punto de conexión de escritura inactivo
ElastiCache Arquitectura (Redis OSS)
La arquitectura Amazon ElastiCache (Redis OSS) incluye los siguientes recursos:
Un almacén de datos global ElastiCache (Redis OSS) creado con dos clústeres:
El clúster principal de la región principal (
us-east-1)El clúster secundario de la región secundaria (
us-west-2)
Un enlace entre regiones de Amazon con encriptado TLS 1.2 entre los dos clústeres
DR Orchestrator Framework se implementó tanto en la región principal como en la secundaria

Automatización y escala
DR Orchestrator Framework es escalable y admite la conmutación por error o la conmutación por recuperación de más de una base de datos AWS en paralelo.
Puede utilizar el siguiente código de carga útil para realizar la conmutación por error de varias AWS bases de datos de su cuenta. En este ejemplo, tres AWS bases de datos (dos bases de datos globales, como Aurora MySQL o Aurora PostgreSQL, y una instancia de Amazon RDS for MySQL) se conmutan por error a la región DR:
{ "StatePayload": [ { "layer": 1, "resources": [ { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (MySQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-mysql-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-mysql-cluster-identifier" } }, { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (PostgreSQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-postgres-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-postgres-cluster-identifier" } }, { "resourceType": "PromoteRDSReadReplica", "resourceName": "Promote RDS for MySQL Read Replica", "parameters": { "RDSInstanceIdentifier": "!Import rds-mysql-instance-identifier", "TargetClusterIdentifier": "!Import rds-mysql-instance-global-arn" } } ] } ] }
Tools (Herramientas)
AWS servicios
Amazon Aurora es un motor de base de datos relacional completamente administrado diseñado para la nube y compatible con MySQL y PostgreSQL.
Amazon le ElastiCache ayuda a configurar, gestionar y escalar los entornos de caché en memoria distribuidos en. Nube de AWS Este patrón usa Amazon ElastiCache (Redis OSS).
AWS Lambda
es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice. En este patrón, las funciones Lambda se utilizan AWS Step Functions para realizar los pasos. Amazon Relational Database Service (Amazon RDS) lo ayuda a configurar, utilizar y escalar una base de datos relacional en la Nube de AWS. Este patrón admite Amazon RDS para MySQL, Amazon RDS para PostgreSQL y Amazon RDS para MariaDB.
AWS SDK para Python (Boto3)
le ayuda a integrar su aplicación, biblioteca o script de Python con Servicios de AWS. En este patrón, los Boto3 APIs se utilizan para comunicarse con las instancias de la base de datos o las bases de datos globales. AWS Step Functions
es un servicio de organización sin servidor que le ayuda a combinar AWS Lambda funciones y otras Servicios de AWS para crear aplicaciones críticas para la empresa. En este patrón, las máquinas de estado Step Functions se utilizan para organizar y ejecutar la conmutación por error y la conmutación por recuperación entre regiones de las instancias de bases de datos o las bases de datos globales.
Repositorio de código
El código de este patrón está disponible en el repositorio -databases deaws-cross-region-dr.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Clona el GitHub repositorio. | Para clonar el repositorio, ejecute el siguiente comando:
| AWS DevOps, administrador de AWS |
Comprima el código de las funciones de Lambda en un archivo .zip. | Cree los archivos de almacenamiento de las funciones de Lambda para incluir las dependencias de DR Orchestrator Framework:
| Administrador de AWS |
Cree los buckets de S3. | Los buckets de S3 son necesarios para almacenar DR Orchestrator Framework junto con la configuración más reciente. Cree dos buckets de S3, uno en la región principal (
Sustituya | Administrador de AWS |
Cree subredes y grupos de seguridad. | Tanto en la región principal (
| Administrador de AWS |
Actualice los archivos de parámetros de DR Orchestrator. | En la carpeta
Utilice los siguientes valores de parámetros, sustituyendo
| Administrador de AWS |
Cargue el código de DR Orchestrator Framework en el bucket de S3. | El código estará más seguro en un bucket de S3 que en el directorio local. Cargue el directorio Para cargar el código, haga lo siguiente:
| Administrador de AWS |
Implemente DR Orchestrator Framework en la región principal. | Para implementar DR Orchestrator Framework en la región principal (
| Administrador de AWS |
Implemente DR Orchestrator Framework en la región secundaria. | En la región secundaria (
| Administrador de AWS |
Comprobar la implementación. | Si el CloudFormation comando se ejecuta correctamente, devuelve el siguiente resultado:
Como alternativa, puede ir a la CloudFormation consola y verificar el estado de la | Administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Cree las subredes y los grupos de seguridad de base de datos. | En su VPC, cree dos subredes y un grupo de seguridad para la instancia de base de datos o la base de datos global en las regiones principal (
| Administrador de AWS |
Actualice el archivo de parámetros de la instancia o el clúster de la base de datos principal. | En la carpeta Amazon RDS En el archivo
Amazon Aurora En el archivo
Amazon ElastiCache (Redis OSS) En el archivo
| Administrador de AWS |
Implemente su instancia o clúster de base de datos en la región principal. | Para implementar la instancia o el clúster en la región principal ( Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
Compruebe que los CloudFormation recursos se han desplegado correctamente. | Administrador de AWS |
Actualice el archivo de parámetros de la instancia o el clúster de la base de datos secundaria. | En la carpeta Amazon RDS En el archivo
Amazon Aurora En el archivo
Amazon ElastiCache (Redis OSS) En el archivo
| Administrador de AWS |
Implemente su instancia o clúster de base de datos en la región secundaria. | Ejecute los siguientes comandos, en función del motor de base de datos. Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
Compruebe que los CloudFormation recursos se han desplegado correctamente. | Administrador de AWS |
Recursos relacionados
Estrategia de recuperación ante desastres para bases de datos en AWS vigor (estrategia de orientación AWS prescriptiva)
Automatice su solución de recuperación ante desastres para bases de datos relacionales en AWS(guía de orientación AWS prescriptiva)
Replicación Regiones de AWS mediante el uso de almacenes de datos globales
Automatice su solución de recuperación ante desastres para bases de datos relacionales en AWS(guía de orientación AWS prescriptiva)