Blog de Amazon Web Services (AWS)

Utilice réplicas de lectura entre regiones con Amazon Relational Database Service for SQL Server

Por Gene Mays, Arquitecto sénior de soluciones especializado de Microsoft en AWS;
Alex Pawvathil, Gerente de cuentas técnicas en AWS y
Swarndeep Singh, Arquitecto de soluciones sénior en AWS
Lanzado el pasado 16 de noviembre, ahora puede crear réplicas de lectura entre regiones con Amazon Relational Database Service (Amazon RDS) for SQL Server. Esta función le permite implementar una instancia de base de datos de solo lectura en una región de AWS secundaria. Con la réplica de lectura entre regiones, los datos se envían de forma asíncrona desde la instancia de base de datos principal a una réplica de lectura entre regiones casi en tiempo real para ampliar la lectura. Además, le permite crear una solución de recuperación ante desastres y también puede migrar una base de datos existente a una nueva región de AWS. Puede crear hasta un total de cinco réplicas in-region y cross-region combinadas por fuente.

En caso de desastre en su región principal de AWS, las réplicas de lectura entre regiones le permiten promocionar manualmente sus réplicas de lectura como una nueva instancia de una sola AZ. Tenga en cuenta que, una vez que la instancia de base de datos se promociona como instancia de una sola AZ, no puede convertirse en una instancia de réplica de lectura. Sin embargo, puede convertir esta instancia de una sola AZ promocionada en una instancia Multi-AZ y crear nuevas réplicas de lectura a partir de la instancia independiente. Las réplicas de lectura entre regiones ofrecen una opción de Recovery Time Objective (RTO) bajo para la recuperación ante desastres.

En esta publicación, demostramos cómo usar réplicas de lectura entre regiones con Amazon RDS for SQL Server.

Descripción general de la solución

El siguiente diagrama es una vista de alto nivel de Amazon RDS for SQL Server en una configuración Multi-AZ que utiliza grupos de disponibilidad Always On con una réplica de lectura in-region y otra réplica de lectura cross-region. Las instancias principales y secundarias, junto con la instancia de base de datos de réplica de lectura in-region, se alojan en diferentes zonas de disponibilidad dentro de la misma región de AWS. La réplica de lectura cross-region está alojada en una región de AWS diferente. Los cambios de datos en la instancia de base de datos principal se replican en la instancia de base de datos secundaria de forma sincrónica y en las réplicas de lectura de forma asincrónica.

Si los usuarios de su aplicación están repartidos por todo el mundo, puede utilizar réplicas de lectura entre regiones para atender consultas de lectura desde una región de AWS cercana a su usuario. Esto ayuda a reducir la latencia de red para los usuarios mientras interactúan con la aplicación, y la aplicación puede ampliarse a nivel mundial.

Puede utilizar réplicas de lectura entre regiones para reducir la carga de su base de datos con gran cantidad de lectura al enrutar las consultas de lectura de sus aplicaciones a una réplica de lectura en otra región. Puede utilizar los weighted record sets de Amazon Route 53 para distribuir las solicitudes de lectura entre sus réplicas de lectura. Dentro de una zona de disponibilidad alojada en Route 53, puede crear individual record sets para cada endpoint de réplica de lectura asociado a sus réplicas de lectura y asignarles el mismo peso. A continuación, puede enviar solicitudes directas al terminal de réplica de lectura individual que elija. Otra cosa que hay que tener en cuenta al crear réplicas de lectura es que los inicios de sesión, custom server roles y los jobs SQL existentes en las instancias de base de datos principales se copian al crear la réplica de lectura. Deberá deshabilitar o eliminar cualquier job, logins o server roles de la réplica de lectura entre regiones después de crear la réplica de lectura entre regiones, si es necesario. Sin embargo, si crea algún objeto a server-level en la instancia de base de datos principal más adelante, debe volver a crearlo manualmente en cada réplica leída, ya que los objetos de server-level no se replican en réplicas in-region o cross-region.

Tenga en cuenta los siguientes detalles de configuración para implementar una réplica de lectura multiregional de Amazon RDS for SQL Server

  1. La instancia de origen debe ser Multi-AZ con Enterprise Edition. La siguiente imagen muestra los requisitos para que su instancia principal implemente una réplica de lectura entre regiones.

2. La instancia de origen y la réplica de lectura entre regiones deben ejecutarse en SQL Server Enterprise Edition con las siguientes versiones

    • RDS for SQL Server 2019 (versión 15.00.4073.23 y superior).
    • RDS for SQL Server 2017 (versión 14.00.3049.1 y superior).
    • RDS for SQL Server 2016 (versión 13.00.5216.0 y superior).

