Configurar várias redes VPC para instâncias provisionadas com conexões registradas automaticamente

Nesta página, explicamos como configurar a conectividade para várias redes de nuvem privada virtual (VPC) em uma instância do cluster do Memorystore para Redis que já tem algumas conexões do Private Service Connect registradas automaticamente. Neste tutorial, mostramos como fazer isso criando endpoints do Private Service Connect em uma rede de consumidor, segmentando os anexos de serviço da sua instância do Memorystore e registrando os componentes com a instância. Nesta página, também explicamos como conectar o cliente à instância usando conexões do Private Service Connect.

Para instruções sobre como configurar várias redes VPC para uma nova Memorystore que não foi provisionada com conexões do Private Service Connect registradas automaticamente, consulte Configurar várias redes VPC usando conexões do Private Service Connect registradas pelo usuário.

Para mais informações sobre várias configurações de rede VPC, consulte Sobre várias redes VPC.

Um diagrama que mostra a arquitetura de rede. Ela tem duas redes VPC do cliente conectadas a uma conexão do Private Service Connect, que está conectada ao anexo de serviço do Memorystore.

Resumo das etapas principais

Esta seção oferece uma lista resumida das principais etapas deste tutorial para configurar sua nova conexão do Private Service Connect. Primeiro, prepare-se para seguir este tutorial concluindo as etapas na seção Antes de começar.

Etapas principais

  1. Etapa 1: anotar os caminhos de vinculação de serviço
  2. Etapa 2: configurar e registrar conexões do Private Service Connect para sua segunda rede VPC
  3. Etapa 3: configurar uma conexão de cliente

Além disso, você também pode:

Antes de começar

Antes de começar, verifique se você tem os seguintes papéis do IAM e recursos do Google Cloud .

Papéis necessários do IAM

Exemplo de ID do recurso Tipo de recurso
roles/redis.admin Concede controle total sobre uma instância do Memorystore para Redis Cluster e sobre o ciclo de vida dela.
roles/servicedirectory.editor Concede permissão para editar recursos do Diretório de serviços. Essa função é necessária para criar um endpoint do Private Service Connect.
roles/compute.networkAdmin Concede controle total sobre a rede VPC que inicia uma conexão com uma instância do Memorystore. É possível criar e gerenciar endereços IP, regras de firewall e endpoints do Private Service Connect. Essa função é necessária para criar um endpoint do Private Service Connect.

Se você usar o Private Service Connect para se conectar a uma instância do Memorystore de várias redes VPC, cada rede poderá ter o próprio administrador.

Recursos de pré-requisito

Você precisa criar os seguintes recursos antes de começar este tutorial. Recomendamos criar os recursos com os seguintes IDs e locais, mas você também pode escolher seus próprios IDs e locais. Este tutorial pressupõe que você criou uma instância do Memorystore com duas conexões do Private Service Connect registradas automaticamente.

Exemplo de ID do recurso Tipo de recurso Exemplo de caminho completo Descrição
my-memorystore-instance Instância do Memorystore for Redis Cluster n/a Para os comandos de exemplo neste tutorial, esse valor representa sua instância atual que já tem uma conexão do Private Service Connect registrada automaticamente na rede 1.
my-network-1 Rede VPC projects/my-project-1/global/networks/my-network-1 Sua Memorystore tem uma conexão do Private Service Connect registrada automaticamente nessa rede.
my-project-1 Google Cloud projeto n/a A instância do Memorystore está localizada neste projeto

Neste tutorial, você vai usar os seguintes recursos para criar duas conexões do Private Service Connect na rede VPC 2:

Exemplo de ID do recurso Tipo de recurso Exemplo de caminho completo Descrição
my-project-2 Google Cloud projeto n/a Para este tutorial, é o projeto em que você cria a segunda rede e a segunda sub-rede. No entanto, a segunda rede e sub-rede podem estar no mesmo projeto da primeira, se você quiser.
my-network-2 Rede VPC projects/my-project-2/global/networks/my-network-2 Neste tutorial, você vai criar dois endpoints do Private Service Connect nessa rede.
my-subnet-2 Sub-rede VPC projects/my-project-2/regions/us-central1/subnetworks/my-subnet-2 Neste tutorial, você vai reservar dois endereços IP nessa sub-rede.

Ativar APIs

Ative as seguintes APIs necessárias para gerenciar recursos de rede do Compute Engine, do Memorystore for Redis Cluster e do Private Service Connect.

gcloud

Para ativar as APIs no projeto 2, execute os seguintes comandos:

