Como se conectar ao Cloud SQL: IP público e redes autorizadas

1. Introdução

Última atualização:04/05/2020

Pensar na conexão

Existem muitos tipos de aplicativos e frameworks por aí. Neste codelab, você vai aprender a se conectar ao Cloud SQL de qualquer lugar. A capacidade de conexão é ativada autorizando explicitamente os IPs com permissão para se conectar. Essa é possivelmente a opção menos segura para se conectar a um banco de dados do Cloud SQL, mas também é a mais fácil de configurar e começar a usar.

Às vezes, é necessário fazer isso na produção. No entanto, se você puder evitar isso, opte por uma alternativa mais segura (por exemplo, usando o Cloud SQL Proxy). Essa configuração é ideal para desenvolvimento e testes.

O que você vai criar

Este codelab é muito minimalista. A ideia é orientar você sobre os fundamentos da peça de conexão, sem se preocupar muito com o aplicativo em si. Em um mundo perfeito, conectar-se ao Cloud SQL é como se conectar a qualquer outra instância de um banco de dados SQL. Você deve conseguir aplicar o que criar neste codelab a qualquer aplicativo de produção.

As instruções incluem um tutorial sobre como usar o console do GCP e os comandos gcloud equivalentes para usar na CLI ou na automação.

As etapas individuais são:

  • Criar uma instância do Cloud SQL (este tutorial usa Postgres, mas funciona de maneira semelhante para MySQL ou SQL Server) e autorizar IPs específicos com permissão para se conectar a ela

O que é necessário

  • Uma conta do GCP em que você tem permissão para ativar APIs e criar serviços
  • O cliente Postgres instalado para verificar a conectividade (ou cliente MySQL se você quiser usar o MySQL em vez do Postgres)

2. Como criar a instância do Cloud SQL

O Cloud SQL é nossa oferta de bancos de dados relacionais gerenciados. Ele é compatível com MySQL, PostgreSQL e SQL Server. Neste codelab, criaremos um banco de dados do Postgres, mas as instruções são semelhantes para os três.

No console

Acesse a página do Cloud SQL e clique no botão 241836b315e11bf5.png.

Como mencionei, a maior parte deste codelab é genérica para qualquer variação de SQL, mas, para este codelab, escolha o PostgreSQL.

  1. Dê um ID à sua instância
  2. Escolha uma região próxima a onde você está
  3. Digite uma senha para o usuário padrão (o nome de usuário será o padrão para o banco de dados selecionado, por exemplo, root para MySQL ou postgres para PostgreSQL)
  4. Role para baixo e clique no show configuration options
  5. Abrir a seção Connectivity
  6. Confirme se a opção Public IP está marcada e se a Private IP está desmarcada
  7. Clique no botão 883b32ec2734de01.png.
  8. Encontre o endereço IP do local de onde você está se conectando. O mais fácil é pesquisar no Google "Qual é meu IP" e os resultados da pesquisa contêm seu IP público.
  1. Insira a especificação de IP no campo de rede, dê um nome a ela, se quiser, e clique em Concluído na caixa New Network.
  2. Role para baixo e clique em "Criar".

Geralmente, a instância leva alguns minutos para ser iniciada.

Depois que a instância for criada, clique nela na lista e, na página de visão geral, abaixo do cabeçalho Connect to this instance, copie a public IP address listada. Ela não estará lá até que a instância seja totalmente criada, mesmo que você possa clicar nos detalhes antes que ela seja totalmente instanciada.

Como usar a gcloud

Primeiro, você precisa do endereço IP que quer autorizar para se conectar à instância do Cloud SQL. A maneira mais fácil de fazer isso é abrir um navegador e pesquisar "What's my IP" e os resultados da pesquisa mostram seu endereço IP público. Se você não conseguir abrir um navegador no local em que está fazendo isso, use um utilitário como o dig.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

Será necessário especificar a região para sua instância do Cloud SQL mais próxima de onde você está. Para conferir a lista de regiões, execute este comando:

gcloud sql tiers list

Cada nível está disponível apenas em determinadas regiões. Para a parte do gcloud do tutorial, estamos apenas criando uma microinstância. Assim, você pode encontrar as regiões desse nível executando especificamente (contanto que você tenha grep instalado):

gcloud sql tiers list | grep db-f1-micro

O comando para criar a própria instância é semelhante a (não se esqueça de substituir <AUTHORIZED_IP> pelo IP que você recebeu do navegador ou do comando dig, e <REGION> por um próximo a você e uma senha para o usuário raiz "postgres"):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

Esse processo leva alguns minutos para ser concluído.

Depois de concluído, a saída da CLI terá o PRIMARY_ADDRESS da instância listado. Copie isso para a próxima etapa.

3. Teste a conexão e o encerramento

Para verificar se a instância foi configurada corretamente, execute na linha de comando o seguinte endereço IP na máquina:

psql "host=<IP copiado da etapa anterior> porta=5432 sslmode=disable user=postgres"

Em seguida, especifique a senha do usuário padrão que você definiu ao criar a instância do Cloud SQL.

Parabéns! Se tudo tiver corrido bem, você terá o prompt do Postgres e poderá executar comandos no seu banco de dados.

Qual é a próxima etapa?

Confira alguns destes codelabs:

Documentos de referência