1. Introdução
Neste codelab, você vai realizar uma conexão southbound com o Cloud SQL implantado com o Private Service Connect como um produtor de serviços.
O Private Service Connect é um recurso da rede do Google Cloud que permite que os consumidores acessem serviços gerenciados de maneira particular na rede VPC deles. Da mesma forma, ele permite que produtores de serviços gerenciados hospedem esses serviços em redes VPC separadas e ofereçam uma conexão particular aos consumidores. Por exemplo, quando você usa o Private Service Connect para acessar o Looker, você é o consumidor de serviço, e o Google é o produtor de serviços, como destacado na Figura 1.

O acesso de saída, também conhecido como PSC reverso, permite que o consumidor crie um serviço publicado como um produtor para permitir que o Looker acesse endpoints locais, em uma VPC, em serviços gerenciados e na Internet. As conexões de saída podem ser implantadas em qualquer região, independente de onde o PSC do Looker está implantado, conforme destacado na Figura 2.

O que você vai aprender
- Criar um serviço de produtor de instâncias do Cloud SQL do Private Service Connect
- Criar um endpoint do Private Service Connect no Looker como um consumidor de serviços
O que é necessário
- Projeto do Google Cloud com permissões de proprietário
- Instância do PSC do Looker atual

2. O que você vai criar
Você vai estabelecer uma instância do PSC do Cloud SQL implantada como um produtor de serviços associado ao PSC do Looker como um consumidor de serviços.
As ações a seguir validam o acesso ao serviço do produtor:
- Criar um endpoint do PSC no Looker associado ao anexo de serviço do produtor
- Use o console do Looker para criar uma conexão de banco de dados com o PSC do Cloud SQL
- Teste a conectividade com o PSC do Cloud SQL autenticando e acessando um esquema predefinido.
3. Topologia do codelab

4. Configuração e requisitos
Configuração de ambiente autoguiada
- Faça login no Console do Google Cloud e crie um novo projeto ou reutilize um existente. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.



- O Nome do projeto é o nome de exibição para os participantes do projeto. É uma string de caracteres não usada pelas APIs do Google e pode ser atualizada quando você quiser.
- O ID do projeto precisa ser exclusivo em todos os projetos do Google Cloud e não pode ser mudado após a definição. O console do Cloud gera automaticamente uma string exclusiva. Em geral, não importa o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, normalmente identificado como
PROJECT_ID. Se você não gostar do ID gerado, crie outro aleatório. Se preferir, teste o seu e confira se ele está disponível. Ele não pode ser mudado após essa etapa e permanece durante o projeto. - Para sua informação, há um terceiro valor, um Número do projeto, que algumas APIs usam. Saiba mais sobre esses três valores na documentação.
- Em seguida, ative o faturamento no console do Cloud para usar os recursos/APIs do Cloud. A execução deste codelab não vai ser muito cara, se tiver algum custo. Para encerrar os recursos e evitar cobranças além deste tutorial, exclua os recursos criados ou exclua o projeto. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.
Inicie o Cloud Shell
Embora o Google Cloud e o Spanner possam ser operados remotamente do seu laptop, neste codelab usaremos o Google Cloud Shell, um ambiente de linha de comando executado no Cloud.
No Console do Google Cloud, clique no ícone do Cloud Shell na barra de ferramentas superior à direita:

O provisionamento e a conexão com o ambiente levarão apenas alguns instantes para serem concluídos: Quando o processamento for concluído, você verá algo como:

Essa máquina virtual contém todas as ferramentas de desenvolvimento necessárias. Ela oferece um diretório principal persistente de 5 GB, além de ser executada no Google Cloud. Isso aprimora o desempenho e a autenticação da rede. Neste codelab, todo o trabalho pode ser feito com um navegador. Você não precisa instalar nada.
5. Antes de começar
Ativar APIs
No Cloud Shell, verifique se o ID do projeto está configurado:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
Ative todos os serviços necessários:
gcloud services enable compute.googleapis.com
6. Identificar o projeto do PSC do Looker
A criação de uma instância do PSC do Cloud SQL exige a identificação de projetos de PSC permitidos. Portanto, o projeto locatário do PSC do Looker precisa ser fornecido no momento da criação da instância do Cloud SQL ou atualizado se você estiver usando uma instância atual.
Determinar o projeto do PSC do Looker usando o gcloud
No Cloud Shell, atualize [INSTANCE_NAME] com o nome da sua instância do PSC do Looker para receber o ID do projeto do PSC do Looker:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri
Na saída de exemplo, t7ec792caf2a609d1-tp é o projeto do PSC do Looker:
gcloud looker instances describe looker-psc-instance --region=us-central1 --format=json | grep -i lookerServiceAttachmentUri
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
Determinar o projeto do PSC do Looker usando o Console do Cloud
No console do Cloud, navegue até:
Looker → Instância do PSC do Looker

