DAX se encarga del mantenimiento y el estado del clúster automáticamente. Sin embargo, debe proporcionar información operativa para escalar el clúster horizontal o verticalmente para adaptarlo a sus patrones de uso. En esta sección, se describe el proceso recomendado para escalar los clústeres de DAX.
Escalado horizontal de un clúster
Escalar un clúster de DAX implica ajustar su capacidad para satisfacer las demandas de rendimiento. Este ajuste se realiza aumentando o disminuyendo la cantidad de nodos (réplicas) del clúster mientras está en ejecución. Este proceso, conocido como escalado horizontal, ayuda a distribuir la carga de trabajo entre más nodos o a consolidarla en menos nodos cuando la demanda es baja.
Puede reducir y escalar horizontalmente el clúster de DAX mediante los comandos decrease-replication-factor
o increase-replication-factor
de la AWS CLI.
Aumento del factor de replicación (escalado horizontal)
Al aumentar el factor de replicación de un clúster de DAX, se agregan más nodos al clúster. En el siguiente ejemplo, se muestran los resultados del comando increase-replication-factor
.
aws dax increase-replication-factor \ --cluster-name
yourClusterName
\ --new-replication-factordesiredReplicationFactor
-
En este comando, el argumento
cluster-name
especifica el nombre del clúster. Por ejemplo,suNombreCluster
. -
El argumento
new-replication-factor
especifica el número total de nodos que se van a agregar en el cluster tras el escalado. Esto incluye el nodo principal y los nodos de réplica. Por ejemplo, si su clúster tiene actualmente 3 nodos y desea agregar 2 nodos más, defina el valor denew-replication-factor
en 5.
Reducción del factor de replicación (reducción horizontal)
Al reducir el factor de replicación de un clúster de DAX, se eliminan los nodos del clúster. La eliminación de nodos puede ayudar a reducir los costos durante los periodos de baja demanda. En el siguiente ejemplo, se muestran los resultados del comando decrease-replication-factor
.
aws dax decrease-replication-factor \ --cluster-name
yourClusterName
\ --new-replication-factordesiredReplicationFactor
-
En este comando, el argumento
cluster-name
especifica el nombre del clúster. Por ejemplo,suNombreCluster
. -
El argumento
new-replication-factor
especifica el número reducido de nodos del clúster después del escalado. Este número debe ser inferior al factor de replicación actual y debe incluir el nodo principal. Por ejemplo, si su clúster tiene 5 nodos y desea eliminar 2 nodos, defina el valor denew-replication-factor
en 3.
Consideraciones sobre el escalado horizontal
Tenga en cuenta lo siguiente cuando planifique el escalado horizontal:
-
Nodo principal: el clúster de DAX incluye un nodo principal. El factor de replicación incluye este nodo principal. Por ejemplo, un factor de replicación de 3 significa que hay un nodo principal y dos nodos de réplica.
-
Disponibilidad: agregar o eliminar nodos de DAX cambia la disponibilidad y la tolerancia a errores del clúster. Más nodos pueden mejorar la disponibilidad, pero también aumentan los costos.
-
Migración de datos: al aumentar el factor de replicación, DAX gestiona automáticamente la distribución de los datos en el nuevo conjunto de nodos. Cuando un nodo nuevo comienza a atender el tráfico, su caché ya está preparada. Sin embargo, durante este proceso, es posible que se produzca un impacto temporal en el rendimiento durante la migración de datos.
Asegúrese de monitorizar atentamente los clústeres de DAX durante y después del proceso de escalado para asegurarse de que funcionan según lo esperado y realice los ajustes adicionales que sean necesarios.
Escalado vertical de un clúster
Para escalar verticalmente el tamaño de los nodos de un clúster existente, debe crear un clúster nuevo y migrar el tráfico de las aplicaciones al nuevo clúster. La migración a un nuevo clúster con nodos diferentes implica varios pasos para garantizar una transición fluida con el impacto mínimo en el rendimiento y la disponibilidad de la aplicación.
Para crear un nuevo clúster para escalar el tamaño del nodo verticalmente, tenga en cuenta lo siguiente:
-
Acceda a su configuración actual: revise las métricas de su clúster de DAX actual para determinar el tamaño y la cantidad de nodos nuevos que necesita. Utilice esta información como entrada para definir el tamaño del clúster. Para obtener más información, consulta Dimensionamiento del clúster de DAX.
-
Configure un nuevo clúster de DAX: cree un nuevo clúster de DAX con el tipo y la cantidad de nodos que haya determinado. Puede utilizar los ajustes de configuración existentes de su grupo de parámetros, a menos que necesite realizar ajustes.
-
Sincronice los datos: dado que DAX es una capa de almacenamiento en caché para DynamoDB, no es necesario migrar los datos directamente. Sin embargo, el nuevo clúster de DAX no tendrá ningún conjunto de datos de trabajo en la memoria hasta que no le envíe tráfico.
-
Actualice la configuración de la aplicación: actualice la configuración de la aplicación para que apunte al nuevo punto de conexión del clúster de DAX. Es posible que necesite cambiar el código o actualizar las variables de entorno, en función de la configuración de la aplicación.
Para reducir el impacto que se produce al cambiar a un clúster nuevo, envíe tráfico canario al nuevo clúster desde una pequeña parte de su flota de aplicaciones. Para ello, puede implementar lentamente las actualizaciones de las aplicaciones o utilizar una entrada de DNS de enrutamiento basada en la ponderación enfrente de su punto de conexión de DAX.
-
Monitorice y optimice: después de cambiar al nuevo clúster de DAX, monitorice atentamente sus métricas y registros de rendimiento para detectar cualquier problema. Prepárese para ajustar la cantidad de nodos en función de los patrones de carga de trabajo actualizados.
Hasta que el nuevo clúster almacene en caché su conjunto de datos de trabajo correctamente, verá tasas de error de caché y latencias más altas.
-
Retire del servicio el clúster antiguo: cuando esté seguro de que el nuevo clúster funciona según lo esperado, retire el clúster de DAX antiguo de forma segura para evitar costos innecesarios.