Configurar IP privado

Nesta página, você verá como configurar uma instância do Cloud SQL para usar IP particular.

Para informações sobre como o IP particular funciona, bem como sobre os requisitos de ambiente e gerenciamento, consulte IP particular.

Antes de começar

Requisitos de API e IAM

  • Ative a API Service Networking no projeto do Google Cloud.
  • Se você estiver usando uma rede VPC compartilhada, também precisará ativar essa API no projeto host.

  • Para gerenciar uma conexão de acesso a serviços privados, o usuário precisa ter as seguintes permissões de gerenciamento de identidade e acesso. Se você não tiver as permissões necessárias, é possível que receba erros de permissões insuficientes.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

    Se você estiver usando uma rede VPC compartilhada, também precisará adicionar seu usuário ao projeto host e atribuir as mesmas permissões a ele no projeto host.

Acesso privado a serviços

Ao criar uma nova rede de nuvem privada virtual (VPC) no projeto, você precisa configurar o acesso a serviços particulares para alocar um intervalo de endereços IP e criar uma conexão de serviço particular. Isso permite que os recursos na rede VPC se conectem às instâncias do Cloud SQL. O console do Google Cloud oferece um assistente para ajudar você a definir essa configuração.

Configurar uma instância para usar o IP particular

Ao criar uma instância do Cloud SQL, é possível configurá-la para usar o IP particular. Essa configuração também pode ser feita em uma instância atual.

Configurar o IP particular para uma nova instância

Para configurar uma instância do Cloud SQL para usar IP particular ao criar uma instância:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Clique em Criar instância.
  3. Expanda Mostrar opções de configuração.
  4. Expanda Conexões.
  5. Selecione IP privado.

    Uma lista suspensa exibirá as redes VPC disponíveis no projeto. Se o projeto for o de serviço de uma VPC compartilhada, as redes VPC do projeto host também serão exibidas.

  6. Selecione a rede VPC a ser usada.
  7. Se você vir uma mensagem indicando que precisa configurar uma conexão de serviço particular, faça o seguinte:

    1. Clique em Configurar conexão.
    2. Na seção Alocar um intervalo de IP, selecione uma destas opções:
      • Selecione um ou mais intervalos de IP ou crie um novo no menu suspenso. A lista suspensa inclui intervalos alocados anteriormente. Selecione Alocar um novo intervalo de IP e insira um novo intervalo e nome.
      • Use um intervalo de IP alocado automaticamente na sua rede..
    3. Clique em Continuar.
    4. Clique em Criar conexão.
    5. Verifique se você vê a mensagem Private service connection for network VPC_NETWORK_NAME has been successfully created.
  8. Opcionalmente, é possível especificar um intervalo de IP alocado para as suas instâncias usarem em conexões.
    1. Expanda Mostrar opção de intervalo de IP alocado.
    2. Selecione um intervalo de IP no menu suspenso.
  9. Opcional. Para dar permissão a fim de que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas neles por uma conexão IP particular, marque Ativar caminho particular.
  10. Conclua a configuração da instância.
  11. Clique em Criar instância.

gcloud

Antes de criar uma instância usando um endereço IP particular, verifique se o projeto está configurado para acesso a serviços privados.

Antes de usar os dados da solicitação, faça as substituições a seguir:

  • INSTANCE_ID: o ID da instância
  • PROJECT_ID: o ID do projeto
  • NETWORK_PROJECT_ID: o ID do projeto da rede VPC

  • VPC_NETWORK_NAME: o nome da rede VPC
  • RANGE_NAME: opcional. Se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa estar em conformidade com RFC-1035 e conter de 1 a 63 caracteres.
  • DATABASE_VERSION: a versão do banco de dados do PostgreSQL (por exemplo, POSTGRES_14)
  • NUMBER_OF_CPU: o número de CPUs
  • MEMORY_IN_GB: a quantidade de memória (em GB)
  • REGION_NAME: o nome da região
Para especificar o nome da sua rede VPC, use o parâmetro --network. Para desativar o IP público, use a sinalização --no-assign-ip.

Como opção, use o parâmetro --enable-google-private-path para permitir que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados em uma conexão IP particular. Esse parâmetro só será válido se:

  • Use o parâmetro --no-assign-ip.
  • Use o parâmetro --network para especificar o nome da rede VPC que você quer usar para criar uma conexão particular.

gcloud beta sql instances create INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--allocated-ip-range-name=RANGE_NAME \
--enable-google-private-path \
--database-version=DATABASE_VERSION \
--cpu=NUMBER_OF_CPU \
--memory=MEMORY_IN_GB \
--region=REGION_NAME

Terraform

