

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
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework"></a>

*Jitendra Kumar, Pavithra Balasubramanian y Oliver Francis, Amazon Web Services*

## Resumen
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-summary"></a>

Este patrón describe cómo utilizar [DR Orchestrator Framework](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/dr-orchestrator-framework-overview.html) 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](https://github.com/aws-samples/aws-cross-region-dr-databases).

## Requisitos previos y limitaciones
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-prereqs"></a>

**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](https://aws.amazon.com/s3/)
+ Una [nube privada virtual (VPC)](https://aws.amazon.com/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-1` como región principal y `us-west-2` como 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-1` como región principal y `us-west-2` como 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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.CrossRegionReadReplicas.html).
+ 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](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.configuration.requirements).
+ 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](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-Getting-Started.html) en la documentación. ElastiCache 

**Versiones de p****roductos 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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html): 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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.DBVersions).
+ **MariaDB**: Amazon RDS admite instancias de base de datos que ejecutan las siguientes versiones de [MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html):
  + 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](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations).

**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](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-Getting-Started.html)).

## Arquitectura
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-architecture"></a>

**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 clientes
+ Una réplica de lectura de Amazon RDS creada en la región secundaria (`us-west-2`) con acceso de solo lectura para los clientes
+ DR Orchestrator Framework se implementó tanto en la región principal como en la secundaria

![Diagrama de la arquitectura RDS de dos regiones en una sola cuenta de AWS.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/ad217033-600c-40da-929c-b9f9aecb4c2c.png)


En el diagrama se muestra lo siguiente:

1. Replicación asíncrona entre la instancia principal y la instancia secundaria

1. Acceso de lectura y escritura para los clientes de la región principal

1. 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 activo
+ Un 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 inactivo
+ DR Orchestrator Framework se implementó tanto en la región principal como en la secundaria

![Diagrama de la implementación de Aurora en dos regiones en una sola cuenta de AWS.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/524ec002-5aa7-47b2-8c8d-6d1a3b535e9e.png)


En el diagrama se muestra lo siguiente:

1. Replicación asíncrona entre el clúster principal y el clúster secundario

1. El clúster de base de datos principal con un punto de conexión de escritura activo

1. 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:

  1. El clúster principal de la región principal (`us-east-1`)

  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

![Diagrama de una ElastiCache implementación en dos regiones con un enlace entre regiones de Amazon.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/cf6620a0-dd42-4042-8dc2-012bf514ffc0.png)


**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)
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-tools"></a>

