Ampliando clusters Redis OSS com réplicas - Amazon ElastiCache (Redis OSS)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ampliando clusters Redis OSS com réplicas

ElastiCache A Amazon fornece suporte de console, CLI e API para escalar seu grupo de replicação do Redis OSS (modo de cluster desativado).

Quando o processo de aumento de escala é iniciado, ElastiCache faça o seguinte:

  1. Executa um grupo de replicação usando o novo tipo de nó.

  2. Copia todos os dados do nó primário atual para o novo nó primário.

  3. Sincroniza as novas réplicas de leitura com o novo nó primário.

  4. Atualiza as entradas do DNS para que elas apontem para os novos nós. Por isso, você não precisa atualizar os endpoints no seu aplicativo. Para o Redis OSS 5.0.5 e versões posteriores, você pode escalar clusters habilitados para failover automático enquanto o cluster continua on-line e atende às solicitações recebidas. Nas versões 4.0.10 e anteriores, você perceberá uma breve interrupção de leituras e gravações em versões anteriores do nó primário enquanto a entrada de DNS é atualizada.

  5. Exclui os nós antigos (CLI/API: grupo de replicação). Você perceberá uma breve interrupção (alguns segundos) nas leituras e gravações dos nós antigos porque as conexões aos nós antigos serão desconectadas.

O tempo necessário para esse processo depende do tipo de nó e da quantidade de dados no seu cluster.

Conforme mostrado na tabela a seguir, sua operação de expansão do Redis OSS será bloqueada se você tiver um upgrade de mecanismo agendado para a próxima janela de manutenção do cluster.

Operações bloqueadas do Redis OSS
Operações pendentes Operações bloqueadas
Amplie a sua capacidade Atualização imediata do mecanismo
Atualização do mecanismo Expansão imediata
Expansão e atualização do mecanismo Expansão imediata
Atualização imediata do mecanismo

Se você tiver uma operação pendente que está bloqueando você, será possível tomar uma destas providências.

  • Agende sua operação de expansão do Redis OSS para a próxima janela de manutenção desmarcando a caixa de seleção Aplicar imediatamente (uso da CLI:, Uso da API:). --no-apply-immediately ApplyImmediately=false

  • Espere até a próxima janela de manutenção (ou depois) para realizar sua operação de expansão do Redis OSS.

  • Adicione a atualização do mecanismo Redis OSS a essa modificação do cluster de cache com a caixa de seleção Aplicar imediatamente selecionada (uso da CLI:--apply-immediately, Uso da API:). ApplyImmediately=true Isso desbloqueia sua operação de expansão, fazendo com que a atualização do mecanismo seja realizada imediatamente.

As seções a seguir descrevem como escalar seu cluster Redis OSS com réplicas usando o ElastiCache console AWS CLI, o e a API. ElastiCache

Importante

Se seu grupo de parâmetros costuma reservar memória para reserved-memory a sobrecarga do Redis OSS, antes de começar a escalar, certifique-se de ter um grupo de parâmetros personalizado que reserve a quantidade correta de memória para seu novo tipo de nó. Como alternativa, você pode modificar um parameter group personalizado para que ele use reserved-memory-percent e usar esse parameter group para seu novo cluster.

Se você estiver usando reserved-memory-percent, não será necessário fazer isso.

Para ter mais informações, consulte Gerenciamento da memória reservada.

O tempo necessário para expandir para um tipo de nó maior varia dependendo do tipo de nó e da quantidade de dados no seu cluster atual.

O processo a seguir escala seu cluster com réplicas do tipo de nó atual para um novo tipo de nó maior usando o ElastiCache console. Durante esse processo, poderá haver uma breve interrupção de leituras e gravações de outras versões do nó primário enquanto a entrada de DNS é atualizada. Talvez você observe menos de 1 segundo de tempo de inatividade para os nós executados nas versões 5.0.5 e posteriores e alguns segundos para as versões mais antigas.

Para escalar o cluster Redis OSS com réplicas (console)
  1. Faça login no AWS Management Console e abra o ElastiCache console em https://console.aws.amazon.com/elasticache/.

  2. No painel de navegação, escolha clusters Redis OSS

  3. Na lista de clusters, escolha o cluster que você deseja expandir. Esse cluster deve estar executando o mecanismo Redis OSS e não o mecanismo Clustered Redis OSS.

  4. Escolha Modificar.

  5. No assistente Modify Cluster:

    1. Na lista Node type, escolha o tipo de nó a partir do qual você deseja escalar. Observe que nem todos os tipos de nó estão disponíveis para redução.

    2. Se você estiver usando reserved-memory para gerenciar sua memória, na lista Parameter Group, escolha o parameter group personalizado que reserva a quantidade correta de memória para o seu novo tipo de nó.

  6. Se quiser executar o processo de expansão imediatamente, escolha a caixa de seleção Apply immediately. Se a caixa de seleção Apply immediately não for escolhida, o processo de expansão será realizado durante a próxima janela de manutenção desse cluster.

  7. Escolha Modificar.

  8. Quando o status do cluster muda de modifying para available, significa que o seu cluster foi dimensionado para o novo tipo de nó. Não é necessário atualizar os endpoints no seu aplicativo.

O processo a seguir dimensiona o grupo de replicação do tipo de nó atual para um novo tipo de nó maior usando a AWS CLI. Durante esse processo, o ElastiCache (Redis OSS) atualiza as entradas de DNS para que elas apontem para os novos nós. Por isso, você não precisa atualizar os endpoints no seu aplicativo. Para o Redis OSS 5.0.5 e versões posteriores, você pode escalar clusters habilitados para failover automático enquanto o cluster continua on-line e atende às solicitações recebidas. Nas versões 4.0.10 e anteriores, você perceberá uma breve interrupção de leituras e gravações em versões anteriores do nó primário enquanto a entrada de DNS é atualizada.

