Saltar al contenido

¿Cómo minimizo el tiempo de inactividad en ElastiCache durante una conmutación por error?

7 minutos de lectura
0

Quiero seguir las prácticas recomendadas para minimizar el tiempo de inactividad durante las conmutaciones por error en Amazon ElastiCache para Redis OSS y Amazon ElastiCache para Valkey.

Descripción breve

ElastiCache puede experimentar conmutaciones por error que afectan al rendimiento y la fiabilidad de las aplicaciones por los siguientes motivos:

  • Si agotas los recursos, como la memoria, la CPU y el ancho de banda de la red, es posible que se produzca una conmutación por error en los nodos.
  • Si AWS programa un evento de mantenimiento para una actualización, es posible que se produzca una conmutación por error en los nodos.
  • Si el hardware físico de la infraestructura que aloja los nodos se estropea o tiene problemas, es posible que se produzca una conmutación por error en los nodos.
  • Si no configuras correctamente las aplicaciones o los servicios que interactúan con la caché, las configuraciones pueden provocar un tiempo de inactividad más prolongado.

Resolución

Activación de Multi-AZ

Para crear y mantener nodos principales y réplicas en diferentes zonas de disponibilidad (AZ) de una región de AWS, utiliza la característica Multi-AZ de ElastiCache. Si se produce un error en el nodo principal, el nodo de réplica asume la función de nodo principal con un tiempo de inactividad mínimo.

Adición de réplicas de lectura

Cuando añades réplicas de lectura a tus implementaciones de Redis, minimizas considerablemente el tiempo de inactividad y la pérdida de datos en las tareas de conmutación por error. Cuando las réplicas de lectura administren las solicitudes de lectura, configura el nodo principal para gestionar las operaciones de escritura. Esta configuración ofrece las siguientes ventajas:

  • Mejora el rendimiento de lectura.
  • Reduce la latencia.
  • Proporciona tolerancia a errores.
  • Simplifica las tareas de mantenimiento que provocan tiempos de inactividad en el clúster.

Distribución de los nodos en las zonas de disponibilidad

Cuando distribuyes los nodos en varias zonas de disponibilidad, las réplicas en diferentes zonas de disponibilidad proporcionan una alta disponibilidad y operaciones de lectura continua. Esta configuración mejora la resiliencia del sistema y reduce el tiempo de inactividad en caso de conmutación por error de los nodos. Puedes distribuir los nodos en varias zonas de disponibilidad cuando configures el clúster por primera vez o cuando añadas nuevos nodos a un clúster existente. Para obtener más información, consulta Choosing regions and availability zones for ElastiCache (Selección de las regiones y zonas de disponibilidad para ElastiCache).

Uso de la versión más reciente de Valkey o Redis OSS

Según el tipo de clúster y nodo, utiliza la versión más reciente de Valkey o Redis OSS para admitir las características más recientes. Por ejemplo, los clústeres con el modo de clúster deshabilitado requieren la versión 7.2 de Valkey o la versión 5.0.6 de Redis OSS o posterior para usar la característica de reemplazos de nodos planificados. Para obtener más información, consulta Supported node types (Tipos de nodos admitidos).

Supervisión de los eventos de clúster

Para identificar las conmutaciones por error y responder a ellas, revisa los eventos de clúster de ElastiCache. Para detectar las conmutaciones por error de forma temprana, utiliza Amazon Simple Notification Service (Amazon SNS) para configurar ElastiCache de modo que envíe notificaciones sobre eventos importantes del clúster.

Uso de los puntos de enlace correctos

Para minimizar el tiempo de inactividad durante las conmutaciones por error, debes usar los puntos de enlace correctos para el clúster de ElastiCache para Redis OSS en función de la configuración del clúster. Para distribuir las cargas de trabajo de lectura entre réplicas para clústeres con el modo de clúster deshabilitado, utiliza el punto de enlace principal para las operaciones de escritura y el punto de enlace de lectura para las operaciones de lectura. En el caso de los clústeres con el modo de clúster habilitado, utiliza el punto de enlace de configuración para todas las operaciones a fin de administrar automáticamente las conexiones a los nodos correctos. Al elegir el punto de enlace correcto para el modo de clúster, se optimiza el rendimiento y se crea un proceso de conmutación por error fluido. Para obtener más información, consulta Finding connection endpoints (Búsqueda de puntos de enlace de conexión en ElastiCache).

Nota: No se recomienda utilizar directamente los puntos de enlace de los nodos individuales. En su lugar, utiliza los puntos de enlace correctos para tu tipo de conexión. Como los roles de los nodos pueden cambiar durante los eventos de conmutación por error, tendrás más problemas con las aplicaciones si utilizas un punto de enlace de nodo individual.

Pruebas periódicas de la conmutación por error automática

Para mantener la fiabilidad de las implementaciones de Redis, se recomienda probar la conmutación por error automática periódicamente. Para probar la conmutación por error automática, debes simular el error del nodo principal para asegurarte de que las réplicas pasen al estado principal. Estas pruebas pueden identificar problemas en tus configuraciones y te permiten abordarlos antes de que afecten a los clústeres. Además, las pruebas de conmutación por error proporcionan información sobre el rendimiento de las aplicaciones y sobre cómo optimizar la arquitectura y los procedimientos de recuperación.

Prácticas recomendadas para los clientes de Redis

Para los clientes de Redis, sigue estas prácticas recomendadas:

  • Para mejorar el rendimiento y la escalabilidad de las aplicaciones, utiliza la agrupación de conexiones para administrar las conexiones preestablecidas y reutilizables. Para obtener más información, consulta Connection pools and multiplexing (Grupos de conexiones y multiplexación) en el sitio web de Redis.
  • Implementa la gestión de excepciones y tiempos de espera para mantener la eficiencia de las aplicaciones del clúster de Redis. También puedes revisar los registros para ver si se ha agotado el tiempo de espera para identificar los problemas y ajustar las configuraciones. Para obtener más información, consulta Client timeouts (Tiempos de espera de los clientes) en el sitio web de Redis.
  • Para mantener la resiliencia de las aplicaciones, implementa mecanismos de reintento que utilicen una estrategia de retroceso exponencial. Configura los mecanismos para diferenciar entre los errores transitorios que justifican los reintentos y los errores permanentes que no justifican los reintentos. Para obtener más información, consulta Cluster client discovery and exponential backoff (Valkey and Redis OSS) (Detección de clientes de clúster y retroceso exponencial [Valkey y Redis OSS]).
  • Activa los registros para capturar métricas y errores clave y establecer una línea base de rendimiento para el clúster. Para obtener más información, consulta Logging events (Registro de eventos) en el sitio web de Redis.
  • Diseña los clientes para gestionar de forma dinámica los cambios en la topología del clúster, así como para adaptarse a los cambios de nodos y roles. Para mantener las conexiones con los nodos del clúster y optimizar los clústeres, implementa la agrupación inteligente de conexiones. Para obtener más información, consulta Redis cluster and client libraries (Bibliotecas de cliente y de clúster de Redis) en el sitio web de Redis.

Información relacionada

Monitoring best practices with Amazon ElastiCache for Redis using Amazon CloudWatch (Prácticas recomendadas de supervisión con Amazon ElastiCache para Redis mediante Amazon CloudWatch)

¿Cómo puedo solucionar los problemas de alta latencia en ElastiCache para Redis?

Supported connection clients (Clientes de conexión compatibles) en el sitio web de Redis

OFICIAL DE AWSActualizada hace 8 meses