**AWS servicios**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) es un motor de base de datos relacional completamente administrado diseñado para la nube y compatible con MySQL y PostgreSQL.
+ [Amazon](https://docs.aws.amazon.com/elasticache/) 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](https://aws.amazon.com/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)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) 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)](https://aws.amazon.com/sdk-for-python/)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](https://aws.amazon.com/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.](https://github.com/aws-samples/aws-cross-region-dr-databases/tree/main/App-Stack) GitHub

## Epics
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-epics"></a>

### Instalación de DR Orchestrator Framework
<a name="install-dr-orchestrator-framework"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clona el GitHub repositorio. | Para clonar el repositorio, ejecute el siguiente comando:<pre>git clone https://github.com/aws-samples/aws-cross-region-dr-databases.git</pre> | 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:<pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts<br /><br />bash scripts/deploy-orchestrator-sh.sh</pre> | 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 (`us-east-1`) y otro en la región secundaria (`us-west-2`):[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html)<br />Sustituya `xxxxxx` por un valor aleatorio para que los nombres de los buckets sean únicos. | Administrador de AWS | 
| Cree subredes y grupos de seguridad. | Tanto en la región principal (`us-east-1`) como en la región secundaria (`us-west-2`), cree dos subredes y un grupo de seguridad para la implementación de la función de Lambda en la VPC:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | Administrador de AWS | 
| Actualice los archivos de parámetros de DR Orchestrator. | En la carpeta `<YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation`, actualice los siguientes archivos de parámetros de DR Orchestrator:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html)<br />Utilice los siguientes valores de parámetros, sustituyendo `x` y `y` por los nombres de sus recursos:<pre>[<br />    {<br />         "ParameterKey": "TemplateStoreS3BucketName",<br />         "ParameterValue": "dr-orchestrator-xxxxxx-us-east-1"<br />    },<br />    {<br />        "ParameterKey": "TemplateVPCId",<br />        "ParameterValue": "vpc-xxxxxx"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSubnetID1",<br />        "ParameterValue": "subnet-xxxxxx"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSubnetID2",<br />        "ParameterValue": "subnet-yyyyyy"<br />    },<br />    {<br />        "ParameterKey": "TemplateLambdaSecurityGroupID",<br />        "ParameterValue": "sg-xxxxxxxxxx"<br />    }<br /> ]</pre> | 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 `DR-Orchestration-artifacts`, incluidos todos los archivos y subcarpetas, en los buckets de S3.<br />Para cargar el código, haga lo siguiente:[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | Administrador de AWS | 
| Implemente DR Orchestrator Framework en la región principal. | Para implementar DR Orchestrator Framework en la región principal (`us-east-1`), ejecute los siguientes comandos:<pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name dr-orchestrator \<br />--template-file Orchestrator-Deployer.yaml \<br />--parameter-overrides file://Orchestrator-Deployer-parameters-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre> | Administrador de AWS | 
| Implemente DR Orchestrator Framework en la región secundaria. | En la región secundaria (`us-west-2`), ejecute los siguientes comandos: <pre>cd <YOUR-LOCAL-GIT-FOLDER>/DR-Orchestration-artifacts/cloudformation<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name dr-orchestrator \<br />--template-file Orchestrator-Deployer.yaml \<br />--parameter-overrides file://Orchestrator-Deployer-parameters-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre> | Administrador de AWS | 
| Comprobar la implementación. | Si el CloudFormation comando se ejecuta correctamente, devuelve el siguiente resultado:<pre>Successfully created/updated stack - dr-orchestrator</pre><br />Como alternativa, puede ir a la CloudFormation consola y verificar el estado de la `dr-orchestrator` pila.  | Administrador de AWS | 

### Creación de instancias o clústeres de bases de datos
<a name="create-the-database-instances-or-clusters"></a>


| 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 (`us-east-1`) y secundaria (`us-west-2`):[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.html) | 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 `<YOUR LOCAL GIT FOLDER>/App-Stack`, actualice el archivo de parámetros de la región principal.<br />**Amazon RDS**<br />En el archivo `RDS-MySQL-parameter-us-east-1.json`, actualice `SubnetIds` y `DBSecurityGroup` con los nombres de los recursos que creó:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "MySqlGlobalIdentifier":"rds-mysql-instance",<br />    "InitialDatabaseName": "mysqldb",<br />    "DBPortNumber": "3789",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId"<br />  }<br />}<br /></pre><br />**Amazon Aurora**<br /> En el archivo `Aurora-MySQL-parameter-us-east-1.json`, actualice `SubnetIds` y `DBSecurityGroup` con los nombres de los recursos que creó:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet1-xxxxxx,subnet2-xxxxxx",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql",<br />    "DBClusterName":"dbcluster-01",<br />    "SourceDBClusterName":"dbcluster-02",<br />    "DBPortNumber": "3787",<br />    "DBInstanceClass":"db.r5.large",<br />    "InitialDatabaseName": "sampledb",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId"<br />  }<br />}</pre><br />**Amazon ElastiCache (Redis OSS)**<br />En el archivo `ElastiCache-parameter-us-east-1.json`, actualice `SubnetIds` y `DBSecurityGroup` con los nombres de los recursos que creó.<pre>{<br />  "Parameters": {<br />    "CacheNodeType": "cache.m5.large",<br />    "DBSecurityGroup": "sg-xxxxxxxxxx",<br />    "SubnetIds": "subnet-xxxxxx,subnet-xxxxxx",<br />    "EngineVersion": "5.0.6",<br />    "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore",<br />    "NumReplicas": "1",<br />    "NumShards": "1",<br />    "ReplicationGroupId": "demo-redis-cluster",<br />    "DBPortNumber": "3788",<br />    "TransitEncryption": "true",<br />    "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2"<br />  }<br />}</pre> | 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 (`us-east-1`), ejecute los siguientes comandos en función del motor de base de datos.<br />**Amazon RDS**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name rds-mysql-app-stack \<br />--template-file RDS-MySQL-Primary.yaml \<br />--parameter-overrides file://RDS-MySQL-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre><br />**Amazon Aurora**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 \<br />--stack-name aurora-mysql-app-stack \<br />--template-file Aurora-MySQL-Primary.yaml \<br />--parameter-overrides file://Aurora-MySQL-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre><br />**Amazon ElastiCache (Redis OSS)**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-east-1 --stack-name elasticache-ds-app-stack \<br />--template-file ElastiCache-Primary.yaml \<br />--parameter-overrides file://ElastiCache-parameter-us-east-1.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback<br /></pre><br />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 `<YOUR LOCAL GIT FOLDER>/App-Stack`, actualice el archivo de parámetros de la región secundaria.<br />**Amazon RDS**<br />En el archivo `RDS-MySQL-parameter-us-west-2.json`, actualice `SubnetIDs` y `DBSecurityGroup` con los nombres de los recursos que creó. Actualice el valor `PrimaryRegionKMSKeyArn` con el valor `MySQLKmsKeyId` obtenido de la sección de **resultados** de la CloudFormation pila de la instancia de base de datos principal:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "MySqlGlobalIdentifier":"rds-mysql-instance",<br />    "InitialDatabaseName": "mysqldb",<br />    "DBPortNumber": "3789",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/rds-mysql-instance-KmsKeyId",<br />    "PrimaryRegionKMSKeyArn":"arn:aws:kms:us-east-1:xxxxxxxxx:key/mrk-xxxxxxxxxxxxxxxxxxxxx"<br />  }<br />} </pre><br />**Amazon Aurora**<br />En el archivo `Aurora-MySQL-parameter-us-west-2.json`, actualice `SubnetIDs` y `DBSecurityGroup` con los nombres de los recursos que creó. Actualice el valor `PrimaryRegionKMSKeyArn` con el valor `AuroraKmsKeyId` tomado de la sección de **salidas** de la CloudFormation pila de la instancia de base de datos principal:<pre>{<br />  "Parameters": {<br />    "SubnetIds": "subnet1-aaaaaaaaa,subnet2-bbbbbbbbb",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "GlobalClusterIdentifier":"dr-globaldb-cluster-mysql",<br />    "DBClusterName":"dbcluster-01",<br />    "SourceDBClusterName":"dbcluster-02",<br />    "DBPortNumber": "3787",<br />    "DBInstanceClass":"db.r5.large",<br />    "InitialDatabaseName": "sampledb",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2",<br />    "KMSKeyAliasName": "rds/dr-globaldb-cluster-mysql-KmsKeyId"<br />  }<br />}</pre><br />**Amazon ElastiCache (Redis OSS)**<br />En el archivo `ElastiCache-parameter-us-west-2.json`, actualice `SubnetIDs` y `DBSecurityGroup` con los nombres de los recursos que creó. Actualice el valor `PrimaryRegionKMSKeyArn` con el valor `ElastiCacheKmsKeyId` obtenido de la sección de **resultados** de la CloudFormation pila de la instancia de base de datos principal:<pre>{<br />  "Parameters": {<br />    "CacheNodeType": "cache.m5.large",<br />    "DBSecurityGroup": "sg-cccccccccc",<br />    "SubnetIds": "subnet-aaaaaaaaa,subnet-bbbbbbbbb",<br />    "EngineVersion": "5.0.6",<br />    "GlobalReplicationGroupIdSuffix": "demo-redis-global-datastore",<br />    "NumReplicas": "1",<br />    "NumShards": "1",<br />    "ReplicationGroupId": "demo-redis-cluster",<br />    "DBPortNumber": "3788",<br />    "TransitEncryption": "true",<br />    "KMSKeyAliasName": "elasticache/demo-redis-global-datastore-KmsKeyId",<br />    "PrimaryRegion": "us-east-1",<br />    "SecondaryRegion": "us-west-2"<br />  }<br />}</pre> | 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.<br />**Amazon RDS**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name rds-mysql-app-stack \<br />--template-file RDS-MySQL-DR.yaml \<br />--parameter-overrides file://RDS-MySQL-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre><br />**Amazon Aurora**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name aurora-mysql-app-stack \<br />--template-file Aurora-MySQL-DR.yaml \<br />--parameter-overrides file://Aurora-MySQL-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre><br />**Amazon ElastiCache (Redis OSS)**<pre>cd <YOUR-LOCAL-GIT-FOLDER>/App-Stack<br /><br />aws cloudformation deploy \<br />--region us-west-2 \<br />--stack-name elasticache-ds-app-stack \<br />--template-file ElastiCache-DR.yaml \<br />--parameter-overrides file://ElastiCache-parameter-us-west-2.json \<br />--capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_NAMED_IAM CAPABILITY_IAM \<br />--disable-rollback</pre><br />Compruebe que los CloudFormation recursos se han desplegado correctamente. | Administrador de AWS | 

## Recursos relacionados
<a name="automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework-resources"></a>
+ [Estrategia de recuperación ante desastres para bases de datos en AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-disaster-recovery/welcome.html) 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](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/dr-orchestrator-framework-overview.html) de orientación AWS prescriptiva)
+ [Uso de bases de datos globales de Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html)
+ [Replicación Regiones de AWS mediante el uso de almacenes de datos globales](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html)
+ [Automatice su solución de recuperación ante desastres para bases de datos relacionales en AWS(guía de](https://docs.aws.amazon.com/prescriptive-guidance/latest/automate-dr-solution-relational-database/introduction.html) orientación AWS prescriptiva)