gcloud services enable --project=PROJECT_2_ID compute.googleapis.com
gcloud services enable --project=PROJECT_2_ID redis.googleapis.com
gcloud services enable --project=PROJECT_2_ID servicedirectory.googleapis.com

Etapa 1: anotar os caminhos de vinculação de serviço

Anote os dois URIs de anexo de serviço da sua instância do Memorystore. Você usa esses URIs de anexo de serviço para configurar novas conexões do Private Service Connect.

gcloud

Para acessar informações resumidas sobre uma instância com o Private Service Connect ativado, procure o campo pscServiceAttachments. Esse campo mostra os dois URIs que apontam para os anexos de serviço da instância. Para ver essas informações, use o comando gcloud redis clusters describe:

gcloud redis clusters describe INSTANCE_ID --project=PROJECT_1_ID --region=REGION_ID

Substitua:

  • INSTANCE_ID é o nome da sua instância do Memorystore.
  • PROJECT_1_ID é o ID do Projeto 1 que contém a instância do Memorystore.
  • REGION_ID é o ID da região em que a instância do Memorystore está localizada.

Confira a seguir um exemplo de saída desse comando:

gcloud redis clusters describe my-memorystore-instance \
--project=my-project-1 --region=us-central1

...

pscServiceAttachments:
- connectionType: CONNECTION_TYPE_DISCOVERY
  serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
- serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2

Etapa 2: configurar e registrar conexões do Private Service Connect para sua segunda rede VPC

Nesta seção, mostramos como configurar as duas conexões do Private Service Connect necessárias para sua segunda rede VPC.

Criar os endpoints do Private Service Connect para a rede 2

Esta seção explica as ações necessárias para criar dois endpoints do Private Service Connect na Rede 2.

Reservar endereços IP para a rede 2

Em seguida, reserve dois endereços IP na rede 2.

Reservar endereço IP 1

gcloud

Para reservar o endereço IP 1, execute o comando gcloud compute addresses create:

gcloud compute addresses create IP_ADDRESS_1_ID \
--project=PROJECT_2_ID \
--addresses=IP_ADDRESS_1 \
--region=REGION_ID \
--subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \
--purpose=GCE_ENDPOINT

Substitua:

  • IP_ADDRESS_1_ID é o ID que você atribui ao seu endereço IP.
  • PROJECT_2_ID é o ID do projeto 2. É o projeto em que você cria a segunda rede e sub-rede de nuvem privada virtual.
  • IP_ADDRESS_1 é um endereço IP de sua escolha no intervalo SUBNET_2_ID que você reservou como parte dos Recursos de pré-requisito.
  • REGION_ID é a região em que a instância do Memorystore está localizada.
  • SUBNET_2_ID é o ID da sub-rede que você reservou na rede 2 do projeto 2 como parte dos Recursos de pré-requisito.

Exemplo:

gcloud compute addresses create my-ip-address-1 \
--project=my-project-1 \
--addresses=10.142.0.10 \
--region=us-central1 \
--subnet=projects/my-project-1/regions/us-central1/subnetworks/my-subnet-1 \
--purpose=GCE_ENDPOINT
Reservar endereço IP 2

gcloud

Para reservar o endereço IP 2, execute o comando gcloud compute addresses create:

gcloud compute addresses create IP_ADDRESS_2_ID \
--project=PROJECT_2_ID \
--addresses=IP_ADDRESS_2 \
--region=REGION_ID \
--subnet=projects/PROJECT_2_ID/regions/REGION_ID/subnetworks/SUBNET_2_ID \
--purpose=GCE_ENDPOINT

Substitua:

  • IP_ADDRESS_2_ID é o ID que você atribui ao seu endereço IP.
  • PROJECT_2_ID é o ID do projeto 2. É o projeto em que você criou a segunda rede e sub-rede VPC.
  • IP_ADDRESS_2 é um endereço IP de sua escolha no intervalo SUBNET_2_ID que você reservou como parte dos Recursos de pré-requisito.
  • REGION_ID é a região em que a instância do Memorystore está localizada.
  • SUBNET_2_ID é o ID da sub-rede que você reservou na rede 2 do projeto 2 como parte dos Recursos de pré-requisito.

Adicionar regras de encaminhamento para a rede 2

Em seguida, crie regras de encaminhamento que conectem os endereços IP aos anexos de serviço da instância do Memorystore.

Adicionar regra de encaminhamento 1 para IP 1

gcloud

Para adicionar uma regra de encaminhamento para o IP 1, execute o comando gcloud compute forwarding-rules create:

