Ampliación de los clústeres de Redis OSS con réplicas - Amazon ElastiCache (RedisOSS)

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.

Ampliación de los clústeres de Redis OSS con réplicas

Amazon ElastiCache ofrece soporte de consola, CLI y API para escalar su grupo de replicación de Redis OSS (modo de clúster deshabilitado) hacia arriba.

Cuando se inicia el proceso de escalado, ElastiCache hace lo siguiente:

  1. Lanza un grupo de reproducción con el nuevo tipo de nodo.

  2. Copia todos los datos del nodo principal actual al nuevo nodo principal.

  3. Sincroniza las nuevas réplicas de lectura con el nuevo nodo principal.

  4. Actualiza los entradas de DNS para que apunten a los nuevos nodos. Por ello, no tiene que actualizar los puntos de enlace de su aplicación. Para Redis OSS 5.0.5 y versiones posteriores, puede escalar los clústeres habilitados para la conmutación automática por error mientras el clúster permanece en línea y atiende las solicitudes entrantes. En la versión 4.0.10 y anteriores, puede observar una breve interrupción de las operaciones de lectura y escritura del nodo principal mientras se actualiza la entrada de DNS.

  5. Elimina los nodos antiguos (CLI/API: grupo de reproducción). Observará una breve interrupción (unos segundos) de las operaciones de lectura y escritura de los nodos anteriores porque se desconectarán las conexiones con los nodos anteriores.

El tiempo que tarda este proceso depende de su tipo de nodo y de la cantidad de datos que haya en su clúster.

Como se muestra en la siguiente tabla, la operación de ampliación de Redis OSS se bloquea si tiene programada una actualización del motor para el próximo período de mantenimiento del clúster.

Operaciones bloqueadas de Redis OSS
Operaciones pendientes Operaciones bloqueadas
Escalado ascendente Actualización del motor inmediata
Actualización del motor Ampliación inmediata
Ampliación y actualización del motor Ampliación inmediata
Actualización del motor inmediata

Si hay una operación pendiente que esté bloqueando, tiene las siguientes opciones.

  • Programe la operación de ampliación de Redis OSS para el siguiente período de mantenimiento desactivando la casilla Aplicar inmediatamente (uso de CLI:--no-apply-immediately, uso de API:). ApplyImmediately=false

  • Espere hasta el próximo período de mantenimiento (o hasta después) para realizar la operación de ampliación de Redis OSS.

  • Agregue la actualización del motor OSS de Redis a esta modificación del clúster de caché con la casilla Aplicar inmediatamente seleccionada (uso de CLI:--apply-immediately, uso de API:ApplyImmediately=true). Esto desbloqueará su operación de ampliación, ya que hará que la actualización del motor se realice inmediatamente.

En las siguientes secciones, se describe cómo escalar el clúster de Redis OSS con réplicas superiores mediante la ElastiCache consola, la API y la AWS CLI API. ElastiCache

importante

Si su grupo de parámetros suele reserved-memory reservar memoria para la sobrecarga de Redis OSS, antes de empezar a escalar, asegúrese de tener un grupo de parámetros personalizado que reserve la cantidad correcta de memoria para el nuevo tipo de nodo. De forma alternativa, puede modificar un grupo de parámetros personalizado para que use reserved-memory-percent y utilizar ese grupo de parámetros para su nuevo clúster.

Si va a utilizar reserved-memory-percent, esto no es necesario.

Para obtener más información, consulte Administración de la memoria reservada.

El tiempo que se tarda en la ampliación a un tipo de nodo más grande varía en función del tipo de nodo y de la cantidad de datos de su clúster actual.

El siguiente proceso escala el clúster con réplicas desde su tipo de nodo actual a un tipo de nodo nuevo y más grande mediante la consola. ElastiCache Durante este proceso, puede haber una breve interrupción en las operaciones de lectura y escritura de otras versiones en el nodo principal mientras se actualiza la entrada de DNS. Es posible que observe un tiempo de inactividad inferior a 1 segundo en los nodos que ejecutan la versión 5.0.6 y posteriores, y de varios segundos en versiones anteriores.

