Trabalhar com a replicação entre regiões

A replicação entre regiões permite criar instâncias secundárias de uma instância principal para disponibilizar a instância em diferentes regiões. Se a região da instância principal ficar indisponível, você poderá desanexar ou alternar para uma instância secundária em outra região para atender a solicitações de leitura e gravação. As instâncias secundárias atendem a solicitações de leitura sem desanexar ou alternar para a instância principal. A distribuição geográfica de dados aproxima os dados de você e diminui a latência de leitura. Se conexões lentas ou sobrecarregadas ocorrerem em uma região, você poderá rotear o tráfego para outra região.

As políticas de lista de controle de acesso (ACL) não são replicadas entre regiões no Memorystore for Valkey. Se você atribuir uma política de ACL a uma instância de replicação entre regiões, será necessário gerenciar a consistência da política nas diferentes regiões associadas à instância.

Para manter a consistência, atualize e exclua cada política atribuída às instâncias principal e secundária separadamente e garanta que as regras de cada política sejam consistentes. As políticas de ACL não estão vinculadas umas às outras, então você pode modificar e excluir políticas em qualquer ordem.

Criar uma instância secundária

Ao criar uma instância secundária, o Memorystore for Valkey copia e aplica algumas configurações da instância principal como configurações de instância secundária. Para mais informações, consulte Configurações da instância.

É possível criar uma instância secundária no Memorystore for Valkey usando o Google Cloud console ou a Google Cloud CLI.

Console

  1. No Google Cloud console, acesse a página Memorystore para Valkey.

    Memorystore for Valkey

  2. Clique em uma instância principal. A instância principal é a mãe da instância secundária que você está criando.

  3. No painel lateral, clique na guia Instâncias secundárias.

  4. Clique em Adicionar instância secundária.

  5. Na janela Adicionar instâncias secundárias, faça as seguintes mudanças:

    1. No campo ID da instância, insira o ID da instância secundária que você está criando. O ID precisa ter de 1 a 63 caracteres e usar apenas letras minúsculas, números ou hifens. Ele precisa começar com uma letra minúscula, terminar com uma letra minúscula ou um número e ser exclusivo na região.

    2. No menu Região, selecione a região em que você quer que a instância secundária esteja localizada.

    3. Na seção Disponibilidade por zona, selecione uma das seguintes opções:

      • Se você quiser que todos os fragmentos e réplicas da instância sejam distribuídos em três zonas da região em que o Memorystore for Valkey cria a instância, selecione a opção Multizona.

        Por exemplo, se a região selecionada for us-central1 e você selecionar a opção Multizona, o Memorystore for Valkey distribuirá os fragmentos e réplicas da instância nas zonas us-central1-a, us-central1-b e
        us-central1-c. Em caso de falha zonal, os nós na instância fazem failover para as réplicas.

      • Se você quiser que todos os fragmentos e réplicas da instância estejam localizados em uma zona da região em que o Memorystore for Valkey cria a instância, selecione a opção Zona única e selecione a zona no menu Zona.

        Ao usar uma única zona, você reduz os custos de rede. No entanto, em caso de falha zonal, o failover não ocorre.

    4. No menu Réplicas, selecione o número de réplicas (por fragmento) da instância. Você pode ter zero, uma ou duas réplicas.

    5. No menu Rede, selecione uma rede para a instância. Para mais informações sobre rede para o Memorystore for Valkey, consulte Rede.

  6. Clique em Adicionar instância secundária.

gcloud

Para criar uma instância secundária, use o gcloud memorystore instances create comando.

gcloud memorystore instances create INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--cross-instance-replication-config-role=secondary \
--psc-auto-connections=network=NETWORK,projectId=PROJECT_ID \
--primary-instance=PRIMARY_INSTANCE_PATH

Substitua:

  • INSTANCE_ID: o ID da instância secundária que você está criando. O ID precisa ter de 1 a 63 caracteres e usar apenas letras minúsculas, números ou hifens. Ele precisa começar com uma letra minúscula, terminar com uma letra minúscula ou um número e ser exclusivo na região.
  • PROJECT_ID: o ID do projeto em que você quer criar a instância secundária. Esse é o mesmo projeto em que a instância principal está localizada.
  • REGION_ID: o ID da região em que você quer que a instância secundária esteja localizada.
  • NETWORK: a rede usada para criar a instância. Ela precisa usar este formato: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. O ID da rede precisa corresponder ao ID da rede usado pela política de conexão de serviço. Caso contrário, não será possível criar a instância secundária.
  • PRIMARY_INSTANCE_PATH: o caminho da instância principal. Por exemplo: projects/my-project/locations/us-central1/instances/my-primary-instance. Você pode escolher qualquer instância no seu projeto como a instância principal, desde que ela não seja uma instância secundária.