O tempo necessário para expandir até um tipo de nó maior varia, dependendo do tipo de nó e da quantidade de dados no seu cluster de cache atual.

Para escalar um grupo de replicação do Redis OSS ()AWS CLI
  1. Determine para quais tipos de nós você pode escalar executando o AWS CLI list-allowed-node-type-modifications comando com o parâmetro a seguir.

    • --replication-group-id - o nome do grupo de replicação. Use esse parâmetro para descrever um grupo de replicação específico em vez de todos os grupos de replicação.

    Para Linux, macOS ou 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

    O resultado dessa operação é semelhante a este (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 obter mais informações, consulte list-allowed-node-type-modifications na AWS CLI Referência.

  2. Dimensione seu grupo de replicação atual até o novo tipo de nó usando o AWS CLI modify-replication-group comando com os parâmetros a seguir.

    • --replication-group-id - o nome do grupo de replicação.

    • --cache-node-type: o novo tipo de nó maior dos clusters de cache nesse grupo de replicação. Esse valor deve ser um dos tipos de instância retornados pelo comando list-allowed-node-type-modifications na etapa 1.

    • --cache-parameter-group-name – [Opcional] Use esse parâmetro se estiver usando reserved-memory para gerenciar a memória reservada do cluster. Especifique um parameter group de cache personalizado que reserve a quantidade correta de memória para o seu novo tipo de nó. Se estiver usando reserved-memory-percent, você poderá omitir esse parâmetro.

    • --apply-immediately: faz com que o processo de aumento de escala vertical seja aplicado imediatamente. Para adiar a operação de expansão para a próxima janela de manutenção, use --no-apply-immediately.

    Para Linux, macOS ou 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

    O resultado desse comando é semelhante a este (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 obter mais informações, consulte modify-replication-group na AWS CLI Referência.

  3. Se você usou o --apply-immediately parâmetro, monitore o status do grupo de replicação usando o AWS CLI describe-replication-group comando com o parâmetro a seguir. Enquanto o status ainda for modifying (em modificação), você poderá observar menos de 1 segundo de tempo de inatividade para os nós executados nas versões 5.0.6 e posteriores, e uma breve interrupção de leituras e gravações para as versões mais antigas do nó primário enquanto a entrada do DNS é atualizada.

    • --replication-group-id - o nome do grupo de replicação. Use esse parâmetro para descrever um grupo de replicação específico em vez de todos os grupos de replicação.

    Para Linux, macOS ou 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 obter mais informações, consulte describe-replication-groupsna AWS CLI Referência.

O processo a seguir escala seu grupo de replicação do tipo de nó atual para um novo tipo de nó maior usando a ElastiCache API. Para o Redis OSS 5.0.5 e versões posteriores, você pode escalar clusters habilitados para failover automático enquanto o cluster continua on-line e atende às solicitações recebidas. Nas versões 4.0.10 e anteriores, você perceberá uma breve interrupção de leituras e gravações em versões anteriores do nó primário enquanto a entrada de DNS é atualizada.

O tempo necessário para expandir até um tipo de nó maior varia, dependendo do tipo de nó e da quantidade de dados no seu cluster de cache atual.

Para ampliar um grupo de replicação (API) do Redis OSS ElastiCache
  1. Determine para quais tipos de nós você pode escalar usando a ListAllowedNodeTypeModifications ação da ElastiCache API com o parâmetro a seguir.

    • ReplicationGroupId - o nome do grupo de replicação. Use esse parâmetro para descrever um determinado grupo de replicação em vez de todos os grupos de replicação.

    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 obter mais informações, consulte ListAllowedNodeTypeModifications a Amazon ElastiCache API Reference.

  2. Dimensione seu grupo de replicação atual até o novo tipo de nó usando a ação da ModifyRedplicationGroup ElastiCache API e com os parâmetros a seguir.

    • ReplicationGroupId - o nome do grupo de replicação.

    • CacheNodeType: o novo tipo de nó maior dos clusters de cache nesse grupo de replicação. Esse valor deve ser um dos tipos de instância retornados pela ação ListAllowedNodeTypeModifications na etapa 1.

    • CacheParameterGroupName – [Opcional] Use esse parâmetro se estiver usando reserved-memory para gerenciar a memória reservada do cluster. Especifique um parameter group de cache personalizado que reserve a quantidade correta de memória para o seu novo tipo de nó. Se estiver usando reserved-memory-percent, você poderá omitir esse parâmetro.

    • ApplyImmediately: defina como true para fazer com que o processo de aumento de escala vertical seja aplicado imediatamente. Para adiar o processo de expansão para a próxima janela de manutenção, use 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 obter mais informações, consulte ModifyReplicationGroup a Amazon ElastiCache API Reference.

  3. Se você usou ApplyImmediately=true, monitore o status do grupo de replicação usando a DescribeReplicationGroups ação da ElastiCache API com os parâmetros a seguir. Quando o status mudar de modifying para available, você poderá começar a gravar no seu novo grupo de replicação expandido.

    • ReplicationGroupId - o nome do grupo de replicação. Use esse parâmetro para descrever um grupo de replicação específico em vez de todos os grupos de replicação.

    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 obter mais informações, consulte DescribeReplicationGroups a Amazon ElastiCache API Reference.