Para ampliar el clúster OSS de Redis con réplicas (consola)
  1. Inicie sesión en la ElastiCache consola AWS Management Console y ábrala en https://console.aws.amazon.com/elasticache/.

  2. En el panel de navegación, elija los clústeres de Redis OSS

  3. En la lista de clústeres, seleccione el clúster que desea ampliar. Este clúster debe ejecutar el motor OSS de Redis y no el motor OSS de Redis agrupado.

  4. Elija Modificar.

  5. En el asistente Modify Cluster:

    1. Elija el tipo de nodo que desee ampliar en la lista Node type. Tenga en cuenta que no todos los tipos de nodos están disponibles para el proceso de reducción.

    2. Si va a utilizar reserved-memory para administrar su memoria, en la lista Parameter Group, elija el grupo de parámetros personalizado que reserve la cantidad correcta de memoria para su nuevo tipo de nodo.

  6. Si desea realizar el proceso de ampliación de forma inmediata, elija la casilla de verificación Apply immediately. Si no se deja seleccionada la casilla de verificación Apply immediately, el proceso de ampliación se realizará durante el siguiente periodo de mantenimiento de este clúster.

  7. Elija Modificar.

  8. Cuando el estado del clúster cambie de modifying a available, el clúster se habrá escalado al nuevo tipo de nodo. No es necesario actualizar los puntos de enlace de su aplicación.

El siguiente proceso amplía su grupo de reproducción de su tipo de nodo actual a un nuevo tipo de nodo más grande utilizando AWS CLI. Durante este proceso, ElastiCache (Redis OSS) actualiza las entradas de DNS para que apunten a los nuevos nodos. Por ello, no tiene que actualizar los puntos de enlace de su aplicación. Para Redis OSS 5.0.5 y versiones posteriores, puede escalar los clústeres habilitados para la conmutación automática por error mientras el clúster permanece en línea y atiende las solicitudes entrantes. En la versión 4.0.10 y anteriores, puede observar una breve interrupción de las versiones de lectura y escritura del nodo principal mientras se actualiza la entrada de DNS.

El tiempo que se tarda en la ampliación a un tipo de nodo más grande varía en función de su tipo de nodo y de la cantidad de datos de su clúster de caché actual.