3. Amazon RDS for SQL Server configura réplicas de lectura entre regiones mediante Distributed Availability Group.

4. Los tipos de instancias de réplica de origen y de lectura son independientes y no es necesario que sean los mismos.

5. Los inicios de sesión son independientes entre la instancia principal y la réplica de lectura entre regiones.

6. Esta solución utiliza la replicación asincrónica.

7. Si necesita usar Windows Authentication, las réplicas de lectura entre regiones deben formar parte de un servicio de directorio de AWS for Microsoft Active Directory (Managed Active Directory) y Active Directory administrado debe replicarse en varias regiones mediante la edición Enterprise.

Tenga en cuenta las limitaciones de las réplicas de lectura entre regiones de Amazon RDS for SQL Server

  1. No puede realizar failover a una réplica de lectura cross-region de Amazon RDS for SQL Server y devolverla.
  2. Debe promocionar manualmente sus réplicas de lectura entre regiones de Amazon RDS for SQL Server en una instancia de una sola AZ independiente.
  3. Puede crear hasta un total de cinco réplicas de lectura en todas las regiones compatibles para una instancia de origen.
  4. Las réplicas de lectura entre regiones de Amazon RDS for SQL Server no replican nuevos inicios de sesión o trabajos después de la creación de la réplica inicial.
  5. Siempre puedes eliminar y volver a crear tu réplica de lectura entre regiones si lo necesitas.
  6. Debe usar Managed Active Directory si necesita usar Windows Authentication.
  7. Debe usar la misma configuración para el Service Principal Name (SPN) y Kerberos que Amazon RDS for SQL Server.
  8. Las réplicas de lectura entre regiones de Amazon RDS for SQL Server no pueden formar parte de un AD on-premises ni utilizar AD Connector.

Cree una réplica de lectura entre regiones de Amazon RDS for SQL Server en la consola de AWS

Puede crear una réplica de lectura entre regiones de Amazon RDS for SQL Server mediante la consola de administración de AWS o la interfaz de línea de comandos de AWS (AWS CLI). Cada réplica de lectura tiene sus propios puntos finales para conectarse.

Para crear una réplica de lectura entre regiones de Amazon RDS for SQL Server a través de la consola, complete los siguientes pasos:

  1. En la consola de Amazon RDS, elija Databases.
  2. Selecciona tu instancia de origen.

En el menú Actions, elija Create read replica. La siguiente imagen muestra cómo implementar una réplica de lectura entre regiones.

4.En la sección Instance specifications, elija la clase de instancia de base de datos de su elección.

5. Selecciona el tipo de almacenamiento de tu elección.

6. Para Provisioned IOPS, introduzca un valor de IOPS.

7. En Network & Security, seleccione la región deseada (y la zona de disponibilidad opcional). La siguiente imagen muestra dónde elegir la región de destino para la réplica de lectura.

8. Para Publicly accessible, selecciona No.

9. Revise el cifrado, la opción de base de datos (puerto 1433) y los valores de monitoreo y configuración.

10. Elija Create read replica. La siguiente imagen muestra las opciones y configuraciones de la réplica de lectura.

Cree una réplica de lectura entre regiones de Amazon RDS for SQL Server con la CLI de AWS

Para crear una réplica de lectura entre regiones mediante la CLI de AWS, ejecute el siguiente código desde una máquina que tenga instalada la CLI de AWS:

aws rds create-db-instance-read-replica 
         --db-instance-identifier <READ REPLICA NAME> 
         --source-db-instance-identifier <SOURCE INSTANCE NAME>
         --region <target-region-name>
         --source-region <source-region-name> 
         --db-subnet-group-name <db-subnet-group-name>

Supervisión de una réplica de lectura de Amazon RDS for SQL Server

Puede usar Amazon CloudWatch para supervisar el retraso de la replicación. Puede supervisar el estado de la replicación mediante la consola o la CLI de AWS. También puede ejecutar una consulta SQL en la instancia de base de datos principal para determinar el retraso de replicación actual. El estado de la replicación es Replicating o Replication degraded, a menos que se produzca un error en la replicación, que se puede determinar mediante el campo Replication Error de la consola de Amazon RDS o el registro de eventos. También puede ver el estado de una réplica leída mediante el comando describe-db-instances de la CLI de AWS o la operación DescribedBInstances de la API de Amazon RDS.

La siguiente imagen muestra el estado de replicación de una réplica de lectura.

Puede ejecutar la siguiente consulta SQL en la instancia principal para supervisar el retraso de todas las réplicas de lectura (cross-region y in-region):