Para configurar o IP privado para uma nova instância, use os seguintes recursos do Terraform:


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "default" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}

# [START  cloud_sql_postgres_instance_private_ip_dns]

## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.id
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Aplique as alterações

Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.

Preparar o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.

    Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.

Preparar o diretório

Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo arquivo dentro dele. O nome do arquivo precisa ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o arquivo é chamado de main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.

    Copie o exemplo de código no main.tf recém-criado.

    Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.

  3. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  4. Salve as alterações.
  5. Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init

    Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção -upgrade:

    terraform init -upgrade

Aplique as alterações

  1. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  2. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  3. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Excluir as alterações

Para excluir as mudanças, faça o seguinte:

  1. Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo yes no prompt:

    terraform destroy

REST v1

Crie uma instância nova com um endereço IP privado:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID:: o ID do projeto
  • INSTANCE_ID:: o ID da instância
  • VPC_NETWORK_NAME:: especifique o nome da rede de nuvem privada virtual (VPC) que você quer usar para essa instância. O acesso a serviços particulares já precisa estar configurado na rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa estar em conformidade com RFC-1035 e conter de 1 a 63 caracteres.
  • AUTHORIZED_NETWORKS:: para conexões de IP público, especifique as conexões de redes autorizadas que podem se conectar à instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver usando um endereço IP público para a instância ou como false se a instância tiver um endereço IP particular.

Se você definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permitirá que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados em uma conexão IP particular. Ao definir esse parâmetro como false, outros serviços do Google Cloud não podem acessar dados no Cloud SQL por uma conexão de IP particular.

Método HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corpo JSON da solicitação:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Crie uma instância nova com um endereço IP privado:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID:: o ID do projeto
  • INSTANCE_ID:: o ID da instância
  • VPC_NETWORK_NAME:: especifique o nome da rede de nuvem privada virtual (VPC) que você quer usar para essa instância. O acesso a serviços particulares já precisa estar configurado na rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa estar em conformidade com RFC-1035 e conter de 1 a 63 caracteres.
  • AUTHORIZED_NETWORKS:: para conexões de IP público, especifique as conexões de redes autorizadas que podem se conectar à instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver usando um endereço IP público para a instância ou como false se a instância tiver um endereço IP particular.

Se você definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permitirá que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados em uma conexão IP particular. Ao definir esse parâmetro como false, outros serviços do Google Cloud não podem acessar dados no Cloud SQL por uma conexão de IP particular.

Método HTTP e URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

Corpo JSON da solicitação:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Configurar o IP particular para uma instância atual

Configurar uma instância atual do Cloud SQL para usar IP privado faz com que ela seja reiniciada, resultando em tempo de inatividade.

Configurar o uso de IP privado em uma instância atual:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Conexões no menu de navegação do Cloud SQL.
  4. Na guia Rede, marque a caixa de seleção IP particular.

    Uma lista suspensa exibirá as redes disponíveis no projeto.

  5. Selecione a rede VPC a ser usada:
  6. Se você vir a mensagem Conexão de serviço particular obrigatória, siga estas instruções:

    1. Clique em Configurar conexão.
    2. Na seção Alocar um intervalo de IP, escolha uma destas opções:
      • Selecione um ou mais intervalos de IP ou crie um novo no menu suspenso. A lista suspensa inclui intervalos alocados anteriormente. Selecione Alocar um novo intervalo de IP e insira um novo intervalo e nome.
      • Use um intervalo de IP alocado automaticamente na sua rede.
    3. Clique em Continuar.
    4. Clique em Criar conexão.
    5. Verifique se o status da Conexão de serviço particular da rede VPC_NETWORK_NAME foi criado.
  7. Opcional. Para dar permissão a fim de que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas neles por uma conexão IP particular, marque a caixa de seleção Ativar caminho particular.
  8. Clique em Salvar.

gcloud

Verifique se o projeto está configurado para acesso a serviços particulares.

Atualize a instância do Cloud SQL usando o parâmetro --network para especificar o nome da rede VPC selecionada.

gcloud beta sql instances patch INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--enable-google-private-path

REST v1

Crie uma instância nova com um endereço IP privado:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID:: o ID do projeto
  • INSTANCE_ID:: o ID da instância
  • VPC_NETWORK_NAME:: especifique o nome da rede de nuvem privada virtual (VPC) que você quer usar para essa instância. O acesso a serviços particulares já precisa estar configurado na rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa estar em conformidade com RFC-1035 e conter de 1 a 63 caracteres.
  • AUTHORIZED_NETWORKS:: para conexões de IP público, especifique as conexões de redes autorizadas que podem se conectar à instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver usando um endereço IP público para a instância ou como false se a instância tiver um endereço IP particular.