Exemplo:

gcloud memorystore instances create my-secondary-instance \
--project=my-project \
--location=us-central1 \
--cross-instance-replication-config-role=secondary \
--psc-auto-connections=network=projects/my-project/global/networks/default,projectId=my-project \
--primary-instance=projects/my-project/locations/us-central1/instances/my-primary-instance

Conferir uma instância secundária

É possível conferir informações resumidas sobre uma instância secundária usando o Google Cloud console ou a Google Cloud CLI.

Console

  1. No Google Cloud console, acesse a página Memorystore para Valkey.

    Memorystore for Valkey

  2. Clique na seta do expansor ao lado de uma instância principal. Essa instância é a mãe da instância secundária sobre a qual você quer conferir informações.

  3. Clique na instância secundária. Informações resumidas sobre a instância aparecem.

gcloud

Para conferir informações sobre uma instância secundária, incluindo um campo de associação que lista as instâncias principal e secundária no grupo de replicação, use o gcloud memorystore instances describe comando.

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID

Substitua:

  • INSTANCE_ID: o ID da instância secundária
  • PROJECT_ID: o ID do projeto que contém a instância secundária
  • REGION_ID: o ID da região em que a instância secundária está localizada

Realizar uma troca

Uma troca permite reverter os papéis das instâncias principal e secundária promovendo uma instância secundária a uma instância principal para fins de recuperação de desastres. Para mais informações, consulte Sobre a replicação entre regiões.

É possível realizar uma troca usando o Google Cloud console ou a Google Cloud CLI.

Console

  1. No Google Cloud console, acesse a página Memorystore para Valkey.

    Memorystore for Valkey

  2. Clique na seta do expansor ao lado de uma instância principal. Essa instância é a mãe da instância secundária que você quer alternar.

  3. Clique na instância secundária.

  4. Clique em Promover para principal.

  5. Na caixa de diálogo Promover a instância secundária para principal? , insira o ID da instância secundária e clique em Promover.

Após a conclusão da troca, você precisará reconectar os aplicativos à nova instância principal.

gcloud

Para realizar uma troca, use o gcloud memorystore instances update comando.

gcloud memorystore instances update INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--clear-primary-instance \
--cross-instance-replication-config-role=primary \
--cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCE_PATH]

Substitua:

  • INSTANCE_ID: o ID da instância secundária que você quer promover a uma instância principal realizando a troca.
  • PROJECT_ID: o ID do projeto que contém a instância secundária.
  • REGION_ID: o ID da região em que a instância secundária está localizada.
  • SECONDARY_INSTANCE_PATH: o caminho da instância secundária. Por exemplo: projects/my-project/locations/us-central1/instances/my-secondary-instance.

    Se você tiver várias instâncias secundárias, separe cada instância por vírgulas. Por exemplo: [instance=projects/my-project/locations/us-central1/instances/my-first-secondary-instance,instance=projects/my-project/locations/europe-west1/instances/my-second-secondary-instance].

Suponha que você tenha as seguintes instâncias contidas no projeto my-project:

  • instance-1: essa instância principal está localizada na região us-east1.
  • instance-2: essa instância secundária reside na região asia-east1.
  • instance-3: essa instância secundária reside na região southamerica-east1.

Você quer reverter os papéis de instance-1 e instance-2 para que instance-2 seja a nova instância principal e instance-1 seja uma instância secundária.

Para fazer isso, use o seguinte código:

gcloud memorystore instances update instance-2 \
--project=my-project \
--location=asia-east1 \
--clear-primary-instance \
--cross-instance-replication-config-role=primary \
--cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-east1/instances/instance-1,instance=projects/my-project/locations/southamerica-east1/instances/instance-3]

Após a conclusão da troca, você precisará reconectar os aplicativos à nova instância principal.

Desanexar instâncias secundárias

Desanexar uma ou mais instâncias secundárias da instância principal as torna instâncias independentes totalmente funcionais que permitem leituras e gravações. Para mais informações, consulte Como gerenciar a replicação entre regiões.

É possível desanexar instâncias secundárias usando o Google Cloud console ou a Google Cloud CLI.

Desanexar uma instância secundária

Esta seção explica como desanexar uma instância secundária da instância principal.

Console

  1. No Google Cloud console, acesse a página Memorystore para Valkey.

    Memorystore for Valkey

  2. Clique em uma instância principal. Essa é a mãe da instância secundária que você está desanexando da instância principal.

  3. No painel lateral, clique na guia Instâncias secundárias.

  4. Marque a caixa de seleção ao lado do ID da instância secundária que você está desanexando da instância principal.

  5. Clique em Desanexar da principal.

  6. Na caixa de diálogo Remover instância secundária? , insira o ID da instância secundária e clique em Desanexar.