gcloud compute forwarding-rules create FORWARDING_RULE_1_NAME \
--address=IP_ADDRESS_1_ID \
--network=projects/PROJECT_2_ID/global/networks/NETWORK_2_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_1 \
--project=PROJECT_2_ID \
--allow-psc-global-access

Substitua:

  • FORWARDING_RULE_1_NAME é o nome da regra de encaminhamento que você está criando.
  • IP_ADDRESS_1_ID é o ID do endereço IP reservado na seção Reservar endereços IP.
  • NETWORK_2_ID é o ID da segunda rede.
  • REGION_ID é a região em que a instância do Memorystore está localizada.
  • SERVICE_ATTACHMENT_1 é o primeiro anexo de serviço que você anotou em Anotar os caminhos de anexos de serviço.
  • PROJECT_2_ID é o ID do projeto 2. É o projeto em que você criou a segunda rede e sub-rede VPC.

Exemplo:

gcloud compute forwarding-rules create my-forwarding-rule-1 \
--address=my-ip-address-1 \
--network=projects/my-project-2/global/networks/my-network-2 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa \
--project=my-project-2 \
--allow-psc-global-access
Adicionar regra de encaminhamento 2 para IP 2

gcloud

Para adicionar uma regra de encaminhamento para o IP 2, execute o comando gcloud compute forwarding-rules create:

gcloud compute forwarding-rules create FORWARDING_RULE_2_NAME \
--address=IP_ADDRESS_2_ID \
--network=projects/PROJECT_2_ID/global/networks/NETWORK_2_ID \
--region=REGION_ID \
--target-service-attachment=SERVICE_ATTACHMENT_2 \
--project=PROJECT_2_ID \
--allow-psc-global-access

Substitua:

  • FORWARDING_RULE_2_NAME é o nome da regra de encaminhamento que você está criando.
  • IP_ADDRESS_2_ID é o ID do endereço IP reservado na seção Reservar endereços IP.
  • NETWORK_2_ID é o ID da segunda rede.
  • REGION_ID é a região em que a instância do Memorystore está localizada.
  • SERVICE_ATTACHMENT_2 é o segundo anexo de serviço que você observou em Observar os caminhos de anexos de serviço.
  • PROJECT_2_ID é o ID do projeto 2. É o projeto em que você criou a segunda rede e sub-rede VPC.

Exemplo:

gcloud compute forwarding-rules create my-forwarding-rule-2 \
--address=my-ip-address-2 \
--network=projects/my-project-2/global/networks/my-network-2 \
--region=us-central1 \
--target-service-attachment=projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-a0583920-edef-42-psc-sa-2 \
--project=my-project-2 \
--allow-psc-global-access

Registre as conexões do Private Service Connect com sua instância do Memorystore para a rede 2.

Esta seção mostra as etapas para registrar conexões com sua instância do Memorystore. Primeiro, você precisa receber os IDs de conexão e de projeto das suas regras de encaminhamento.

Em seguida, ative a conectividade registrando as informações de conexão do Private Service Connect com sua instância do Memorystore.

Receber os IDs de conexão e de projeto da regra de encaminhamento para a rede 2

Em seguida, receba o valor pscConnectionId de cada regra de encaminhamento. Anote os valores.

Extrair o ID da conexão do Private Service Connect 1

gcloud

Para conferir o valor de pscConnectionId e outras informações de resumo da regra de encaminhamento, execute o comando gcloud compute forwarding-rules describe:

gcloud compute forwarding-rules describe FORWARDING_RULE_1_NAME \
--project=PROJECT_2_ID \
--region=REGION_ID

Substitua:

  • FORWARDING_RULE_1_NAME é o nome da primeira regra de encaminhamento.
  • PROJECT_2_ID é o ID do projeto Google Cloud que contém a regra de encaminhamento.

O exemplo a seguir é uma demonstração de saída desse comando:

gcloud compute forwarding-rules describe my-forwarding-rule-1 \
--project=my-project-2 \
--region=us-central1

...

pscConnectionId: '94710983646969729'
Extrair o ID da conexão do Private Service Connect 2

gcloud

Para conferir o valor de pscConnectionId e outras informações de resumo da regra de encaminhamento, execute o comando gcloud compute forwarding-rules describe:

gcloud compute forwarding-rules describe FORWARDING_RULE_2_NAME \
--project=PROJECT_2_ID \
--region=REGION_ID

Substitua:

  • FORWARDING_RULE_2_NAME é o nome da segunda regra de encaminhamento.
  • PROJECT_2_ID é o ID do projeto Google Cloud que contém a regra de encaminhamento.

Registrar informações de conexão do Private Service Connect para a rede VPC 2

gcloud

