

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.

# Implemente recuperación de desastres entre regiones con AWS DMS y Amazon Aurora
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora"></a>

*Mark Hudson, Amazon Web Services*

## Resumen
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-summary"></a>

Los desastres naturales o provocados por el hombre pueden suceder en cualquier momento y afectar a la disponibilidad de los servicios y cargas de trabajo que se ejecutan en una determinada región de AWS. Para mitigar estos riesgos, debe desarrollar un plan de recuperación de desastres (DR) que incorpore las capacidades integradas entre regiones de los servicios de AWS. En el caso de servicios de AWS que no proporcionan funcionalidad entre regiones de forma inherente, el plan de DR también debe proporcionar una solución para gestionar la conmutación por error entre regiones de AWS.

Este patrón le guía a través de una configuración de recuperación de desastres que incluye dos clústeres de bases de datos de Amazon Aurora compatibles con MySQL en una única región. Para satisfacer los requisitos de DR, los clústeres de bases de datos están configurados para usar la característica de base de datos global de Amazon Aurora, con una única base de datos que abarca múltiples regiones de AWS. Una tarea de AWS Database Migration Service (AWS DMS) replica datos entre los clústeres de la región local. No obstante, actualmente AWS DMS no es compatible con la conmutación por error de tareas entre regiones. Este patrón incluye los pasos necesarios para evitar esa limitación y configurar AWS DMS de forma independiente en ambas regiones.

## Requisitos previos y limitaciones
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-prereqs"></a>

**Requisitos previos **
+ Regiones de AWS principales y secundarias seleccionadas, compatibles con [bases de datos globales de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraFeaturesRegionsDBEngines.grids.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase).
+ Dos clústeres de bases de datos independientes de Amazon Aurora compatible con MySQL en una sola cuenta en la región principal.
+ Clase de instancia de base de datos db.r5 o superior (recomendada).
+ Una tarea de AWS DMS en la región principal que realice una replicación continua entre los clústeres de bases de datos existentes.
+ Recursos regionales de DR disponibles para satisfacer los requisitos de creación de instancias de bases de datos. Para obtener más información, consulte [Uso de una instancia de base de datos en una VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html).

**Limitaciones**
+ Para ver la lista completa de limitaciones de las bases de datos globales de Amazon Aurora, consulte [Limitaciones de las bases de datos globales de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations).

**Versiones de producto**
+ Amazon Aurora compatible con MySQL edición 5.7 o 8.0. Para obtener más información, consulte [versiones de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.VersionPolicy.html).

## Arquitectura
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-architecture"></a>

**Pila de tecnología de destino**
+ Clúster de base de datos global de Amazon Aurora compatible con MySQL
+ AWS DMS

**Arquitectura de destino**

En el siguiente diagrama se muestra una base de datos global para dos regiones de AWS, una con las bases de datos principal y de informes primarias y la replicación de AWS DMS, y otra con las bases de datos principal y de informes secundarias.

![Diagrama de arquitectura de la base de datos global entre regiones.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/b01f5043-fcb5-4b1e-b79f-999792e89bed/images/3785384c-ed01-454f-b58c-fa09d223d57b.png)


**Automatización y escala**

