Gerenciar configurações de conectividade privada

É possível usar a API Datastream para criar, recuperar, listar e excluir configurações de conectividade particular. Essas configurações permitem que o Datastream se comunique de maneira privada com fontes de dados no Google Cloud ou fontes externas conectadas por meio do Cloud VPN ou do Cloud Interconnect. É possível estabelecer conectividade particular usando o peering de rede de nuvem privada virtual (VPC) ou uma interface do Private Service Connect.

Para usar uma conexão particular, os streams, os perfis de conexão e a configuração de conectividade particular precisam estar na mesma região. Para evitar a adição manual de regras de firewall entre regiões, execute o banco de dados de origem em uma sub-rede nessa região.

Criar uma configuração de conectividade particular usando o peering de VPC

Antes de criar uma configuração de conectividade privada, verifique se você:

  • Ter uma rede VPC para fazer peering na rede privada do Datastream. Para mais informações sobre como criar uma rede VPC, consulte Como usar o peering de rede VPC.
  • Ter um intervalo de IP disponível (com um bloco CIDR de /29 no mínimo) na rede VPC. O Datastream usa esse intervalo de IP para criar o peering de VPC com a VPC fornecida. Assim, o intervalo não pode se sobrepor às sub-redes nessa VPC. Como resultado, o Datastream pode se comunicar com a origem.

Há dois parâmetros associados à criação de uma configuração de conectividade privada:

  • vpcName: Especifique o nome e o caminho da rede VPC.
  • subnet: Aloque um intervalo de IP disponível na rede VPC.

O código a seguir mostra uma solicitação para criar uma configuração de conectividade privada e especifica o método de conectividade como usando o peering de VPC (vpcPeeringConfig).

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID
{
  "displayName": "DISPLAY_NAME",
  "vpcPeeringConfig": {
      "vpcName": "VPC_NAME",
      "subnet": "SUBNET"
  }
}

Exemplo:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections?privateConnectionId=myPrivateConnection
{
  "displayName": "my-private-connection",
  "vpcPeeringConfig": {
    "vpcName": "projects/my-project/global/networks/my-vpc",
    "subnet": "10.11.12.13/29"
  }
}

Após a criação da configuração de conectividade particular, é possível ver informações sobre ela chamando o método privateConnections/get. A saída será assim:

{
  "name": "projects/projectId/location/us-central1/privateConnections/myPrivateConnection",
  "createTime": "2019-12-22T16:17:37.159786963Z",
  "updateTime": "2019-12-22T16:17:37.159786963Z",
  "displayName": "my-private-connection",
  "state": "CREATED",
  "vpcPeeringConfig": {
    "vpcName": "projects/my-project/global/networks/my-vpc",
    "subnet": "10.11.12.13/29"
  }  
}

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --vpc=VPC_NAME --subnet=SUBNET

Exemplo:

gcloud datastream private-connections create my-privateConnection --location=us-central1 --display-name=my-private-connection --vpc=my-vpc --subnet=10.11.12.13/29

Criar uma configuração de conectividade privada usando uma interface do Private Service Connect

Antes de criar uma configuração de conectividade privada, verifique se você:

  • Ter uma rede VPC para se conectar à rede privada do Datastream. Para mais informações sobre como criar uma rede VPC, consulte Criar e gerenciar redes VPC.

  • Crie um anexo de rede no projeto VPC.

  • Verifique se o Google Cloud e o firewall local permitem o tráfego do intervalo de endereços IP do anexo de rede para o banco de dados de origem do qual você quer transmitir dados.

O código a seguir mostra uma solicitação para criar uma configuração de conectividade particular usando interfaces do Private Service Connect. Primeiro, execute um comando para criar uma configuração de conectividade particular com a flag validateOnly (--validate-only para a Google Cloud CLI):

REST

POST "https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID&validateOnly=true"

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --network-attachment=NETWORK_ATTACHMENT_NAME --validate-only

Na resposta, você recebe o nome do projeto produtor a ser aprovado. É necessário adicioná-lo à lista de projetos permitidos do anexo de rede:

  1. Use o método describe para receber o producer-accept-list atual do anexo de rede. Para mais informações, consulte a documentação do SDK Google Cloud do Compute Engine.
  2. Adicione o projeto produtor a essa lista usando o método update. Para mais informações, consulte a documentação do SDK Google Cloud do Compute Engine.

Depois de adicionar o projeto do produtor à lista de projetos permitidos, execute o comando para criar a configuração de conectividade particular novamente, desta vez sem a flag validateOnly:

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID
{
  "displayName": "DISPLAY_NAME",
  "pscInterfaceConfig": {
      "networkAttachment": "NETWORK_ATTACHMENT_NAME"
  }
}

Exemplo:

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections?privateConnectionId=myPrivateConnection
{
  "displayName": "my-private-connection",
  "pscInterfaceConfig": {
    "networkAttachment": "projects/my-project/regions/us-central1/networkAttachments/my-na"
  }
}

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --network-attachment=NETWORK_ATTACHMENT_NAME

Exemplo:

gcloud datastream private-connections create my-private-connection --location=us-central1 --display-name=my-private-connection --network-attachment=my-network-attachment

Receber informações sobre uma configuração de conectividade privada

O código a seguir mostra uma solicitação para recuperar informações sobre uma configuração de conectividade particular que foi criada.

REST

GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections/PRIVATE_CONNECTIVITY_CONFIGURATION_ID

Exemplo:

GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections/myPrivateConnection
     

gcloud

Para mais informações sobre como usar gcloud para recuperar informações sobre sua configuração de conectividade privada, consulte a documentação do SDK Google Cloud.

Listar configurações de conectividade particulares

O código a seguir mostra uma solicitação para recuperar informações sobre todas as configurações de conectividade particulares.

REST

GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections

gcloud

Para mais informações sobre como usar gcloud para recuperar informações sobre todas as suas configurações de conectividade privada, consulte a documentação do SDK Google Cloud.

Excluir uma configuração de conectividade privada

O código a seguir mostra uma solicitação para excluir uma configuração de conectividade particular. Depois que a configuração for excluída, todos os perfis de conexão que usam a configuração não funcionarão. Além disso, os streams que usam esses perfis de conexão não poderão ser operados.

Para resolver esse problema, atribua uma configuração de conectividade privada diferente a cada perfil de conexão. Veja mais informações em Atualizar um perfil de conexão.

REST

DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections/[private-connectivity-configuration-id] {"force": true} 

Exemplo:

DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections/myPrivateConnection {"force": true} 

gcloud

Para mais informações sobre como usar gcloud para excluir sua configuração de conectividade privada, consulte a documentação do SDK Google Cloud.

A seguir