Para registrar cada conexão, forneça o ID da conexão, o endereço IP, o caminho de rede, o caminho/URI da regra de encaminhamento e o anexo de serviço de destino do Private Service Connect. Para isso, execute o comando gcloud redis clusters add-cluster-endpoints:

gcloud redis clusters add-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_1_ID","address":"IP_ADDRESS_1","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_1_NAME","service-attachment":"SERVICE_ATTACHMENT_1"},{"psc-connection-id":"PSC_CONNECTION_2_ID","address":"IP_ADDRESS_2","network":"projects/PROJECT_2_ID/global/networks/NETWORK_2_ID","forwarding-rule":"projects/PROJECT_2_ID/regions/REGION_ID/forwardingRules/FORWARDING_RULE_2_NAME","service-attachment":"SERVICE_ATTACHMENT_2"}]]'

Substitua:

  • INSTANCE_ID é o ID da instância do Memorystore for Redis Cluster.
  • REGION_ID é o ID da região em que a instância do Memorystore está localizada.
  • PROJECT_1_ID é o ID do projeto 1, onde sua instância do Memorystore está localizada. Se a conexão do Private Service Connect estiver em um projeto diferente da instância, use o projeto que contém a conexão como valor para esse parâmetro.
  • PROJECT_2_ID é o ID do projeto 2.
  • PSC_CONNECTION_1_ID é o ID de conexão do Private Service Connect 1 que você anotou em Como receber IDs de conexão de regra de encaminhamento para a rede 2.
  • IP_ADDRESS_1 é o endereço do primeiro IP reservado.
  • NETWORK_2_ID é o ID da rede 2.
  • FORWARDING_RULE_1_NAME é o nome da primeira regra de encaminhamento criada.
  • SERVICE_ATTACHMENT_1 é o primeiro anexo de serviço conectado ao FORWARDING RULE_1_NAME.
  • PSC_CONNECTION_2_ID é o ID de conexão do Private Service Connect 2 que você anotou em Como receber o ID de conexão da regra de encaminhamento para a rede 2.
  • IP_ADDRESS_2 é o endereço do segundo IP reservado.
  • FORWARDING_RULE_2_NAME é o nome da segunda regra de encaminhamento criada.
  • SERVICE_ATTACHMENT_2 é o segundo anexo de serviço conectado a FORWARDING_RULE_2_NAME.

Exemplo:

gcloud redis clusters add-cluster-endpoints my-instance \
--region=us-central-1 \
--project=my-project-1 \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"94710983646969729","address":"10.142.0.10","network":"projects/my-project-2/global/networks/my-network-2","forwarding-rule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-1","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa"},{"psc-connection-id":"86510983646969993","address":"10.142.0.12","network":"projects/my-project-2/global/networks/my-network-2","forwarding-rule":"projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-2","service-attachment":"projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2"}]]'

Etapa 3: configurar uma conexão de cliente

Nesta seção, explicamos como configurar o cliente para conectividade com as redes neste guia.

Anote as informações do endpoint de conexão do Private Service Connect.

Em seguida, anote dois endereços IP. O primeiro é o endereço IP de conexão de descoberta da sua conexão do Private Service Connect registrada automaticamente. Ele é listado depois do campo discoveryEndpoints:.

O endereço IP da conexão de descoberta do Private Service Connect registrada pelo usuário está listado na seção clusterEndpoints:connections:pscConnection. Esse endereço IP corresponde ao campo CONNECTION_TYPE_DISCOVERY.

gcloud

Para conferir as informações do endpoint de conexão do Private Service Connect nas suas redes, execute o comando gcloud redis clusters describe:

gcloud redis clusters describe INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID

Anote os endereços IP:

discoveryEndpoints:
- address: 10.128.0.55
  port: 6379
  pscConfig:
    network: projects/my-project-1/global/networks/my-network-1

...
...

clusterEndpoints:
- connections:
  - pscConnection:
      address: 10.142.0.10
      connectionType: CONNECTION_TYPE_DISCOVERY
      forwardingRule: projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-3
      network: projects/my-project-2/global/networks/my-network-2
      projectId: my-network-2
      pscConnectionId: '94710983646969729'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa
  - pscConnection:
      address: 10.142.0.12
      forwardingRule: projects/my-project-2/regions/us-central1/forwardingRules/my-forwarding-rule-4
      network: projects/my-project-2/global/networks/my-network-2
      projectId: my-project-2
      pscConnectionId: '86510983646969993'
      pscConnectionStatus: PSC_CONNECTION_STATUS_ACTIVE
      serviceAttachment: projects/1048073346231/regions/us-central1/serviceAttachments/gcp-memorystore-auto-8d7d48ef-3ca3-4d-psc-sa-2