Puede usar AWS CloudFormation para crear la infraestructura necesaria en la región secundaria, como la nube privada virtual (VPC), las subredes y los grupos de parámetros. También puede usar AWS CloudFormation para crear los clústeres secundarios en la región DR y añadirlos a la base de datos global. Si utilizó CloudFormation plantillas para crear los clústeres de bases de datos en la región principal, puede actualizarlas o ampliarlas con una plantilla adicional para crear el recurso de base de datos global. Para obtener más información, consulte [Crear un clúster de base de datos de Amazon Aurora con dos instancias de base de datos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster--examples) y [Crear un clúster de base de datos global para Aurora MySQL](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html#aws-resource-rds-globalcluster--examples).

Por último, puede crear las tareas de AWS DMS en las regiones principal y secundaria utilizándolas CloudFormation después de que se produzcan los eventos de conmutación por error y devolución. Para obtener más información, consulte [AWS::DMS::ReplicationTask](https://docs.amazonaws.cn/en_us/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html).

## Tools (Herramientas)
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-tools"></a>
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) es un motor de base de datos relacional completamente administrado compatible con MySQL y PostgreSQL. Este patrón utiliza la edición de Amazon Aurora compatible con MySQL.
+ Las [Bases de datos globales de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) están diseñadas para aplicaciones distribuidas por todo el mundo. Una única base de datos global de Amazon Aurora puede abarcar varias regiones de AWS. Replica sus datos sin afectar al rendimiento de la base de datos. También facilita las lecturas locales rápidas con baja latencia en cada región, y proporciona recuperación de desastres en caso de interrupciones en toda la región.
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ofrece migración puntual o replicación continua. La tarea de replicación continua mantiene sincronizadas las bases de datos de origen y destino. Una vez configurada, la tarea de replicación continua aplica de forma constante los cambios del origen al destino con una latencia mínima. Todas las funciones de AWS DMS, como la validación y las transformaciones de datos, están disponibles para cualquier tarea de replicación.

## Epics
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-epics"></a>

### Prepare los clústeres de bases de datos existentes en la región principal
<a name="prepare-the-existing-database-clusters-in-the-primary-region"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Modifique el grupo de parámetros del clúster de bases de datos. | En el grupo de parámetros del clúster de base de datos existente, active el registro binario a nivel de fila configurando el parámetro `binlog_format` en el valor de **fila**.<br />AWS DMS requiere el registro binario a nivel de fila para las bases de datos compatibles con MySQL al realizar replicación continua o captura de datos de cambios (CDC). Para obtener más información, consulte [Usar una base de datos compatible con MySQL gestionada por AWS como origen de AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.AmazonManaged). | Administrador de AWS | 
| Actualice el período de retención del registro binario de la base de datos. | Con un cliente MySQL instalado en el dispositivo del usuario final o una instancia de Amazon Elastic Compute Cloud (Amazon EC2), ejecute el siguiente procedimiento almacenado proporcionado por Amazon Relational Database Service (Amazon RDS) en el nodo de escritura del clúster de base de datos principal, que es el número de horas `XX` que se conservan los registros.<pre>call mysql.rds_set_configuration('binlog retention hours', XX)</pre><br />Confirme la configuración ejecutando el siguiente comando.<pre>call mysql.rds_show_configuration;</pre><br />Las bases de datos compatibles con MySQL administradas por AWS purgan los registros binarios lo antes posible. Por lo tanto, el período de retención debe ser lo suficientemente prolongado como para garantizar que los registros no se purguen antes de ejecutar la tarea de AWS DMS. Un valor de 24 horas suele ser suficiente, pero deberá basarse en el tiempo necesario para configurar la tarea de AWS DMS en la región de DR. | Administrador de base de datos | 

### Actualice la tarea de AWS DMS existente en la región principal
<a name="update-the-existing-aws-dms-task-in-the-primary-region"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Registre el ARN de la tarea de AWS DMS. | Use el nombre de recurso de Amazon (ARN) para obtener el nombre de tarea de AWS DMS. Lo usará posteriormente. Para recuperar el ARN de la tarea de AWS DMS, visualice la tarea en la consola o ejecute el siguiente comando.<pre>aws dms describe-replication-tasks</pre><br />Un registro de ARN tiene el siguiente aspecto.<pre>arn:aws:dms:us-east-1:<accountid>:task:AN6HFFMPM246XOZVEUHCNSOVF7MQCLTOZUIRAMY</pre><br />Los caracteres que aparecen tras los últimos dos puntos corresponden al nombre de la tarea que se usará en un paso posterior. | Administrador de AWS | 
| Modifique la tarea de AWS DMS existente para registrar el punto de control. | El punto de comprobación que AWS DMS crea contiene información para que el motor de replicación sepa el punto de recuperación del flujo de cambios. Para registrar la información del punto de control, siga estos pasos en la consola:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html) | Administrador de AWS | 
| Valide la información del punto de control. | Con un cliente MySQL conectado al punto de conexión de escritura del clúster, consulte la nueva tabla de metadatos en el clúster secundario de base de datos para comprobar que existe y contiene la información del estado de la replicación. Ejecute el comando siguiente.<pre>select * from awsdms_control.awsdms_txn_state;</pre><br />El nombre de la tarea de ARN se encuentra en la columna `Task_Name` de esta tabla. | Administrador de base de datos | 

