Configuración de un clúster de Redis para la escalabilidad y la alta disponibilidad

Creación, configuración, seguridad y el aprovisionamiento del modo clúster de Amazon Elasticache for Redis

En este tutorial, aprenderá a crear y configurar un clúster de Redis con ElastiCache for Redis. Con el modo clúster habilitado, su clúster de Redis obtiene una mayor escalabilidad y una alta disponibilidad. Puede comenzar con poco y escalar fácilmente sus datos de Redis a medida que su aplicación crece. Además, al configurar réplicas en distintas zonas de disponibilidad, también puede aumentar su capacidad de lectura. Con este tutorial, también aprenderá algunas de las prácticas recomendadas para las implementaciones del clúster de Redis.

Hay un ecosistema muy enriquecido de clientes de Redis con soporte para las características del modo clúster. Eso hace que trabajar con datos fragmentados sea extremadamente fácil y confiable, ya que los consumidores pueden realizar un seguimiento de la ubicación de las ranuras de hash en un caché local y, así, mejorar el rendimiento del sistema en general.

El nodo de ElastiCache creado en este tutorial se puede utilizar para la capa gratuita.

Inicie sesión en el panel de Amazon ElastiCache Dashboard »

Requisitos

En algún momento de este tutorial, tendrá que conectarse a su clúster de Redis para experimentar de primera mano algunas de sus características. Eso significa que necesitará acceder a una instancia EC2 con un cliente de Redis instalado. Si ya tiene una instancia EC2 con un cliente de Redis instalado, puede ir al paso 1. De lo contrario, conéctese a su instancia de Amazon EC2 y siga las siguientes instrucciones para instalar un cliente de Redis.

Si no tiene un compilador C disponible, instale uno mediante la ejecución:

$ sudo yum install gcc

Descargue y compile un cliente de Redis:

$ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean  # Ubuntu systems only
$ make

Ya está todo listo para comenzar el tutorial.

Acerca de este tutorial
Duración 10 - 20 minutos                                           
Coste Apto para la capa gratuita
Caso de uso Escalado, alta disponibilidad, aplicación en tiempo real
Productos AWS ElastiCache for Redis, capa gratuita de AWS
Público Desarrolladores
Nivel Principiante
Última actualización 05 de junio de 2019

Paso 1: ingrese al panel de ElastiCache

Abra el panel de ElastiCache, luego:

1.1. En la esquina superior derecha, seleccione la región donde desea lanzar el clúster de Redis.

1.2. Haga clic en ”Get Started Now” (Comenzar ahora).

Paso 2: cree su clúster de Redis

2.1. Seleccione "Redis" como su motor de clúster.

2.2. Marque "Cluster Mode enabled" (Modo clúster habilitado).

Paso 3: configure Redis

3.1. Elija un nombre para su clúster de Redis, por ejemplo "elc-tutorial".

3.2. Cambie el tipo de nodo a cache.t2.micro. Ese tipo de nodo está bien para este tutorial, pero para un clúster de producción, el tamaño del nodo debe depender de su carga de trabajo y debe comenzar con las familias de instancias m5 o r5.

3.3. En el número de fragmentos, seleccione 3. Eso significa que los datos se dividirán en tres nodos maestros distintos.

3.4. En réplicas por partición, seleccione 2. Esto significa que cada nodo maestro tendrá dos réplicas. En caso de falla, se activará una conmutación por error automática y una de las réplicas asumirá el rol del nodo maestro.

3.5. Seleccione un grupo de subred Si necesita más información sobre los grupos de subred, consulte la documentación.

Paso 4: configuración avanzada de Redis

4.1. Marque la casilla para "Multi-AZ with Auto-Failover" (Multi-AZ con conmutación por error automática).

Cada nodo maestro se creará en una zona de disponibilidad diferente, y cada una de sus réplicas también se asignará a una zona de disponibilidad diferente. Esta es una práctica recomendada para mejorar la confiabilidad.

Deje los valores predeterminados en los otros campos.

Paso 5: configure los ajustes de seguridad

Para este ejemplo, no utilizaremos cifrado, pero tenga en cuenta que puede configurar tanto el cifrado para datos en reposo como para datos en tránsito.

5.1. Seleccione un grupo de seguridad para su clúster de Redis.

Esto es importante: asegúrese de que el grupo de seguridad que seleccione permita conexiones TCP entrantes en el puerto 6379. Si ese no es el caso, no podrá conectarse a sus nodos de Redis.

Paso 6: importe datos al clúster

Para este ejemplo, no cargaremos ningún archivo RDB propagado para poder omitir este paso de configuración por completo. Solo tenga en cuenta que esta opción está disponible.

Paso 7: configure copias de seguridad

Las copias de seguridad diarias son importantes para la mayoría de los casos de uso y una buena recomendación es habilitar las copias de seguridad con un período de retención que le dará tiempo suficiente para actuar en caso de que ocurra algún inconveniente. Para este tutorial, no utilizaremos ninguna copia de seguridad.

7.1. Desmarque "Enable automatic backups" (Habilitar copias de seguridad automáticas).

Paso 8: configuración de mantenimiento

8.1 - Especifique un periodo de mantenimiento que se adapte a sus necesidades.

Aquí puede pensar en la hora y el día en que su aplicación tiene una carga de trabajo baja. Para nuestras necesidades actuales, simplemente podemos elegir "Sin preferencia".

Paso 9: revise y cree

Después de una revisión rápida de todos los campos del formulario, haga clic en "Create" (Crear).

9.1. Haga clic en "Create" (Crear).

Se iniciará un clúster de Redis y una vez que esté "disponible" podrá continuar con el paso 10.

