El pilar de la excelencia ElastiCache operativa de Amazon Well-Architected Lens - Amazon ElastiCache

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.

El pilar de la excelencia ElastiCache operativa de Amazon Well-Architected Lens

El pilar de la excelencia operativa se centra en el funcionamiento y la supervisión de los sistemas para ofrecer valor empresarial, y en la mejora continua de los procesos y los procedimientos. Los temas clave incluyen la automatización de los cambios, la respuesta a los eventos y la definición de estándares para administrar las operaciones diarias.

OE 1: ¿Cómo entiende y responde a las alertas y los eventos activados por su ElastiCache clúster?

Introducción a nivel de preguntas: cuando opera ElastiCache clústeres, puede recibir opcionalmente notificaciones y alertas cuando se produzcan eventos específicos. ElastiCache, de forma predeterminada, registra los eventos relacionados con sus recursos, como una conmutación por error, la sustitución de nodos, una operación de escalado, un mantenimiento programado, etc. Cada evento incluye la fecha y la hora, el nombre y el tipo de origen y una descripción.

Ventaja a nivel de pregunta: La capacidad de comprender y gestionar los motivos subyacentes de los eventos que activan las alertas generadas por su clúster le permite operar de manera más eficaz y responder a los eventos de manera adecuada.

  • [Obligatorio] Revise los eventos generados ElastiCache en la ElastiCache consola (después de seleccionar su región) o mediante el comando describe-events de Amazon Command Line Interface (AWS CLI) y el. ElastiCache API Configure ElastiCache para enviar notificaciones de eventos importantes del clúster mediante Amazon Simple Notification Service (AmazonSNS). El uso de Amazon SNS con sus clústeres le permite realizar acciones en función ElastiCache de los eventos mediante programación.

    • Hay dos grandes categorías de eventos: eventos actuales y programados. La lista de eventos actuales incluye: la creación y eliminación de recursos, las operaciones de escalado, la conmutación por error, el reinicio de nodos, la creación de una instantánea, la modificación de los parámetros del clúster, la renovación del certificado de CA, los eventos de error (error de aprovisionamiento del clúster (VPCo ENI -), errores de escalado (ENI-) y errores de instantáneas). La lista de eventos programados incluye: reemplazo de nodos programado durante el período de mantenimiento y reemplazo de nodos reprogramado.

    • Si bien es posible que no necesite reaccionar de inmediato ante algunos de estos eventos, es fundamental analizar primero todos los eventos de error:

      • ElastiCache:AddCacheNodeFailed

      • ElastiCache:CacheClusterProvisioningFailed

      • ElastiCache:CacheClusterScalingFailed

      • ElastiCache:CacheNodesRebooted

      • ElastiCache: SnapshotFailed (solo Valkey o Redis) OSS

    • [Recursos]:

  • [Lo mejor] Para automatizar las respuestas a los eventos, aproveche las capacidades de los AWS productos y servicios, como SNS las funciones Lambda. Siga las prácticas recomendadas y haga cambios pequeños, frecuentes y reversibles, como código para que sus operaciones evolucionen a lo largo del tiempo. Deberías usar CloudWatch las métricas de Amazon para monitorear tus clústeres.

    [Recursos]: Supervise ElastiCache (RedisOSS) (modo de clúster desactivado) y lea los puntos de enlace de réplica mediante AWS Lambda, Amazon Route 53 y Amazon SNS para un caso de uso que utilice Lambda y. SNS

OE 2: ¿Cuándo y cómo se escalan los clústeres existentes? ElastiCache

Introducción a nivel de preguntas: Ajustar el tamaño del ElastiCache clúster es un acto de equilibrio que debe evaluarse cada vez que se produzcan cambios en los tipos de carga de trabajo subyacentes. El objetivo es operar con el entorno del tamaño adecuado para la carga de trabajo.