### Amplíe ambos clústeres de Amazon Aurora a una región de DR
<a name="expand-both-amazon-aurora-clusters-to-a-dr-region"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una infraestructura base en la región de DR. | Cree los componentes básicos necesarios para la creación y acceso a los clústeres de Amazon Aurora:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html)<br />Asegúrese de que la configuración de ambos grupos de parámetros coincida con la configuración de la región principal. | Administrador de AWS | 
| Agregue la región de DR a ambos clústeres de Amazon Aurora. | Agregue una región secundaria (la región de DR) a los clústeres principales y secundarios de Amazon Aurora. Para mayor información, consulte [Cómo agregar una región AWS a una base de datos global de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database-attaching). | Administrador de AWS | 

### Realice una conmutación por error
<a name="perform-failover"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Detenga las tareas de AWS DMS. | La tarea de AWS DMS en la región principal no funcionará correctamente tras la conmutación por error, y deberá detenerla para evitar errores. | Administrador de AWS | 
| Realice una conmutación por error gestionada. | Realice una conmutación por error gestionada del clúster de base de datos principal a la región de DR. Para instrucciones, consulte [Ejecución de la conmutación por error planificada administrada para bases de datos globales de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover). Una vez finalizada la conmutación por error en el clúster de base de datos principal, realice la misma operación en el clúster de base de datos secundaria. | Administrador de AWS, administrador de base de datos | 
| Cargue los datos en la base de datos principal. | Inserte los datos de prueba en el nodo de escritura de la base de datos principal del clúster de base de datos de DR. Estos datos se usarán para validar el correcto funcionamiento de la replicación. | Administrador de base de datos | 
| Cree una instancia de replicación de AWS DMS. | Para crear la instancia de replicación de AWS DMS en la región de DR, consulte [Crear una instancia de replicación](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html). | Administrador de AWS, administrador de base de datos | 
| Cree los puntos de conexión de AWS DMS de origen y de destino. | Para crear los puntos de conexión de origen y destino de AWS DMS en la región de DR, consulte [Crear puntos de conexión de origen y destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). El origen debe apuntar a la instancia de escritura del clúster de la base de datos principal. El origen debe apuntar a la instancia de escritura del clúster de la base de datos principal. | Administrador de AWS, administrador de base de datos | 
| Obtenga el punto de control de replicación. | Para obtener el punto de control de replicación, consulte la tabla de metadatos con un cliente MySQL ejecutando la siguiente operación en el nodo de escritura del clúster de base de datos secundaria de la región de DR.<pre>select * from awsdms_control.awsdms_txn_state;</pre><br />En la tabla, busque el valor task\_name que corresponde al ARN de la tarea de AWS DMS en la región principal que obtuvo en la segunda épica. | Administrador de base de datos | 
| Cree una tarea de AWS DMS. | Desde la consola, cree una tarea de AWS DMS en la región de DR. En la tarea, especifique un método de migración para **replicar únicamente los cambios de datos**. Para obtener más información, consulte [Crear una tarea](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html)<br />Establezca la configuración **Iniciar tarea de migración** de la tarea de AWS DMS en **Automáticamente al crear**. | Administrador de AWS, administrador de base de datos | 
| Registre el ARN de la tarea de AWS DMS. | Utilice el ARN para obtener el nombre de la tarea tarea de AWS DMS para uso posterior. Para recuperar el ARN de la tarea de AWS DMS, ejecute el siguiente comando.<pre>aws dms describe-replication-tasks</pre> | Administrador de AWS, administrador de base de datos | 
| Valide los datos replicados. | Consulte el clúster de base de datos secundaria en la región de DR para confirmar que los datos de prueba que cargó en el clúster de base de datos principal se han replicado. | Administrador de base de datos | 