Si prefiere usar la CLI de Amazon, el siguiente comando creará el clúster de Redis de una vez:

Si prefiere usar la CLI de Amazon, el siguiente comando creará el clúster de Redis de una vez:

$ aws elasticache create-replication-group \
--replication-group-id elc-tutorial \
--replication-group-description "Tutorial example" \
--num-node-groups 3 \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis5.0.cluster.on \
--engine redis \
--engine-version 5.0.3 \
--cache-subnet-group-name sn-value \
--security-group-ids sg-value \
--node-group-configuration \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1a','us-east-1b',Slots=10922-16383"

Para el argumento --security-group-ids, tiene que reemplazar sg-value con el ID del grupo de seguridad que desea usar.

Para el argumento --cache-subnet-group-name, reemplace sn-value con el nombre de un grupo de subred. Si necesita crear un grupo de subred, utilice el siguiente comando:

$ aws elasticache create-cache-subnet-group \
--cache-subnet-group-name elc-tutorial-subnet \
--cache-subnet-group-description "Tutorial Subnet Group" \
--subnet-ids sn-ids

El valor de sn-ids debe ser una lista de ID de subredes.

Si prefiere usar la API de Amazon, la siguiente solicitud creará un clúster de Redis:

https://elasticache.us-east-1.amazonaws.com/
?Action=CreateReplicationGroup 
&CacheParameterGroup=default.redis5.0.cluster.on
&Engine=redis
&EngineVersion=5.0.3
&ReplicationGroupDescription=Tutorial%20example
&ReplicationGroupId=elc-tutorial
&NumNodeGroups=3
&PrimaryClusterId=elc-primary
&ReplicasPerNodeGroup=2
&Version=<version>
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=<timestamp>
&X-Amz-Credential=<credential>

En la solicitud anterior, debe proporcionar los valores de Version, Timestamp y X-Amz-Credential.

Paso 10: conéctese a Redis

Encuentre el punto de enlace de configuración de su clúster de Redis.

10.1. Haga clic en la flecha para mostrar los detalles del clúster de Redis.

10.2. Copie el punto de enlace de configuración.

En los ejemplos, cada vez que se menciona un punto de enlace, debe usar el nombre de host de su punto de enlace de configuración.

10.4. Use la utilidad redis-cli para conectarse a su nodo de Redis.

$ ./src/redis-cli -c -h endpoint

10.5. Pruebe la conexión con un PING.

endpoint:6379> PING
	PONG

Paso 11: active una conmutación por error

Ahora tiene un clúster de Redis que funciona y en buen estado. Una de las características del modo clúster es el hecho de que si un nodo muere, el clúster se puede recuperar. Para probar esa reclamación, puede activar una conmutación por error manual y sucederá lo siguiente: se seleccionará una réplica de lectura para sustituir el rol del maestro. Una vez que se realiza la conmutación por error, podrá conectarse al maestro nuevo. Mientras tanto, se agregará automáticamente una réplica nueva, para que el clúster siga teniendo uno maestro y dos réplicas.

Con el punto de enlace del paso 10, verifique el rol del nodo.

11.1. Verifique el rol del punto de enlace.

	endpoint:6379> ROLE
	1) "master"
 	...

Desea conectarse al maestro. Si no se conectó al maestro, intente con un punto de enlace diferente. Tiene tres posibilidades de hacerlo bien.

Una vez que encuentre el nodo maestro:

11.2. Seleccione alguno de los nodos, haga clic en "Action" (Acción) y seleccione "Failover primary" (Conmutación por error principal).

Lea el mensaje para saber qué sucede y luego haga clic en "Continue" (Continuar). Una de las réplicas se convertirá en el nuevo maestro y se restaurarán la cantidad de réplicas por maestro. Puede ejecutar el comando CLUSTER NODES para verificar lo que sucede.

Paso 12: elimine su clúster

Para finalizar este experimento, aprenderá a eliminar su clúster de Redis cuando ya no sea necesario.

Para eliminar su clúster de Redis, vaya al panel de ElastiCache y siga estas instrucciones:

12.1. Seleccione "Redis" en el panel izquierdo.

Se mostrará una lista de todos sus clústeres de Redis.

12.2. Seleccione el clúster de Redis que creó para este tutorial.

12.3. Haga clic en "Delete" (Eliminar).

12.4. Se le preguntará si desea crear una copia de seguridad final. Suele ser una buena idea, pero no es necesario para este tutorial. Seleccione "No" y haga clic en "Eliminar".

El estado de su clúster cambiará a "eliminándose".

Felicitaciones

Ha creado un clúster de Redis con el modo clúster habilitado. Los nodos se distribuyeron en las zonas de disponibilidad y se configuraron con conmutaciones por errores automáticas. También conoció algunas de las prácticas recomendadas para las implementaciones del clúster de Redis.

¿Le resultó útil este tutorial?

Gracias
Indíquenos lo que le gustó.
Lamentamos haberlo decepcionado
¿Hay información desactualizada, confusa o inexacta? Ayúdenos a mejorar este tutorial con sus comentarios.

Más información

Si desea obtener más información sobre el clúster de Redis, lea la publicación de blog Redis Cluster 101. Para ver más contenido introductorio, la guía para desarrolladores y los blogs técnicos de casos de uso, visite nuestra página de recursos.

Elija el tamaño de nodo adecuado

Determinar el tamaño de sus nodos de Redis puede parecer difícil, pero elaboramos algunas directrices para ayudarle a elegir el tamaño de nodo adecuado según sus necesidades.

Estrategias de almacenamiento en caché

Por último, puede leer más sobre las prácticas recomendadas y estrategias del almacenamiento en caché para mejorar el rendimiento y la confiabilidad.