Ventaja a nivel de pregunta: La sobreutilización de los recursos puede provocar una latencia elevada y una disminución general del rendimiento. Por otro lado, la infrautilización puede provocar un aprovisionamiento excesivo de recursos con una optimización de costos deficiente. El dimensionamiento correcto de los entornos, puede lograr un equilibrio entre la eficiencia del rendimiento y la optimización de costos. Para corregir la sobreutilización o la infrautilización de sus recursos, ElastiCache puede escalarlos en dos dimensiones. Puede escalar verticalmente aumentando o disminuyendo la capacidad de los nodos. Y puede escalar horizontalmente añadiendo y eliminando nodos.

OE 3: ¿Cómo administra los recursos ElastiCache del clúster y cómo lo mantiene up-to-date?

Introducción a nivel de preguntas: Al operar a gran escala, es esencial que pueda localizar e identificar todos sus recursos. ElastiCache Al implementar nuevas funciones de la aplicación, debe crear una simetría entre las versiones de los clústeres en todos los tipos de ElastiCache entornos: desarrollo, pruebas y producción. Los atributos de los recursos permiten separar los entornos para diferentes objetivos operativos, por ejemplo, cuando se implementan nuevas características y habilitan nuevos mecanismos de seguridad.

Ventaja a nivel de pregunta: La separación de los entornos de desarrollo, pruebas y producción es la mejor práctica operativa. También se recomienda aplicar los parches de software más recientes a los clústeres y nodos de todos los entornos mediante procesos bien conocidos y documentados. Aprovechar las ElastiCache funciones nativas permite a su equipo de ingeniería centrarse en cumplir los objetivos empresariales y no en el ElastiCache mantenimiento.

  • [Lo mejor] Utilice la última versión del motor disponible y aplique las actualizaciones de autoservicio tan pronto como estén disponibles. ElastiCache actualiza automáticamente su infraestructura subyacente durante el período de mantenimiento especificado del clúster. Sin embargo, los nodos que se ejecutan en sus clústeres se actualizan mediante actualizaciones de autoservicio. Estas actualizaciones pueden ser de dos tipos: parches de seguridad o actualizaciones de software menores. Asegúrese de entender la diferencia entre los tipos de parches y cuándo se aplican.

    [Recursos]:

  • [Lo mejor] Organice sus ElastiCache recursos mediante etiquetas. Utilice las etiquetas en los grupos de replicación y no en los nodos individuales. Puede configurar las etiquetas de modo que se muestren cuando consulte los recursos y puede utilizarlas para realizar búsquedas y aplicar filtros. Debe utilizar los grupos de recursos para crear y mantener fácilmente colecciones de recursos que compartan conjuntos comunes de etiquetas.

    [Recursos]:

OE 4: ¿Cómo gestiona las conexiones de los clientes con sus ElastiCache clústeres?

Introducción a modo de pregunta: Cuando opere a gran escala, debe comprender cómo se conectan sus clientes con el ElastiCache clúster para gestionar los aspectos operativos de las aplicaciones (como los tiempos de respuesta).