### Realice una conmutación por recuperación
<a name="perform-failback"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Detenga las tareas de AWS DMS. | La tarea de AWS DMS en la región DR no funcionará correctamente tras la conmutación por error, y deberá detenerla para evitar errores. | Administrador de AWS | 
| Realice una conmutación por error gestionada. | Realice una conmutación por error el clúster de base de datos principal de la región principal. Para instrucciones, consulte [Ejecución de la conmutación por error planificada administrada para bases de datos globales de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-disaster-recovery.managed-failover). Una vez finalizada la conmutación por error en el clúster de la base de datos principal, realice la misma operación en el clúster de base de datos. | Administrador de AWS, administrador de base de datos | 
| Obtenga el punto de control de replicación. | Para obtener el punto de control de replicación, consulte la tabla de metadatos con un cliente MySQL ejecutando la siguiente operación en el nodo de escritura del clúster de base de datos secundaria de la región de DR.<pre>select * from awsdms_control.awsdms_txn_state;</pre><br />En la tabla, busque el valor `task_name` que corresponde al ARN de la tarea de AWS DMS en la región DR que obtuvo en la cuarta épica. | Administrador de base de datos | 
| Actualice los puntos de conexión de origen y de destino de AWS DMS. | Una vez conmutados por error los clústeres de bases de datos, compruebe los clústeres de la región principal para determinar qué nodos son las instancias de escritura. A continuación, compruebe que los puntos de conexión de origen y destino de AWS DMS existentes en la región principal apunten a las instancias de escritura. Si no es así, actualice los puntos de conexión con los nombres del sistema de nombres de dominio (DNS) de la instancia de escritura. | Administrador de AWS | 
| Cree una tarea de AWS DMS. | Utilizando la consola, cree una tarea de AWS DMS en la región principal. En la tarea, especifique un método de migración para **replicar únicamente los cambios de datos**. Para obtener más información, consulte [Crear una tarea](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora.html) | Administrador de AWS, administrador de base de datos | 
| Registre el nombre de recurso de Amazon (ARN) de la tarea AWS DMS. | Utilice el ARN para obtener el nombre de la tarea tarea de AWS DMS para uso posterior. Para recuperar el ARN de tarea de AWS DMS, ejecute el siguiente comando:<pre>aws dms describe-replication-tasks</pre><br />Necesitará el nombre de la tarea cuando realice otra conmutación por error gestionada o en un escenario de DR. | Administrador de AWS, administrador de base de datos | 
| Elimine las tareas de AWS DMS. | Elimine la tarea de AWS DMS original (actualmente detenida) en la región principal y la tarea de AWS DMS existente (actualmente detenida) en la región secundaria. | Administrador de AWS | 

## Recursos relacionados
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-resources"></a>
+ [Configuración de su clúster de base de datos de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraSettingUp.html)
+ [Uso de bases de datos globales de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
+ [Trabajar con Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html)
+ [Trabajar con una instancia de replicación de AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html)
+ [Trabajar con puntos de conexión de AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html)
+ [Trabajar con tareas de AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html)
+ [¿Qué es AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

## Información adicional
<a name="implement-cross-region-disaster-recovery-with-aws-dms-and-amazon-aurora-additional"></a>

En este ejemplo de DR se usan bases de datos globales de Amazon Aurora, ya que proporcionan un objetivo de tiempo de recuperación (RTO) efectivo de 1 segundo y un objetivo de punto de recuperación (RPO) de menos de 1 minuto, ambos inferiores a los de las soluciones replicadas tradicionales e ideales para escenarios de DR.

Las bases de datos globales de Amazon Aurora ofrecen muchas otras ventajas, entre las que se incluyen las siguientes:
+ Lecturas globales con latencia local: los consumidores globales pueden acceder a la información en una región local y con latencia local.
+ Clústeres de base de datos Amazon Aurora secundarios escalables: los clústeres secundarios se pueden escalar de forma independiente, y es posible añadir hasta 16 réplicas de solo lectura.
+ Replicación rápida de clústeres de base de datos Aurora primarios a secundarios – La replicación realizada tiene poco impacto en el clúster principal. Se produce en la capa de almacenamiento, con latencias típicas de replicación entre regiones de menos de 1 segundo.

Este patrón también emplea AWS DMS para la replicación. Las bases de datos de Amazon Aurora ofrecen la posibilidad de crear réplicas de lectura, lo que puede simplificar el proceso de replicación y la configuración de DR. AWS DMS suele usarse para replicar cuando es necesario transformar los datos, o cuando la base de datos de destino requiere índices adicionales que la base de datos de origen no contiene.