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.
Temas
OE 1: ¿Cómo entiende y responde a las alertas y los eventos activados por su ElastiCache clúster?
OE 2: ¿Cuándo y cómo se escalan los clústeres existentes? ElastiCache
OE 3: ¿Cómo administra los recursos ElastiCache del clúster y cómo lo mantiene up-to-date?
OE 4: ¿Cómo gestiona las conexiones de los clientes con sus ElastiCache clústeres?
OE 5: ¿Cómo se implementan ElastiCache los componentes para una carga de trabajo?
OE 7: ¿Cómo se solucionan los problemas de los eventos del motor de Valkey o Redis OSS?
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 la interfaz de línea de comandos de Amazon
(AWS CLI) y la API. ElastiCache Configure ElastiCache para enviar notificaciones de eventos importantes del clúster mediante Amazon Simple Notification Service (Amazon SNS). El uso de Amazon SNS con sus clústeres le permite realizar acciones en función de los eventos mediante programación. ElastiCache -
Hay dos grandes categorías de eventos: eventos actuales y programados. La lista de eventos actuales incluye: creación y eliminación de recursos, operaciones de escalado, conmutación por error, reinicio de nodos, creación de instantáneas, modificación de los parámetros del clúster, renovación del certificado de CA, eventos de error (error de aprovisionamiento del clúster [VPC o 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 y Lambda Functions. 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 (modo de clúster desactivado) y lea los puntos finales 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.
-
[Obligatorio] Resuelva la sobreutilización de la CPU y la red en los nodos principales: descargue y redirija las operaciones de lectura a los nodos de réplica. Utilice nodos de réplica para las operaciones de lectura a fin de reducir la utilización del nodo principal. Esto se puede configurar en su biblioteca cliente OSS de Valkey o Redis conectándose al punto final del ElastiCache lector si el modo de clúster está desactivado o mediante el comando READONLY si el modo de clúster está activado.
[Recursos]:
-
[Obligatorio] Supervise la utilización de los recursos cruciales del clúster, como la CPU, la memoria y la red. Es necesario realizar un seguimiento del uso de estos recursos específicos del clúster para tomar una decisión de escalado y determinar el tipo de operación de escalado. Si el modo de ElastiCache clúster está desactivado, los nodos principal y de réplica pueden escalarse verticalmente. Los nodos de réplica también pueden escalar horizontalmente de 0 a 5 nodos. Si el modo de clúster está habilitado, se aplica esto mismo a cada partición del clúster. Además, puede aumentar o reducir el número de particiones.
[Recursos]:
-
[Lo mejor] Supervisar el rendimiento a lo largo del tiempo puede ayudar a detectar cambios en la carga de trabajo que pasarían desapercibidos si se hiciera en un momento determinado. Para detectar tendencias a más largo plazo, utilice CloudWatch métricas para buscar intervalos de tiempo más largos. Lo aprendido al observar períodos prolongados de CloudWatch métricas debería servir de base para su pronóstico sobre la utilización de los recursos del clúster. CloudWatch los puntos de datos y las métricas están disponibles durante un máximo de 455 días.
[Recursos]:
-
[Lo mejor] Si sus ElastiCache recursos se crean con CloudFormation ella, lo mejor es realizar los cambios mediante CloudFormation plantillas para preservar la coherencia operativa y evitar cambios de configuración no gestionados y desviaciones en la pila.
[Recursos]:
-
[Lo mejor] Automatice sus operaciones de escalado utilizando datos operativos del clúster y defina umbrales CloudWatch para configurar las alarmas. Utilice CloudWatch Events and Simple Notification Service (SNS) para activar las funciones de Lambda y ejecutar una ElastiCache API para escalar los clústeres automáticamente. Un ejemplo sería añadir una partición al clúster cuando la métrica
EngineCPUUtilization
alcance el 80 % durante un período de tiempo prolongado. Otra opción sería utilizarDatabaseMemoryUsedPercentages
como umbral basado en la memoria.[Recursos]:
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 al separar las operaciones de escritura de las de lectura, perderá la capacidad de leer una clave inmediatamente después de escribirla debido a la naturaleza asincrónica de la replicación de Valkey y Redis OSS. Se puede utilizar el comando WAIT para mejorar la seguridad de los datos en el mundo real y obligar a las réplicas a confirmar las escrituras antes de responder a los clientes, con un costo de rendimiento general. El uso de nodos de réplica para las operaciones de lectura se puede configurar en la biblioteca de su ElastiCache cliente utilizando el terminal del ElastiCache lector para el modo de clúster desactivado. Para activar el modo de clúster, utilice el comando READONLY. En muchas de las bibliotecas ElastiCache cliente, 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 conexión TCP tiene un costo en términos de tiempo de CPU 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 ElastiCache cliente (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 uso de CPU necesarios para abrir y cerrar las conexiones y realizar un protocolo de enlace de TLS si TLS está habilitado en el clúster.
[Recursos]: configúrelo ElastiCache para una mayor disponibilidad
-
-
[Bueno] El uso de la canalización (cuando los casos de uso lo permitan) puede aumentar significativamente el rendimiento.
-
La canalización reduce el tiempo de ida y vuelta (RTT) entre los clientes de la aplicación y el clúster, y es posible 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 APIs CLI, kits de herramientas, 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 CloudFormation AWS CLI/SDK y. APIs
[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 API de conmutación por error 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 eventos del motor de Valkey o Redis OSS?
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 del motor OSS de Valkey o Redis tanto a Amazon como a Amazon CloudWatch Kinesis Data Firehose.
Ventaja a nivel de pregunta: al habilitar los registros de los motores OSS de Valkey o Redis en los clústeres, se obtiene información sobre ElastiCache los eventos que afectan al estado y al rendimiento de los clústeres. Los registros del motor OSS de Valkey o Redis proporcionan datos directamente del 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 del motor Redis OSS esté habilitada, que estará disponible a partir de la ElastiCache versión 6.2 para 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 para los registros del motor OSS 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]:
-
Entrega de registros: Entrega de registro
-
Destinos de registro: Amazon CloudWatch Logs
-
Introducción a Amazon CloudWatch Logs: ¿Qué es Amazon CloudWatch Logs?
-
Introducción a Amazon Kinesis Data Firehose: ¿Qué es Amazon Kinesis Data Firehose?
-
-
[Lo mejor] Si utiliza Amazon CloudWatch Logs, considere la posibilidad de utilizar Amazon CloudWatch Logs Insights para consultar el registro del motor OSS de Valkey o Redis para obtener información importante.
Por ejemplo, cree una consulta en el grupo de CloudWatch registros que contiene los registros del motor OSS de Valkey o Redis y devuelva los eventos con un signo LogLevel de «ADVERTENCIA», como:
fields @timestamp, LogLevel, Message | sort @timestamp desc | filter LogLevel = "WARNING"
[Recursos]: análisis de datos de registro con CloudWatch Logs Insights