Se você definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permitirá que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados em uma conexão IP particular. Ao definir esse parâmetro como false, outros serviços do Google Cloud não podem acessar dados no Cloud SQL por uma conexão de IP particular.

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON da solicitação:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Crie uma instância nova com um endereço IP privado:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID:: o ID do projeto
  • INSTANCE_ID:: o ID da instância
  • VPC_NETWORK_NAME:: especifique o nome da rede de nuvem privada virtual (VPC) que você quer usar para essa instância. O acesso a serviços particulares já precisa estar configurado na rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa estar em conformidade com RFC-1035 e conter de 1 a 63 caracteres.
  • AUTHORIZED_NETWORKS: para conexões de IP público, especifique as conexões de redes autorizadas que podem se conectar à instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver usando um endereço IP público para a instância ou como false se a instância tiver um endereço IP particular.

Se você definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permitirá que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados em uma conexão IP particular. Ao definir esse parâmetro como false, outros serviços do Google Cloud não podem acessar dados no Cloud SQL por uma conexão de IP particular.

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON da solicitação:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Conectar-se a uma instância usando o IP particular dela

Use o acesso a serviços particulares para se conectar a instâncias do Cloud SQL do Compute Engine ou do Google Kubernetes Engine na mesma rede VPC (definida aqui como origens internas) ou de fora dessa rede (uma origem externa).

Conectar-se usando uma fonte interna

Para se conectar por meio de uma origem no mesmo projeto do Google Cloud que a instância do Cloud SQL, como o proxy do Cloud SQL Auth em execução em um recurso do Compute Engine, esse recurso precisa estar na mesma rede VPC em que o acesso a serviços particulares foi estabelecido para a instância do Cloud SQL.

Para se conectar por meio de uma origem sem servidor, como o ambiente padrão do App Engine, o Cloud Run, ou o Cloud Run functions, o aplicativo ou a função se conecta diretamente à instância pelo acesso VPC sem servidor sem o proxy do Cloud SQL Auth.

Conectar-se usando uma fonte externa

Se uma rede externa (por exemplo, uma rede local ou VPC) estiver conectada à rede VPC a que sua instância do Cloud SQL está conectada, será possível usar a Cloud VPN ou o Cloud Interconnect para se conectar à instância de um cliente na rede externa.

Para permitir conexões de uma rede externa, faça o seguinte:

  1. Verifique se a rede VPC está conectada à rede externa usando um Túnel do Cloud VPN ou um anexo da VLAN para Interconexão dedicada ou Interconexão por parceiro.
  2. Verifique se as sessões do protocolo de gateway de borda (BGP) nos Cloud Routers que gerenciam os túneis do Cloud VPN e os anexos do Cloud Interconnect (VLANs) receberam prefixos específicos (destinos) da rede local.

    Não é possível importar rotas padrão (destino 0.0.0.0/0) para a rede VPC do Cloud SQL porque essa rede tem uma rota padrão local própria. As rotas locais de um destino são sempre usadas, mesmo que o peering do Cloud SQL esteja configurado para importar rotas personalizadas da rede VPC.

  3. Identifique as conexões de peering produzidas pela conexão de serviços particulares: Dependendo do serviço, ela pode criar uma ou mais das seguintes conexões de peering, mas não necessariamente todas elas:
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. Atualize todas as conexões de peering para ativar a opção Exportar rotas personalizadas.
  5. Identifique o intervalo alocado usado pela conexão de serviços particulares.
  6. Configure o modo de divulgação personalizada do Cloud Router para o intervalo alocado nos Cloud Routers que gerenciam sessões do BGP para os túneis do Cloud VPN ou anexos do Cloud Interconnect (VLANs).

Conectar a partir do Cloud Shell

No momento, o Cloud Shell não aceita se conectar a uma instância do Cloud SQL que tenha apenas um endereço IP particular.

Conectar-se usando endereços que não sejam RFC 1918

RFC 1918 especifica os endereços IP que são atribuídos para uso interno (ou seja, em uma organização) e não são roteados na Internet. São eles:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

As conexões com uma instância do Cloud SQL usando um endereço IP privado são autorizadas automaticamente para intervalos de endereços RFC 1918. Dessa forma, todos os clientes particulares podem acessar o banco de dados sem passar pelo proxy.

Para se conectar a partir de um endereço que não seja RFC 1918, você precisa definir a autorização de IP por instância para permitir o tráfego de intervalos de endereços não RFC 1918.

Por exemplo, use um comando gcloud como este:

gcloud sql instances patch INSTANCE_NAME \
--authorized-networks=192.88.99.0/24,11.0.0.0/24