Para ampliar un grupo de replicación de Redis OSS ()AWS CLI
  1. Determine los tipos de nodos a los que puede escalar ejecutando el AWS CLI list-allowed-node-type-modifications comando con el siguiente parámetro.

    • --replication-group-id: nombre del grupo de replicación. Use este parámetro para describir un determinado grupo de replicación en lugar de todos los grupos de replicación.

    Para Linux, macOS o Unix:

    aws elasticache list-allowed-node-type-modifications \ --replication-group-id my-repl-group

    Para Windows:

    aws elasticache list-allowed-node-type-modifications ^ --replication-group-id my-repl-group

    La salida de esta operación tiene un aspecto similar al siguiente (formato JSON).

    { "ScaleUpModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] }

    Para obtener más información consulte list-allowed-node-type-modifications en la Referencia de la AWS CLI .

  2. Amplíe su grupo de replicación actual hasta el nuevo tipo de nodo mediante el AWS CLI modify-replication-group comando con los siguientes parámetros.

    • --replication-group-id: nombre del grupo de replicación.

    • --cache-node-type: el nuevo tipo de nodo más grande de clústeres de caché en este grupo de reproducción. Este valor debe ser uno de los tipos de instancia devueltos por el comando list-allowed-node-type-modifications en el paso 1.

    • --cache-parameter-group-name: [Opcional] Utilice este parámetro si va a utilizar reserved-memory para administrar la memoria reservada de su clúster. Especifique un grupo de parámetros de caché personalizado que reserve la cantidad correcta de memoria para el nuevo tipo de nodo. Si va a utilizar reserved-memory-percent, puede omitir este parámetro.

    • --apply-immediately: hace que el proceso de escalado vertical se aplique de inmediato. Para aplazar la operación de ampliación al siguiente periodo de mantenimiento, utilice --no-apply-immediately.

    Para Linux, macOS o Unix:

    aws elasticache modify-replication-group \ --replication-group-id my-repl-group \ --cache-node-type cache.m3.xlarge \ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

    Para Windows:

    aws elasticache modify-replication-group ^ --replication-group-id my-repl-group ^ --cache-node-type cache.m3.xlarge ^ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

    La salida de este comando tiene un aspecto similar al siguiente (formato JSON).

    { "ReplicationGroup": { "Status": "available", "Description": "Some description", "NodeGroups": [{ "Status": "available", "NodeGroupMembers": [{ "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-001.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-002.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-002" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com" } }], "ReplicationGroupId": "my-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "disabled", "SnapshotWindow": "12:00-13:00", "SnapshottingClusterId": "my-repl-group-002", "MemberClusters": [ "my-repl-group-001", "my-repl-group-002" ], "PendingModifiedValues": {} } }

    Para obtener más información consulte modify-replication-group en la Referencia de la AWS CLI .

  3. Si utilizó el --apply-immediately parámetro, supervise el estado del grupo de replicación mediante el AWS CLI describe-replication-group comando con el siguiente parámetro. Mientras el estado sea en modificación, es posible que observe un tiempo de inactividad de un segundo en los nodos que ejecutan la versión 5.0.6 y posteriores y una breve interrupción de las operaciones de lectura y escritura con las versiones anteriores en el nodo principal mientras se actualiza la entrada de DNS.

    • --replication-group-id: nombre del grupo de replicación. Use este parámetro para describir un determinado grupo de replicación en lugar de todos los grupos de replicación.

    Para Linux, macOS o Unix:

    aws elasticache describe-replication-groups \ --replication-group-id my-replication-group

    Para Windows:

    aws elasticache describe-replication-groups ^ --replication-group-id my-replication-group

    Para obtener más información, consulte describe-replication-groupsla AWS CLI Referencia.

El siguiente proceso escala el grupo de replicación desde su tipo de nodo actual a un tipo de nodo nuevo y más grande mediante la ElastiCache API. Para Redis OSS 5.0.5 y versiones posteriores, puede escalar los clústeres habilitados para la conmutación automática por error mientras el clúster permanece en línea y atiende las solicitudes entrantes. En la versión 4.0.10 y anteriores, puede observar una breve interrupción de las operaciones de lectura y escritura del nodo principal mientras se actualiza la entrada de DNS.

El tiempo que se tarda en la ampliación a un tipo de nodo más grande varía en función de su tipo de nodo y de la cantidad de datos de su clúster de caché actual.

Para ampliar un grupo de replicación (API) de Redis OSS ElastiCache
  1. Determine los tipos de nodos a los que puede escalar mediante la ListAllowedNodeTypeModifications acción de la ElastiCache API con el siguiente parámetro.

    • ReplicationGroupId: nombre del grupo de replicación. Use este parámetro para describir un grupo de replicación específico en lugar de todos los grupos de replicación.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

    Para obtener más información, consulta ListAllowedNodeTypeModifications la referencia de la ElastiCache API de Amazon.

  2. Amplíe su grupo de replicación actual hasta el nuevo tipo de nodo mediante la acción de la ModifyRedplicationGroup ElastiCache API y con los siguientes parámetros.

    • ReplicationGroupId: nombre del grupo de replicación.

    • CacheNodeType: el nuevo tipo de nodo más grande de clústeres de caché en este grupo de reproducción. Este valor debe ser uno de los tipos de instancia devueltos por la acción ListAllowedNodeTypeModifications en el paso 1.

    • CacheParameterGroupName: [Opcional] Utilice este parámetro si va a utilizar reserved-memory para administrar la memoria reservada de su clúster. Especifique un grupo de parámetros de caché personalizado que reserve la cantidad correcta de memoria para el nuevo tipo de nodo. Si va a utilizar reserved-memory-percent, puede omitir este parámetro.

    • ApplyImmediately: establézcalo en true para que el proceso de escalado vertical se aplique de inmediato. Para aplazar el proceso de ampliación al siguiente periodo de mantenimiento, utilice ApplyImmediately=false.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.m3.2xlarge &CacheParameterGroupName=redis32-m3-2xl &ReplicationGroupId=myReplGroup &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

    Para obtener más información, consulta ModifyReplicationGroup la referencia de la ElastiCache API de Amazon.

  3. Si lo utilizó ApplyImmediately=true, supervise el estado del grupo de replicación mediante la DescribeReplicationGroups acción de la ElastiCache API con los siguientes parámetros. Cuando el estado cambie de modifying a available, podrá empezar a escribir en su nuevo grupo de replicación ampliado.

    • ReplicationGroupId: nombre del grupo de replicación. Use este parámetro para describir un determinado grupo de replicación en lugar de todos los grupos de replicación.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

    Para obtener más información, consulta DescribeReplicationGroups la referencia de la ElastiCache API de Amazon.