Na saída anterior, o valor do endereço IP das conexões do Private Service Connect de descoberta que você anotaria são 10.128.0.55 (registrado automaticamente) e 10.142.0.10 (registrado pelo usuário).

Configurar o cliente

Em seguida, configure o cliente da seguinte maneira:

  • Configure as conexões de cliente na rede 1 usando o IP de descoberta da rede 1. Neste tutorial, esse é o endereço IP que você anotou e que aparece depois do campo discoveryEndpoints:.

  • Configure as conexões de cliente na rede 2 usando o IP de descoberta na rede 2. Neste tutorial, esse é o endereço IP que você anotou na seção clusterEndpoints e que corresponde ao valor CONNECTION_TYPE_DISCOVERY.

Para instruções sobre como se conectar a uma instância do Memorystore, consulte Conectar de uma VM do Compute Engine usando redis-cli.

Excluir suas conexões do Private Service Connect

Opcionalmente, antes de excluir a instância, você pode excluir todas as conexões do Private Service Connect registradas pelo usuário associadas a ela. Para isso, exclua as regras de encaminhamento e cancele o registro dos endpoints configurados neste tutorial.

Além disso, é possível excluir os endereços IP reservados para liberá-los para uso futuro.

Excluindo regras de encaminhamento

Nesta seção, você encontra instruções sobre como excluir as regras de encaminhamento criadas anteriormente neste tutorial.

Excluir regra de encaminhamento 1

gcloud

Para excluir uma regra de encaminhamento, execute o comando gcloud compute forwarding-rules delete:

gcloud compute forwarding-rules delete FORWARDING_RULE_1_NAME \
--region=REGION_ID \
--project=PROJECT_2_ID

Substitua:

  • FORWARDING_RULE_1_NAME é o nome da primeira regra de encaminhamento.
  • PROJECT_2_ID é o ID do projeto 2. É o projeto em que você criou a segunda rede e sub-rede VPC.

Excluir regra de encaminhamento 2

gcloud

Para excluir uma regra de encaminhamento, execute o comando gcloud compute forwarding-rules delete:

gcloud compute forwarding-rules delete FORWARDING_RULE_2_NAME \
--region=REGION_ID \
--project=PROJECT_2_ID

Substitua:

  • FORWARDING_RULE_2_NAME é o nome da segunda regra de encaminhamento.
  • PROJECT_2_ID é o ID do projeto 2. É o projeto em que você criou a segunda rede e sub-rede VPC.

Cancele o registro dos endpoints do Private Service Connect para a rede VPC 2.

Nesta seção, fornecemos instruções para cancelar o registro dos endpoints do Private Service Connect que você registrou anteriormente neste tutorial.

Cancelar o registro de endpoints para a rede VPC 2

gcloud

Para cancelar o registro das informações do endpoint com a instância do Memorystore, execute o comando gcloud redis clusters remove-cluster-endpoints:

gcloud redis clusters remove-cluster-endpoints INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID \
--cluster-endpoint='["psc-connection":[{"psc-connection-id":"PSC_CONNECTION_1_ID"},{"psc-connection-id":"PSC_CONNECTION_2_ID"}]]'

Substitua:

  • INSTANCE_ID é o ID da instância para a qual você está cancelando o registro de endpoints.
  • PROJECT_1_ID é o ID do projeto 1, onde sua instância do Memorystore está localizada.
  • REGION_ID é o ID da região em que a instância do Memorystore está localizada.
  • PSC_CONNECTION_1_ID é o primeiro ID de conexão do Private Service Connect que você anotou em Como receber IDs de conexão de regra de encaminhamento.
  • PSC_CONNECTION_2_ID é o segundo ID de conexão do Private Service Connect que você anotou em Como receber IDs de conexão de regra de encaminhamento.

Excluir a instância do Memorystore para Redis Cluster

Se quiser, exclua a instância do Memorystore. No entanto, antes de excluir a instância do Memorystore, é necessário cancelar o registro dos endpoints do Private Service Connect.

gcloud

Para excluir a instância do Memorystore para Redis Cluster, execute o comando gcloud redis clusters delete:

gcloud redis clusters delete INSTANCE_ID \
--region=REGION_ID \
--project=PROJECT_1_ID

Substitua:

  • INSTANCE_ID é o ID da instância.
  • REGION_ID é o ID da região em que a instância do Memorystore está localizada.
  • PROJECT_1_ID é o ID do projeto 1. É o projeto em que a instância do Memorystore está localizada.