7. Criar uma instância do Cloud SQL do produtor
Na seção a seguir, você vai criar uma instância do PSC do Cloud SQL usada para fins de teste e implantada com uma senha predefinida que especifica o projeto do PSC do Looker na lista de projetos permitidos.
Criação de PSC do Cloud SQL
No Cloud Shell, crie uma instância e ative o Private Service Connect. Atualize [INSTANCE_PROJECT] com o ID do projeto do PSC do Looker.
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=[INSTANCE_PROJECT] \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
Exemplo:
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=t7ec792caf2a609d1-tp \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
Extrair o anexo de serviço do Cloud SQL
Depois de criar uma instância do Cloud SQL com o Private Service Connect ativado, acesse o URI do anexo de serviço usado em uma etapa posterior para criar o endpoint do Private Service Connect no Looker.
No Cloud Shell, faça o seguinte:
gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink
O exemplo de saída produz o URI do anexo de serviço:
projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
gcloud sql instances describe cloud-sql-psc-demo --project=$project | grep -i pscServiceAttachmentLink:
pscServiceAttachmentLink: projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
No console do Cloud, é possível acessar o anexo de serviço do PSC do Cloud SQL:
No console do Cloud, navegue até:
SQL → Instância do SQL → Conexões

8. Estabelecer uma conexão de endpoint do PSC no Looker
Na seção a seguir, você vai associar o anexo de serviço dos produtores do Cloud SQL ao PSC do Looker Core usando as flags --psc-service-attachment no Cloud Shell para um único domínio.
No Cloud Shell, crie a associação de PSC atualizando os seguintes parâmetros para corresponder ao seu ambiente:
- INSTANCE_NAME: o nome da sua instância do Looker (Google Cloud Core).
- DOMAIN_1: sql.database1.com
- SERVICE_ATTACHMENT_1: URI capturado ao descrever a instância do Cloud SQL PSC
- REGIÃO: a região em que sua instância do Looker (Google Cloud Core) está hospedada
No Cloud Shell, faça o seguinte:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Exemplo:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=sql.database1.com,attachment=projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155 \
--region=us-central1
No Cloud Shell, valide se o connectionStatus do serviceAttachments é "ACCEPTED". Atualize com o INSTANCE_NAME da PSC do Looker:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Exemplo:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Exemplo:
user@cloudshell$ gcloud looker instances describe looker-psc-instance --region=$region --format=json
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"name": "projects/project/locations/us-central1/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/project/global/networks/looker-psc-demo",
"projects/project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "sql.database1.com",
"targetServiceAttachmentUri": "projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-04T14:40:05.613026012Z"
}
Validar o endpoint do PSC no console do Cloud
No console do Cloud, é possível validar a conexão do PSC.
No console do Cloud, navegue até:
Looker → Instância do Looker → Detalhes


9. Integrar o PSC do Looker ao PSC do Cloud SQL
Na seção a seguir, você vai usar o console do Looker para criar uma conexão de banco de dados com a instância PSC do Cloud SQL.
Navegue até ADMINISTRADOR → BANCO DE DADOS → CONEXÕES → Selecione ADICIONAR CONEXÃO
Preencha os detalhes da conexão conforme a captura de tela abaixo e selecione CONECTAR.

A conexão agora está configurada

10. Validar a conectividade do Looker
Na seção a seguir, você vai aprender a validar a conectividade do Looker com a instância PSC do Cloud SQL usando a ação "test" do Looker.
Acesse a conexão de dados ADMIN → DATABASE → CONNECTIONS → cloud-sql-psc-demo → Test
Depois que o teste for selecionado, o Looker vai se conectar ao banco de dados postgres, conforme indicado abaixo:

Limpar
Excluir componentes do laboratório em um único terminal do Cloud Shell
gcloud sql instances delete cloud-sql-psc-demo -q
11. Parabéns
Parabéns! Você configurou e validou a conectividade com o PSC do Cloud SQL usando o console do Looker com tecnologia do Private Service Connect.
Você criou instâncias do PSC do Cloud SQL como o serviço produtor e o endpoint do PSC do Looker que permitiu a conectividade com o serviço produtor.
O Cosmopup acha que os codelabs são incríveis!

Qual é a próxima etapa?
Confira alguns destes codelabs:
- Como usar o Private Service Connect para publicar e consumir serviços
- Conectar-se a serviços no local pela rede híbrida usando o Private Service Connect e um balanceador de carga de proxy TCP interno
- Acesso a todos os codelabs publicados do Private Service Connect