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.
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.
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
- Projeto do Google Cloud com permissões de proprietário
- Instância PSC do Looker
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
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. 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
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
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
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.
A conexão está configurada
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:
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.
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 on-prem por rede híbrida usando o Private Service Connect e um balanceador de carga do proxy TCP interno
- Acesso a todos os codelabs publicados do Private Service Connect