Ventaja a nivel de pregunta: Al elegir el mecanismo de conexión más adecuado, se garantiza que la aplicación no se desconecte debido a errores de conectividad, como los tiempos de espera.

  • [Obligatorio] Separe las operaciones de lectura de las de escritura y conéctese a los nodos de réplica para ejecutar las operaciones de lectura. Sin embargo, tenga en cuenta que si separa las escrituras de las lecturas, perderá la capacidad de leer una clave inmediatamente después de escribirla debido a la naturaleza asíncrona de la replicación de Valkey y Redis. OSS El WAIT comando se puede utilizar para mejorar la seguridad de los datos en el mundo real y obligar a las réplicas a reconocer las escrituras antes de responder a los clientes, con un coste global de rendimiento. El uso de nodos de réplica para las operaciones de lectura se puede configurar en su biblioteca cliente ElastiCache (RedisOSS) utilizando el terminal del ElastiCache lector para el modo de clúster desactivado. Para activar el modo de clúster, utilice el comando ElastiCache (RedisOSS). READONLY En muchas de las bibliotecas cliente ElastiCache (RedisOSS), ElastiCache (RedisOSS) READONLY se implementa de forma predeterminada o mediante un ajuste de configuración.

    [Recursos]:

  • [Obligatorio] Utilice la agrupación de conexiones. El establecimiento de una TCP conexión tiene un coste de CPU tiempo tanto para el cliente como para el servidor, y la agrupación permite reutilizar la conexión. TCP

    Para reducir la sobrecarga de conexiones, debe utilizar la agrupación de conexiones. Con un conjunto de conexiones, la aplicación puede reutilizar y liberar conexiones “a voluntad”, sin el costo de establecer la conexión. Puede implementar la agrupación de conexiones a través de su biblioteca de clientes ElastiCache (RedisOSS) (si es compatible), con un marco disponible para su entorno de aplicaciones, o crearlo desde cero.

  • [Lo mejor] Asegúrese de que el tiempo de espera del socket del cliente esté establecido en, al menos, un segundo (en lugar del típico valor predeterminado de “ninguno” en numerosos clientes).

    • Si se establece un valor de tiempo de espera demasiado bajo, es posible que se produzcan tiempos de espera cuando la carga del servidor es alta. Si se establece demasiado alto, la aplicación puede tardar mucho en detectar problemas de conexión.

    • Controle el volumen de nuevas conexiones a través de la implementación de la agrupación de conexiones en su aplicación cliente. Esto reduce la latencia y el CPU uso necesarios para abrir y cerrar las conexiones y realizar un TLS apretón de manos si TLS está activado en el clúster.

    [Recursos]: Configure ElastiCache (RedisOSS) para una mayor disponibilidad

  • [Bueno] El uso de la canalización (cuando los casos de uso lo permitan) puede aumentar significativamente el rendimiento.

    • Con la canalización, se reduce el tiempo de ida y vuelta (RTT) entre los clientes de la aplicación y el clúster, y se pueden procesar nuevas solicitudes incluso si el cliente aún no ha leído las respuestas anteriores.

    • Con la canalización, puede enviar varios comandos al servidor sin esperar a recibir respuestas o confirmaciones. La desventaja de la canalización es que, cuando finalmente se obtienen todas las respuestas de forma masiva, es posible que se haya producido un error que no se detectará hasta el final.

    • Implemente métodos para reintentar las solicitudes cuando se devuelva un error que omita la solicitud incorrecta.

    [Recursos]: Pipelining

OE 5: ¿Cómo se implementan ElastiCache los componentes para una carga de trabajo?

Introducción a nivel de preguntas: ElastiCache los entornos se pueden implementar manualmente a través de la AWS consola o mediante programación mediante kits de herramientas APIsCLI, etc. Las prácticas recomendadas de excelencia operativa sugieren automatizar las implementaciones mediante código siempre que sea posible. Además, ElastiCache los clústeres pueden aislarse por carga de trabajo o combinarse para optimizar los costes.

Ventaja a nivel de pregunta: elegir el mecanismo de implementación más adecuado para sus ElastiCache entornos puede mejorar la excelencia operativa con el tiempo. Se recomienda realizar operaciones como código siempre que sea posible para minimizar los errores humanos y aumentar la repetibilidad, la flexibilidad y el tiempo de respuesta a los eventos.