SELECT AR.replica_server_name
	, DB_NAME (ARS.database_id) '<DATABASE NAME>'
	, AR.availability_mode_desc
	, ARS.synchronization_health_desc
	, ARS.last_hardened_lsn
	, ARS.last_redone_lsn
	, ARS.secondary_lag_seconds
FROM sys.dm_hadr_database_replica_states ARS
INNER JOIN sys.availability_replicas AR ON ARS.replica_id = AR.replica_id
WHERE DB_NAME(ARS.database_id) = '<DATABASE NAME>'
ORDER BY AR.replica_server_name;

La siguiente imagen muestra la latencia entre todas las réplicas.

Promoción de réplicas de lectura interregionales

Puede promocionar su réplica de lectura entre regiones como una instancia de una sola AZ independiente según las necesidades de su empresa y puede cambiar la configuración de la aplicación para conectarse a la instancia promocionada.

En la siguiente imagen se muestra cómo promover una réplica de lectura entre regiones.

Tenga en cuenta que, después de promocionar su réplica de lectura entre regiones, su réplica de lectura entre regiones se elimina de la cadena de replicación y ahora es una instancia de Amazon RDS for SQL Server Single-AZ con acceso de lectura y escritura.

Los siguientes diagramas muestran el proceso de promoción de su réplica de lectura entre regiones a una instancia de una sola AZ:

1. Este diagrama muestra el estado actual antes de la promoción

2. Este diagrama muestra la nueva instancia Single-AZ después de la promoción

Limpiar

Si se produce un verdadero desastre y promocionas tu réplica de lectura para que pase a ser tu instancia principal, asegúrate de cerrar la instancia principal anterior si ya no se utiliza para evitar incurrir en cargos no deseados. Asegúrese de limpiar todos los recursos de AWS después de seguir esta entrada de blog en su entorno de pruebas.

Conclusión

Con las réplicas de lectura entre regiones en Amazon RDS for SQL Server, puede escalar las cargas de trabajo de lectura intensiva en cinco regiones diferentes. En esta publicación, explicamos los pasos para crear réplicas de lectura entre regiones de Amazon RDS for SQL Server.

Si tienes alguna duda o pregunta, déjala en los comentarios.

 

Este artículo fue traducido del Blog da AWS em Inglés.

 


Acerca de los autores

Gene Mays es arquitecto sénior de soluciones especializado de Microsoft en AWS. Ha trabajado con SQL Server durante más de 15 años y tiene una amplia experiencia en varios sectores. Ha ayudado a muchos clientes a diseñar soluciones de alta disponibilidad y recuperación ante desastres para SQL Server, así como a organizar migraciones a gran escala en AWS. Antes de trabajar con AWS, Gene tenía experiencia en el apoyo a clientes empresariales de los sectores financiero y de salud.

 

 

 

 

Alex Pawvathil es gerente de cuentas técnicas en AWS. Alex se centra en Amazon RDS for SQL Server. Ha trabajado con SQL Server durante más de 12 años. Como parte del equipo de soporte empresarial de AWS, ayuda a los clientes a planificar y crear soluciones utilizando las mejores prácticas y a mantener sus entornos sanos desde el punto de vista operativo.

 

 

 

 

Swarndeep Singh es arquitecto de soluciones sénior en AWS. Trabaja con el equipo de Amazon RDS y se centra en los motores de bases de datos comerciales y en SQL Server. Le gusta enfrentarse a los desafíos técnicos en Amazon RDS y le apasiona trabajar con los clientes de AWS, crear soluciones personalizadas y compartir conocimientos con sus compañeros de equipo.

 

 

 

 

Traductor

Luciano Bernardes actualmente trabaja como Sr Solutions Architect en AWS, especializándose en cargas de trabajo de Microsoft. Con 15 años de experiencia en el mercado, se ha desempeñado principalmente en consultoría técnica especializada en Microsoft, con clientes de diversos verticales, con demandas enfocadas en infraestructura on-premise y en la nube. Como SA, trabaja en estrecha colaboración con clientes y socios consultores en LATAM, para apoyarlos en la toma de decisiones y revisar la arquitectura de las cargas de trabajo de Microsoft en la nube de AWS.

 

 

 

 

Revisor

 

JuanMa Silva quien es arquitecto de soluciones con especialidad en Microsoft para México y MCO. Cuenta con 15 años de experiencia en la industria de IT, en posiciones de Sysadmin, consultor para ayudar a migrar clientes a la nube y modernización de aplicaciones, soporte aplicaciones de misión critica basados en tecnologia Microsoft.