Criar e gerenciar a replicação entre regiões

Nesta página, descrevemos como usar a replicação entre regiões criando e gerenciando instâncias secundárias.

Para uma visão geral conceitual da replicação entre regiões, consulte Sobre a replicação entre regiões.

Antes de começar

Antes de começar a usar a replicação entre regiões do Memorystore para Valkey, verifique o seguinte:

  • Você instalou a CLI gcloud, versão 488.0.0 e mais recente. Para determinar a versão mais recente da CLI gcloud, use o comando gcloud components update.

  • Você tem uma política de rede de serviço na região em que quer que suas instâncias secundárias estejam localizadas. Para mais informações sobre as políticas de rede de serviços, consulte Rede.

Criar uma instância secundária

Quando você cria uma instância secundária, o Memorystore para Valkey copia e aplica algumas configurações da instância principal como configurações secundárias. Para mais informações, consulte Configurações da instância.

Para criar uma instância secundária do Memorystore para Valkey, use o comando gcloud memorystore instances create:

gcloud

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

Substitua:

  • SECONDARY_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 e terminar com uma letra minúscula ou um número.
  • PROJECT_ID: o ID do projeto em que você quer criar a instância secundária. Esse é o mesmo projeto em que sua instância principal está localizada.
  • SECONDARY_REGION_NAME: a região em que você quer que a instância secundária seja localizada.
  • NETWORK: a rede de nuvem privada virtual usada para criar a instância. Ele precisa seguir este formato: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. O ID da rede precisa corresponder ao ID que a política de conexão do serviço usa. Caso contrário, a operação de criação falhará.
  • PRIMARY_INSTANCE_RESOURCE_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 para ser a principal, desde que 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

Esta seção mostra como conferir informações sobre sua instância secundária, incluindo um campo de associação que lista as instâncias principal e secundária no grupo de replicação.

Para conferir informações sobre uma instância secundária, use o comando gcloud memorystore instances describe.

gcloud

gcloud memorystore instances describe SECONDARY_INSTANCE_ID \
--project=PROJECT_ID \
--location=SECONDARY_REGION_NAME

Substitua:

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

Realizar uma alternância

Com a alternância, é possível reverter os papéis das instâncias principal e secundária.

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

gcloud

gcloud memorystore instances update SECONDARY_INSTANCE_ID \
--project=PROJECT_ID \
--location=SECONDARY_REGION_NAME \
--clear-primary-instance \
--cross-instance-replication-config-role=primary \
--cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCE_RESOURCE_PATH]

Substitua:

  • SECONDARY_INSTANCE_ID: o ID da instância secundária que você quer promover para uma instância principal ao realizar a conversão.
  • PROJECT_ID: o ID do projeto que contém a instância secundária.
  • SECONDARY_REGION_NAME: a região em que a instância secundária está localizada.
  • SECONDARY_INSTANCE_RESOURCE_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 uma delas com 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 está 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 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]

Desvincular instâncias secundárias

Separar instâncias secundárias da principal faz com que elas sejam instâncias independentes e totalmente funcionais que permitem leituras e gravações. Para mais informações, consulte Como gerenciar a replicação entre regiões.

As duas opções desta seção cumprem a mesma tarefa de remover instâncias secundárias da principal. Para saber qual opção usar, considere o seguinte:

  • Para desconectar uma instância secundária da principal, use a opção 1.
  • Para desconectar várias instâncias secundárias da principal ou para desconectar instâncias secundárias que estão indisponíveis, use a opção 2.

Desconectar uma instância secundária (opção 1)

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

gcloud

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

Substitua:

  • SECONDARY_INSTANCE_ID: o ID da instância secundária que você quer desconectar
  • PROJECT_ID: o ID do projeto que contém a instância secundária.
  • SECONDARY_REGION_NAME: a região em que a instância secundária está localizada.

Desconectar instâncias secundárias (opção 2)

Você também pode usar o comando gcloud memorystore instances update para desconectar várias instâncias secundárias da principal ou para desconectar instâncias secundárias indisponíveis.

gcloud

gcloud memorystore instances update PRIMARY_INSTANCE_ID \
--project=PROJECT_ID \
--location=PRIMARY_REGION_NAME \
--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_REGION_NAME: a região em que a instância principal está localizada.
  • SECONDARY_INSTANCES: as instâncias secundárias a serem removidas. É possível desvincular uma ou mais instâncias. Para desconectar várias instâncias, use uma lista separada por vírgulas. Todas as instâncias secundárias especificadas precisam usar o seguinte formato: projects/PROJECT_ID/locations/SECONDARY_REGION_NAME/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 desconectar instâncias secundárias da principal especificando uma lista de instâncias que você não quer desconectar. O Memorystore para Valkey desconecta todas as instâncias que você não inclui nessa lista.

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

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

Você quer desconectar 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 desconectar 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

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

Atualizar as configurações da instância

Ao atualizar as configurações da instância do Memorystore para Valkey, é possível mudar algumas configurações apenas na instância principal. O Memorystore para Valkey sincroniza essas mudanças automaticamente com a instância secundária.

É possível mudar outras configurações nas instâncias principal e secundária de forma independente. O Memorystore para Valkey aplica essas mudanças localmente e não as sincroniza com as outras instâncias.

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

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

Excluir instâncias principais

Antes de excluir uma instância principal, é necessário desanexar ou excluir todas as instâncias secundárias. Em seguida, exclua a instância principal.

Para evitar exclusões acidentais, não é possível usar um único comando para excluir instâncias primárias e secundárias.

Excluir instâncias secundárias

Para excluir instâncias secundárias, siga as instruções em Excluir instâncias, substituindo INSTANCE pelo ID da instância secundária.