Al comprender los requisitos de aislamiento de la carga de trabajo, puede optar por tener ElastiCache entornos dedicados por carga de trabajo o combinar varias cargas de trabajo en clústeres únicos o combinaciones de ambos. Comprender las soluciones de compromiso puede ayudar a lograr un equilibrio entre la excelencia operativa y la optimización de costos.

  • [Obligatorio] Conozca las opciones de implementación disponibles y automatice estos procedimientos siempre que sea posible. ElastiCache Las posibles vías de automatización incluyen CloudFormationSDK, AWS CLI/yAPIs.

    [Recursos]:

  • [Obligatorio] Para todas las cargas de trabajo, determine el nivel de aislamiento del clúster necesario.

    • [Lo mejor]: Alto aislamiento: asignación 1:1 de la carga de trabajo al clúster. Permite un control detallado del acceso, el tamaño, el escalado y la administración de ElastiCache los recursos en función de la carga de trabajo.

    • [Mejor] Aislamiento medio: M:1 aislado por propósito, pero quizás compartido entre varias cargas de trabajo (por ejemplo, un clúster dedicado al almacenamiento en caché de las cargas de trabajo y otro dedicado a la mensajería).

    • [Bueno]: Bajo aislamiento: M:1 multiusos, totalmente compartido. Recomendado para cargas de trabajo en las que es aceptable el acceso compartido.

OE 6: ¿Cómo se planifican y mitigan los errores?

Introducción a nivel de preguntas: La excelencia operativa incluye anticipar los fallos mediante la realización de ejercicios periódicos «previos a la autopsia» para identificar las posibles fuentes de fallo y poder eliminarlos o mitigarlos. ElastiCache ofrece una conmutación por error API que permite simular eventos de fallo de nodos con fines de prueba.

Ventaja a nivel de pregunta: Al probar los escenarios de error con antelación, puede averiguar cómo afectan a su carga de trabajo. Esto permite probar de forma segura los procedimientos de respuesta y su eficacia. Además su equipo se familiarizará con su ejecución.

[Obligatorio] Realice pruebas de conmutación por error con regularidad en las cuentas de desarrollo y pruebas. TestFailover

OE 7: ¿Cómo se solucionan los problemas de los motores Valkey o RedisOSS?

Introducción a nivel de preguntas: La excelencia operativa requiere la capacidad de investigar la información tanto a nivel de servicio como a nivel de motor para analizar el estado y el estado de los clústeres. ElastiCache puede emitir registros de OSS motores de Valkey o Redis tanto a Amazon como a Amazon CloudWatch Kinesis Data Firehose.

Ventaja a nivel de pregunta: al habilitar los registros de Valkey o Redis OSS Engine en los clústeres, se obtiene información sobre los eventos que afectan al estado y al rendimiento de los ElastiCache clústeres. Los registros de motores de Valkey o Redis proporcionan datos directamente del OSS motor que no están disponibles a través del mecanismo de eventos. ElastiCache Al observar detenidamente tanto los ElastiCache eventos (consulte la anterior OE-1) como los registros del motor, es posible determinar el orden de los eventos al solucionar problemas tanto desde el punto de vista del ElastiCache servicio como del motor.

  • [Obligatorio] Asegúrese de que la función de registro OSS del motor de Redis esté habilitada, que estará disponible a partir de la versión 6.2 de ElastiCache Redis OSS y versiones posteriores. Esto se puede hacer durante la creación del clúster o modificándolo después de la creación.

    • Determine si Amazon CloudWatch Logs o Amazon Kinesis Data Firehose son el destino adecuado OSS para los registros del motor de Redis.

    • Seleccione un registro de destino adecuado en Kinesis Data Firehose CloudWatch o en Kinesis Data Firehose para conservar los registros. Si tiene varios clústeres, considere la posibilidad de utilizar un registro de destino diferente para cada clúster, ya que esto ayudará a aislar los datos a la hora de solucionar problemas.

    [Recursos]:

  • [Lo mejor] Si utiliza Amazon CloudWatch Logs, considere la posibilidad de utilizar Amazon CloudWatch Logs Insights para consultar los registros del OSS motor de Valkey o Redis para obtener información importante.

    Por ejemplo, cree una consulta en el grupo de CloudWatch registros que contiene los registros de los OSS motores de Valkey o Redis y que devuelva eventos con un LogLevel signo ''WARNING, como:

    fields @timestamp, LogLevel, Message | sort @timestamp desc | filter LogLevel = "WARNING"

    [Recursos]: analizar los datos de registro con CloudWatch Logs Insights