gcloud

Para desanexar uma instância secundária, use o gcloud memorystore instances update comando.

gcloud memorystore instances update INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--cross-instance-replication-config-role=none \
--clear-primary-instance

Substitua:

  • INSTANCE_ID: o ID da instância secundária que você quer desanexar
  • PROJECT_ID: o ID do projeto que contém a instância secundária
  • REGION_ID: a região em que a instância secundária está localizada

Desanexar várias instâncias secundárias

Esta seção explica como desanexar várias instâncias secundárias da instância principal. Também é possível usar o procedimento nesta seção para desanexar uma instância secundária indisponível da instância principal.

Console

  1. No Google Cloud console, acesse a página Memorystore para Valkey.

    Memorystore for Valkey

  2. Clique em uma instância principal. Essa é a mãe das instâncias secundárias que você está desanexando da instância principal.

  3. No painel lateral, clique na guia Instâncias secundárias.

  4. Marque as caixas de seleção ao lado dos IDs das instâncias secundárias que você está desanexando da instância principal.

  5. Clique em Desanexar da principal.

  6. Na caixa de diálogo Remover instâncias secundárias?, faça o seguinte:

    1. Insira os IDs das instâncias secundárias. Use vírgulas para separar os IDs.

    2. Clique em Desanexar.

gcloud

Para desanexar várias instâncias secundárias, use o gcloud memorystore instances update comando.

gcloud memorystore instances update PRIMARY_INSTANCE_ID \
--project=PROJECT_ID \
--location=PRIMARY_INSTANCE_REGION_ID \
--remove-cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCES] \
--cross-instance-replication-config-role=none

Substitua:

  • PRIMARY_INSTANCE_ID: o ID da instância principal.
  • PROJECT_ID: o ID do projeto que contém as instâncias secundárias.
  • PRIMARY_INSTANCE_REGION_ID: o ID da região em que a instância principal está localizada.
  • SECONDARY_INSTANCES: as instâncias secundárias que você quer desanexar. Use vírgulas para separar os IDs das instâncias. Cada instância secundária precisa ter este formato: projects/PROJECT_ID/locations/SECONDARY_INSTANCE_REGION_ID/instances/INSTANCE_ID.

Exemplo:

gcloud memorystore instances update my-primary-instance \
--project=my-project \
--location=us-central1 \
--remove-cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-west4/instances/my-secondary-instance-1,instance=projects/my-project/locations/asia-southeast2/instances/my-secondary-instance-2] \
--cross-instance-replication-config-role=none

Também é possível desanexar instâncias secundárias da instância principal por especificar uma lista de instâncias que você não quer desanexar. O Memorystore for Valkey desanexa todas as instâncias que não estão incluídas nessa lista.

Suponha que você tenha as seguintes instâncias secundárias:

  • instance-1: essa instância está localizada na região us-east1.
  • instance-2: essa instância reside na região asia-east1.

Você quer desanexar as duas instâncias secundárias de my-primary-instance. Essa instância principal está localizada na região us-central1 e está contida no projeto my-project.

Para desanexar as instâncias secundárias, use o seguinte código:

gcloud memorystore instances update my-primary-instance \
--project=my-project \
--location=us-central1 \
--cross-instance-replication-config-secondary-instances=[]
--cross-instance-replication-config-role=none

Para este exemplo, como o valor nulo [] é atribuído ao parâmetro --cross-instance-replication-config-secondary-instances, o Memorystore for Valkey desanexa todas as instâncias secundárias da instância principal.

Atualizar as configurações da instância

Esta seção fornece links para atualizar as configurações da instância. O processo de atualização das configurações da instância é diferente, dependendo se você muda as configurações na instância principal ou secundária. Para mais informações sobre como atualizar as configurações, consulte Configurações da instância.

Atualizar as configurações na instância principal

É necessário mudar as seguintes configurações na instância principal. Depois disso, o Memorystore for Valkey sincroniza as mudanças com a instância secundária.

Atualizar as configurações na instância secundária

É necessário mudar as seguintes configurações na instância secundária:

Excluir instâncias que usam replicação entre regiões

Esta seção explica como excluir instâncias principal e secundária que usam replicação entre regiões.

Excluir uma instância principal

Para excluir uma instância principal, faça o seguinte:

  1. Desanexe ou exclua todas as instâncias secundárias.
  2. Para excluir a instância principal, siga as instruções em Excluir instâncias.

Para se proteger contra exclusão acidental, não é possível excluir instâncias principal e secundária simultaneamente.

Excluir uma instância secundária

Para excluir uma instância secundária, siga as instruções em Excluir instâncias. Para o ID da instância, use o ID da instância secundária.