Acesso do PSC do Looker para o PSC do Cloud SQL

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.

145ea4672c3a3b14.png

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.

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 um 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 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

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

1367ec0136aa5ad6.png

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

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

2d4684d722d31e4b.png

9fa909f826dec963.png

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.

eb3ef74d3ae71f1a.png

A conexão agora está configurada

29017202470ad81f.png

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:

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 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!

c911c127bffdee57.jpeg

Qual é a próxima etapa?

Confira alguns destes codelabs:

Leituras e vídeos complementares

Documentos de referência