Esta guía proporciona consejos para elegir un tamaño de clúster de Amazon DynamoDB Accelerator (DAX) y un tipo de nodo adecuados para su aplicación. Estas instrucciones le guiarán a través de los pasos necesarios para estimar el tráfico de DAX de su aplicación, seleccionar una configuración de clúster y probarla.
Si tiene un clúster de DAX existente y desea evaluar si tiene el número y el tamaño de nodos adecuados, consulte Escalado de un clúster de DAX.
Información general
Es importante escalar el clúster de DAX de forma adecuada para su carga de trabajo, ya sea que esté creando un clúster nuevo o manteniendo un clúster existente. A medida que pasa el tiempo y cambia la carga de trabajo de la aplicación, debe revisar periódicamente las decisiones de escalado para asegurarse de que sigan siendo apropiadas.
El proceso suele seguir estos pasos:
-
Estimación del tráfico. En este paso, realiza predicciones sobre el volumen de tráfico al que enviará la aplicación a DAX, la naturaleza del tráfico (operaciones de lectura o de escritura) y la tasa de aciertos de caché esperada.
-
Prueba de carga. En este paso, crea un clúster y le envía tráfico reflejando las estimaciones del paso anterior. Repita este paso hasta que encuentre una configuración de clúster adecuada.
-
Monitoreo de la producción. Mientras la aplicación está utilizando DAX en producción, debe monitorear el clúster para validar continuamente que aún se ha escalado correctamente a medida que la carga de trabajo cambia con el tiempo.
Estimación del tráfico
Hay tres factores principales que caracterizan una carga de trabajo típica de DAX:
-
Tasa de aciertos de caché
-
Unidades de capacidad de lectura (RCU) por segundo
-
Unidades de capacidad de escritura (WCU) por segundo
Estimación de la tasa de aciertos de caché
Si ya tiene un clúster de DAX, puede utilizar ItemCacheHits
y ItemCacheMisses
Métricas de Amazon CloudWatch para determinar la tasa de aciertos de caché. La tasa de aciertos de caché es igual a ItemCacheHits
/ (ItemCacheHits
+ ItemCacheMisses
). Si la carga de trabajo incluye operaciones Query
o Scan
, también debe consultar las métricas QueryCacheHits
, QueryCacheMisses
, ScanCacheHits
y ScanCacheMisses
. La tasa de aciertos de caché varía de una aplicación a otra y están muy influenciadas por la configuración del período de vida (TTL) del clúster. Las tasas de acierto típicas para las aplicaciones que utilizan DAX son de entre el 85 al 95 por ciento.
Estimación de unidades de capacidad de lectura y escritura
Si ya tiene tablas de DynamoDB para su aplicación, vea ConsumedReadCapacityUnits
y ConsumedWriteCapacityUnits
Métricas de CloudWatch. Utilice la estadística Sum
y divida por el número de segundos del período.
Si también tiene un clúster de DAX, recuerde que la métrica ConsumedReadCapacityUnits
de DynamoDB sólo tiene en cuenta los errores de caché. Por lo tanto, para tener una idea de las unidades de capacidad de lectura por segundo manejadas por su clúster de DAX, divida el número por su tasa de errores de caché (es decir, 1 - tasa de aciertos de caché).
Si aún no dispone de una tabla de DynamoDB, consulte la documentación sobre las unidades de capacidad de lectura para calcular su tráfico en función de la tasa de solicitudes estimada de su aplicación, los elementos a los que se accede por solicitud y el tamaño de los elementos.
Al realizar estimaciones de tráfico, planifique el crecimiento futuro y los picos esperados e inesperados para asegurarse de que el clúster tenga suficiente margen de ampliación para los aumentos de tráfico.
Prueba de carga
El siguiente paso después de estimar el tráfico consiste en probar la configuración del clúster bajo carga.
-
Para la prueba de carga inicial, le recomendamos que comience con el tipo de nodo
dax.r4.large
, el rendimiento fijo de menor costo y el tipo de nodo optimizado para memoria. -
Un clúster tolerante a errores requiere al menos tres nodos, distribuidos en tres zonas de disponibilidad. En este caso, si una zona de disponibilidad deja de estar disponible, el número efectivo de zonas de disponibilidad se reduce en un tercio. Para la prueba de carga inicial, se recomienda comenzar con un clúster de dos nodos, que simula el error de una zona de disponibilidad en un clúster de tres nodos.
-
Dirija tráfico sostenido (como se estimó en el paso anterior) al clúster de prueba durante la duración de la prueba de carga.
-
Monitoree el rendimiento del clúster durante la prueba de carga.
Idealmente, el perfil de tráfico que dirija durante la prueba de carga debería ser lo más similar posible al tráfico real de la aplicación. Esto incluye la distribución de operaciones (por ejemplo, 70 por ciento GetItem
, 25 por ciento Query
, y 5 por ciento PutItem
), la tasa de solicitudes para cada operación, el número de elementos a los que se accede por solicitud y la distribución de tamaños de elementos. Para lograr una tasa de aciertos de caché similar a la tasa de aciertos de caché esperada de su aplicación, preste atención a la distribución de claves en el tráfico de prueba.
nota
Tenga cuidado al probar los tipos de nodos T2 (dax.t2.small
y dax.t2.medium
). Los tipos de nodos T2 proporcionan un rendimiento de CPU con ráfagas que varía con el tiempo en función del saldo de crédito de CPU del nodo. Un clúster de DAX que se ejecuta en nodos T2 puede parecer que funciona con normalidad, pero si algún nodo se amplió por encima del rendimiento de la línea de base de su instancia, el nodo está gastando su saldo de crédito acumulado de CPU. Cuando el saldo de crédito es bajo, el rendimiento se reduce gradualmente al nivel de rendimiento de referencia.
Monitoree el clúster de DAX durante la prueba de carga para determinar si el tipo de nodo que está utilizando para la prueba de carga es el tipo de nodo adecuado para usted. Además, durante una prueba de carga, debe monitorear la tasa de solicitudes y la tasa de aciertos de caché para asegurarse de que su infraestructura de prueba realmente está dirigiendo la cantidad de tráfico que desea.
Debe prestar atención al consumo de bytes de red del tipo de instancia de clúster seleccionado. Si se supera el ancho de banda de referencia disponible para una instancia de Amazon EC2, es posible que su clúster no pueda mantener la carga de trabajo de su aplicación y sea necesario escalarlo.
Si las pruebas de carga indican que la configuración del clúster seleccionada no puede soportar la carga de trabajo de su aplicación, debe cambiar a un tipo de nodo más grande, especialmente si observa un uso de CPU elevado en el nodo principal del clúster, altas tasas de expulsión o un uso alto de la memoria de caché. Si las tasas de aciertos son altas de forma coherente y la proporción de tráfico de lectura a escritura es alta, es posible que desee plantearse la posibilidad de agregar más nodos al clúster. Consulte Escalado de un clúster de DAX para obtener información adicional sobre cuándo utilizar un tipo de nodo mayor (escalado vertical) o agregar más nodos (escalado horizontal).
Debe repetir la prueba de carga después de realizar cambios en la configuración del clúster.