Por padrão, o Cloud SQL não aprende as rotas de sub-rede não RFC 1918 da sua rede VPC. É necessário atualizar o peering de rede para o Cloud SQL para exportar rotas que não sejam RFC 1918.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Substitua:

  • cloudsql-postgres-googleapis-com é um nome do Private Service Connection da página da rede VPC.

    Selecione sua rede e procure a seção Conexão de serviço particular.

  • VPC_NETWORK_NAME é o nome da sua rede VPC.
  • PROJECT_ID é o ID do projeto da rede VPC. Se você estiver usando a VPC compartilhada, use o ID do projeto host.

Para reduzir o esgotamento de endereços IP, use endereços IP públicos utilizados de modo privado.

Conectar-se a partir de endereços IP públicos usados de modo privado

Se você quiser configurar a instância em um intervalo de endereços IP públicos usado de maneira particular, ative export-subnet-routes-with-public-ip no peering de rede entre sua rede e a rede do Cloud SQL.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Substitua:

  • cloudsql-postgres-googleapis-com é um nome do Private Service Connection da página da rede VPC.

    Selecione sua rede e procure a seção Conexão de serviço particular.

  • VPC_NETWORK_NAME é o nome da sua rede VPC.
  • PROJECT_ID é o ID do projeto da rede VPC. Se você estiver usando a VPC compartilhada, use o ID do projeto host.

Conectar-se a uma instância configurada com endereços IP públicos usados de maneira particular

Se a instância estiver configurada em um intervalo de endereços IP públicos usado de maneira privada e você quiser se conectar a ela, ative import-subnet-routes-with-public-ip no peering de rede entre sua rede e a rede do Cloud SQL.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Substitua:

  • cloudsql-postgres-googleapis-com é um nome do Private Service Connection da página da rede VPC.

    Selecione sua rede e procure a seção Conexão de serviço particular.

  • VPC_NETWORK_NAME é o nome da sua rede VPC.
  • PROJECT_ID é o ID do projeto da rede VPC. Use o ID do projeto de host se você estiver usando a VPC compartilhada.

Conectar usando um endpoint de gravação

Além de um endereço IP particular, é possível usar um endpoint de gravação em uma string de conexão SQL. Um endpoint de gravação é um nome de serviço de nome de domínio (DNS) global que se refere ao endereço IP da instância principal atual de forma automática. Ao usar um endpoint de gravação, você evita ter que fazer mudanças na conexão do aplicativo quando ocorre uma interrupção regional.

Se ocorrer um failover ou switchover de réplica, o endpoint de gravação poderá ajudar a gerenciar endereços IP particulares de instâncias. Quando isso acontecer, use o endpoint de gravação para se conectar à instância que atua como principal.

Como o Cloud SQL cria um endpoint de gravação

Se você ativar a API Cloud DNS no projeto do Google Cloud e criar uma instância principal da edição Enterprise Plus do Cloud SQL, promover a réplica da instância ou fazer upgrade da instância da edição Cloud SQL Enterprise, o Cloud SQL vai gerar um endpoint de gravação automaticamente e atribuir à instância.

Para mais informações sobre como acessar o endpoint de gravação da instância, consulte Acessar informações da instância.

Atribuir um endpoint de gravação a uma instância

Se você não ativar a API Cloud DNS no projeto do Google Cloud e depois criar, promover ou atualizar a instância, o Cloud SQL não atribuirá o endpoint de gravação a ela automaticamente.

Para que o Cloud SQL gere um endpoint de gravação e o atribua à instância, conclua as etapas a seguir:

  1. Ative a API Cloud DNS.

    Console

    1. No console do Google Cloud, acesse a página APIs.

      Acesse APIs

    2. Clique na API Cloud DNS.
    3. Ative a API.

    gcloud

    1. Clique no botão a seguir para abrir o Cloud Shell, que fornece acesso de linha de comando aos recursos do Google Cloud diretamente no navegador.

      Abrir o Cloud Shell

    2. Para fazer isso, execute este comando gcloud services enable:

      gcloud services enable dns.googleapis.com
  2. Crie uma réplica ativada para recuperação avançada de desastres. Como resultado, o Cloud SQL gera o endpoint de gravação e o atribui à instância.

  3. Para recuperar o endpoint de gravação, use o comando gcloud sql instances describe:
    gcloud sql instances describe INSTANCE_NAME | grep psaWriteEndpoint

    Substitua INSTANCE_NAME pelo nome da instância do Cloud SQL.

Resolver problemas

Consulte solução de problemas para problemas de conectividade conhecidos e depuração de problemas de conexão para receber ajuda com o autodiagnóstico.

A seguir