Configuración de la replicación geográfica activa para las instancias de Azure Managed Redis (versión preliminar)
En este artículo, aprenderá a configurar una instancia de caché con replicación geográfica activa mediante Azure Portal.
La replicación geográfica activa agrupa hasta cinco instancias de Azure Managed Redis (versión preliminar) en una única caché que se extiende por todas las regiones de Azure. Ambas instancias actúan como las principales cachés locales. Una aplicación decide qué instancias se van a utilizar para las solicitudes de lectura y escritura.
Nota
La transferencia de datos entre regiones de Azure se cobrará según las tarifas de ancho de banda estándar.
Cómo funciona la replicación geográfica activa
La replicación geográfica activa utiliza tipos de datos replicados sin conflictos (CRDT) para distribuir sin problemas datos entre instancias de Redis que pueden estar distribuidas por continentes. Estas instancias están conectadas en una configuración activo-activo, donde las escrituras en una instancia se reflejan automáticamente en las otras instancias en el mismo grupo de replicación geográfica. Esta replicación bidireccional de datos difiere de los enfoques unidireccionales de replicación activo-pasivo, en los que los datos se replican del primario a una réplica geográfica, pero no en la otra dirección. Se trata de una potente herramienta que suele utilizarse de varias formas:
- Proporcionar latencia local distribuyendo el almacenamiento en caché más cerca de los usuarios.. Al utilizar una red de instancias de Redis con replicación geográfica activa, puede colocar cachés geográficamente más cerca de los usuarios de cada región, lo que reduce la latencia y mejora el rendimiento de la aplicación.
- Sincronización de aplicaciones globales. Dado que las cachés con replicación geográfica aparecen como una única instancia de Redis, puede distribuir datos globalmente sin necesidad de segmentar los datos por regiones. Por ejemplo, puede utilizar un único conjunto ordenado Redis para proporcionar una tabla de clasificación de juegos para todos los usuarios del mundo, en lugar de proporcionar una tabla de clasificación independiente para cada región geográfica.
- Reducción del tiempo de inactividad y del riesgo de interrupciones regionales. Dado que cada instancia de Redis del grupo de replicación geográfica se actualiza constantemente con los datos más recientes de las demás instancias del grupo, los datos se conservan bien en caso de interrupción regional. Las aplicaciones pueden cambiar temporalmente para utilizar una de las otras instancias del grupo y, cuando la región vuelva a estar en línea, la instancia de Redis de allí se volverá a cargar automáticamente con datos de las otras cachés con replicación geográfica.
Para conocer con más detalle el funcionamiento de la replicación geográfica activa, consulte Distribución geográfica activa (basada en CRDTS)
Ámbito de disponibilidad
Nivel | Memoria optimizada, equilibrada, optimizado para proceso | Optimizado para flash |
---|---|---|
Disponible | Sí (excepto B0 y B1) | Sí |
Importante
Las SKU equilibradas B0 y B1 no admiten replicación geográfica activa.
Requisitos previos de replicación geográfica activa
Hay algunas restricciones al usar la replicación geográfica activa:
- La replicación geográfica activa solo se admite cuando Azure Managed Redis se encuentra en una configuración de alta disponibilidad (es decir, utiliza la replicación).
- Solo se admiten los módulos RediSearch y RedisJSON
- En el nivel Optimizado para Flash, solo se puede utilizar la directiva de desalojo No desalojo. Todas las directivas de desalojo son compatibles con los demás niveles.
- No se admite la persistencia de datos porque la replicación geográfica activa proporciona una experiencia superior.
- Todas las memorias caché de un grupo de replicación geográfica deben tener la misma configuración. Por ejemplo, todas las memorias caché deben tener la misma SKU, capacidad, directiva de expulsión, directiva de agrupación en clústeres, módulos y configuración de TLS.
- Si se escala una instancia de un grupo de respuesta geográfica, las demás instancias de ese grupo deben escalarse al mismo tamaño antes de que pueda producirse cualquier escalado adicional. Consulte Escalado de instancias en un grupo de replicación geográfica para obtener más información.
- No puedes usar
FLUSHALL
yFLUSHDB
los comandos Redis al usar la replicación geográfica activa. La prohibición de los comandos impide la eliminación no deseada de datos. En su lugar, utilice la operación de descarga.
Creación de un grupo de replicación geográfica activa o unión con él
Al crear un nuevo recurso Azure Managed Redis, seleccione la pestaña Avanzado. Rellene la primera parte del formulario, incluida la directiva de agrupación. Para obtener más información sobre la elección de la Directiva de agrupación en clústeres, consulte Agrupación en clústeres en Azure Managed Redis.
Seleccione Configurar para configurar la replicación geográfica activa.
Cree un nuevo grupo de replicación para una primera instancia de caché. O bien, seleccione uno existente de la lista.
Seleccione Configurar para finalizar.
Espere a que el área de trabajo se cree correctamente. Cuando haya finalizado, verá el conjunto configurado para la replicación geográfica activa. Repita los pasos anteriores para cada instancia de caché en el grupo de replicación geográfica.
Agregar una instancia existente a un grupo de replicación geográfica activa
Para agregar una instancia de caché existente a un grupo de replicación geográfica activa, puede utilizar la API REST para realizar una acción de vinculación forzada.
Se descartarán todos los datos de la instancia de caché que se está vinculando. La instancia tampoco estará disponible temporalmente durante varios minutos mientras se une al grupo de replicación geográfica. El portal y la CLI aún no están disponibles para esta característica.
Eliminación de un grupo de replicación geográfica activa
Para quitar una instancia de caché de un grupo de replicación geográfica activa, solo tiene que eliminar la instancia. Las instancias restantes luego se reconfiguran automáticamente.
Desvinculación forzada si se produce una interrupción de la región
La replicación geográfica activa es una potente función que aumenta drásticamente la disponibilidad cuando se utiliza Azure Managed Redis. Sin embargo, debe realizar los pasos necesarios para preparar las memorias caché si hay una interrupción regional.
Por ejemplo, considere estos consejos:
- Identifique de antemano a qué otra memoria caché del grupo de replicación geográfica se va a cambiar si una región deja de funcionar.
- Asegúrese de que los firewalls estén establecidos para que las aplicaciones y los clientes puedan acceder a la memoria caché de reserva identificada.
- Cada caché del grupo de replicación geográfica tiene su propia clave de acceso. Determine cómo cambia la aplicación a claves de acceso distintas al dirigirse a una caché de reserva.
- Si una caché del grupo de replicación geográfica deja de funcionar, comienza a producirse una acumulación de metadatos en todas las memorias caché del grupo de replicación geográfica. Los metadatos no se pueden descartar hasta que las escrituras se puedan volver a sincronizar con todas las caché. Puede evitar la acumulación de metadatos mediante la desvinculación forzada de la caché que está inactiva. Considere la posibilidad de supervisar la memoria disponible en la caché y desvincular si hay presión en la memoria, especialmente para cargas de trabajo con mucha escritura.
También es posible usar un patrón de disyuntor. Use el patrón para redirigir automáticamente el tráfico fuera de una caché que experimenta una interrupción de la región y hacia una caché de reserva en el mismo grupo de replicación geográfica. Use servicios de Azure como Azure Traffic Manager o Azure Load Balancer para habilitar el redireccionamiento.
En caso de que una de las cachés del grupo de replicación no esté disponible debido a una interrupción de la región, puede quitar de manera forzada la caché no disponible del grupo de replicación.
Debe quitar la caché no disponible porque las cachés restantes del grupo de replicación comienzan a almacenar los metadatos que no se han compartido con la caché no disponible. Cuando esto sucede, es posible que las cachés disponibles en el grupo de replicación se queden sin memoria.
Vaya a Azure Portal y seleccione una de las cachés del grupo de replicación que todavía esté disponible.
Seleccione Replicación geográfica activa en el menú "Recurso" de la izquierda para ver la configuración en el panel de trabajo.
Active la casilla a fin de seleccionar la caché para la que necesita forzar la desvinculación.
Seleccione Force unlink (Forzar desvinculación) y, a continuación, Aceptar para confirmar.
Una vez restaurada la disponibilidad de la región afectada, debe eliminar la caché afectada y volver a crearla para agregarla de nuevo al grupo de replicación.
Configuración de la replicación geográfica activa mediante la CLI de Azure o PowerShell
Azure CLI
Usa la CLI de Azure para crear una nueva memoria caché y un grupo de replicación geográfica, o para agregar una memoria caché nueva a un grupo de replicación geográfica existente. Para obtener más información, consulte az redisenterprise create.
Crear una nueva instancia de Azure Managed Redis en un nuevo grupo de replicación geográfica utilizando la CLI de Azure
Este ejemplo crea una nueva instancia Azure Managed Redis Balanced B10 denominada Cache1 en la región Este de EE.UU. A continuación, la caché se agrega a un nuevo grupo de replicación geográfica activa denominado replicationGroup:
az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"
Para configurar correctamente la replicación geográfica activa, se debe agregar el id. de la instancia de caché que se va a crear con el parámetro --linked-databases
. El identificador tiene el formato:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Crear una nueva instancia de Azure Managed Redis en un grupo de replicación geográfica existente utilizando la CLI de Azure
Este ejemplo crea una nueva instancia de caché B10 equilibrada denominada Cache2 en la región Oeste de Estados Unidos. A continuación, el script agrega la memoria caché al grupo de replicación geográfica activa replicationGroup
creado en un procedimiento anterior. De este modo, se vincula en una configuración activa-activa con Cache1.
az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"
Como antes, debe indicar Cache1 y Cache2 mediante el parámetro --linked-databases
.
Azure PowerShell
Use Azure PowerShell para crear una nueva caché y un grupo de replicación geográfica, o para agregar una nueva caché a un grupo de replicación geográfica existente. Para obtener más información, consulte New-AzRedisEnterpriseCache.
Crear una nueva instancia de Azure Managed Redis en un nuevo grupo de replicación geográfica mediante PowerShell
Este ejemplo crea una nueva instancia de caché Azure Managed Redis Balanced B10 denominada Cache1 en la región Este de EE. UU. A continuación, la caché se agrega a un nuevo grupo de replicación geográfica activa denominado replicationGroup:
New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'
Para configurar correctamente la replicación geográfica activa, se debe agregar el id. de la instancia de caché que se va a crear con el parámetro -LinkedDatabase
. El identificador tiene el formato:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Crear una nueva instancia de Azure Managed Redis en un grupo de replicación geográfica existente mediante PowerShell
Este ejemplo crea una nueva instancia de caché B10 equilibrada denominada Cache2 en la región Oeste de Estados Unidos. A continuación, el script agrega la caché al grupo de replicación geográfica activa, "replicationGroup", creado en el procedimiento anterior. El resultado es que las dos cachés, Cache1 y Cache2, están vinculadas en una configuración activo-activo.
New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'
Como antes, debe indicar Cache1 y Cache2 mediante el parámetro -LinkedDatabase
.
Escalado de instancias en un grupo de replicación geográfica
Es posible escalar instancias configuradas para usar la replicación geográfica activa. Sin embargo, un grupo de replicación geográfica con una combinación de diferentes tamaños de caché puede presentar problemas. Para evitar que se produzcan estos problemas, todas las cachés de un grupo de replicación geográfica deben tener el mismo tamaño y nivel de rendimiento.
Dado que el escalado requiere cambiar el tamaño o el nivel y es difícil escalar simultáneamente todas las instancias del grupo de replicación geográfica, Azure Managed Redis cuenta con un mecanismo de bloqueo. Si escala una instancia de un grupo de replicación geográfica, la máquina virtual subyacente se escalará, pero la memoria disponible se limitará al tamaño original hasta que también se escale verticalmente las otras instancias. Y cualquier otra operación de escalado de las instancias restantes se bloquea hasta que coincidan con la misma configuración que la primera memoria caché que se va a escalar.
Ejemplo de escalado
Por ejemplo, puede tener tres instancias en su grupo de replicación geográfica, todas ellas instancias M10 de memoria optimizada:
Nombre de la instancia | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Tipo | Optimización de memoria M10 | Optimización de memoria M10 | Optimización de memoria M10 |
Supongamos que desea escalar cada instancia de este grupo de replicación geográfica a una instancia X20 optimizado para proceso. Primero se escalaría uno de los cachés hasta un X20:
Nombre de la instancia | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Tipo | X20 optimizado para proceso | Optimización de memoria M10 | Optimización de memoria M10 |
En este punto, las instancias Redis01
y Redis02
solo pueden escalar una instancia X20 Optimizado para proceso. Todas las demás operaciones de escalado están bloqueadas.
Nota:
La instancia de Redis00
no está bloqueada para escalar aún más en este momento. Pero se bloqueará una vez Redis01
o Redis02
se escale para ser un X20 optimizado para proceso.
Una vez que cada instancia se haya escalado al mismo nivel y tamaño, se quitan todos los bloqueos de escalado:
Nombre de la instancia | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Tipo | X20 optimizado para proceso | X20 optimizado para proceso | X20 optimizado para proceso |
Operación de vaciado
Debido a la posibilidad de pérdida involuntaria de datos, no puede usar FLUSHALL
y FLUSHDB
comandos Redis con ninguna instancia de caché que resida en un grupo de replicación geográfica. En su lugar, usa el botón Vaciar caché situado en la parte superior del panel de trabajo Replicación geográfica activa.
Vaciar cachés usando CLI de Azure o PowerShell
La CLI de Azure y PowerShell también se pueden usar para desencadenar una operación de vaciado. Para saber más sobre el uso de la CLI de Azure, consulte vaciado de base de datos az redisenterprise. Para saber más sobre el uso de PowerShell, consulte Invoke-AzRedisEnterpriseCacheDatabaseFlush.
Importante
Ten cuidado al usar la característica Vaciar cachés. Al seleccionar el botón se quitan todos los datos de la caché actual y de TODAS las cachés vinculadas del grupo de replicación geográfica.
Administra el acceso a la característica mediante el control de acceso basado en rol de Azure. Solo se debe conceder acceso a los usuarios autorizados para vaciar todas las memorias caché.