Acesso do PSC do Looker para o PSC do Cloud SQL

1. Introdução

Neste codelab, você vai realizar uma conexão de ida para 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 consumidores acessem serviços gerenciados de maneira particular na rede VPC deles. Da mesma forma, ele permite que produtores do serviço gerenciado 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ços e o Google é o produtor de serviços, conforme destacado na Figura 1.

145ea4672c3a3b14.png

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

259493afd914f68b.png

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 consumidor de serviços

O que é necessário

def88091b42bfe4d.png

2. O que você vai criar

Você vai estabelecer uma instância do PSC do Cloud SQL implantada como produtor de serviços associada ao PSC do Looker como consumidor de serviços.

As seguintes ações 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
  • Testar a conectividade com o PSC do Cloud SQL autenticando e acessando um esquema predefinido

3. Topologia do codelab

1e7035ea608d7d23.png

4. Configuração e requisitos

Configuração de ambiente autoguiada

  1. 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.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 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.
  1. 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:

55efc1aaa7a4d3ad.png

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:

7ffe5cbb04455448.png

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. Identifique o projeto PSC do Looker

A criação de uma instância do PSC do Cloud SQL exige a identificação dos projetos PSC permitidos. Portanto, o projeto do 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 existente.

Determinar o projeto PSC do Looker usando o gcloud

No Cloud Shell, atualize [INSTANCE_NAME] com o nome da 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

No exemplo de saída, t7ec792caf2a609d1-tp é o projeto 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 PSC do Looker usando o Console do Cloud

No console do Cloud, navegue até:

Looker → Instância do PSC do Looker

1367ec0136aa5ad6.png

7. Criar uma instância do Cloud SQL para produtores

Na próxima seção, 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 PSC do Looker na lista de projetos PSC 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

Obter o anexo do 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

Exemplo de saída que 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

18940483f646ed15.png

8. Estabelecer uma conexão de endpoint do PSC no Looker

Na seção a seguir, você vai associar o anexo de serviço do Cloud SQL Producers 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 do 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 PSC do Cloud SQL
  • REGION: 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 status de conexão de serviceAttachments é "ACCEPTED". Atualize com o INSTANCE_NAME do 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 PSC.

No console do Cloud, navegue até:

Looker → Instância do Looker → Detalhes

2d4684d722d31e4b.png

9fa909f826dec963.png

9. Integrar o PSC do Looker ao PSC do Cloud SQL

Na próxima seção, você vai usar o Looker Console para criar uma conexão de banco de dados com a instância PSC do Cloud SQL.

Navegue até ADMIN → DATABASE → CONNECTIONS → e selecione ADD CONNECTION.

Preencha os detalhes da conexão conforme a captura de tela abaixo e selecione CONECTAR.

eb3ef74d3ae71f1a.png

A conexão está configurada

29017202470ad81f.png

10. Validar a conectividade do Looker

Na seção a seguir, você vai aprender a validar a conectividade do Looker à instância do PSC do Cloud SQL usando a ação "test" do Looker.

Navegue até 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:

d9729caf9a61bfc2.png

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 ao PSC do Cloud SQL usando o Looker Console com o Private Service Connect.

Você criou instâncias do PSC do Cloud SQL como o endpoint do PSC do serviço de produtor e do Looker que permitiram a conectividade ao serviço de produtor.

Cosmopup acha que os codelabs são incríveis.

c911c127bffdee57.jpeg

Qual é a próxima etapa?

Confira alguns destes codelabs:

Mais leituras e vídeos

Documentos de referência