Доступ Looker PSC в южном направлении к Cloud SQL PSC

1. Введение

В этом практическом занятии вы выполните подключение к Cloud SQL, развернутому с использованием Private Service Connect в качестве производителя сервисов.

Private Service Connect — это функция сетевых возможностей Google Cloud, которая позволяет потребителям получать доступ к управляемым сервисам в частном порядке из своей сети VPC. Аналогичным образом, она позволяет производителям управляемых сервисов размещать эти сервисы в своих отдельных сетях VPC и предлагать своим потребителям частное соединение. Например, при использовании Private Service Connect для доступа к Looker вы являетесь потребителем сервиса, а Google — производителем сервиса, как показано на рисунке 1.

145ea4672c3a3b14.png

Доступ с юга, также известный как обратный PSC, позволяет потребителю создать опубликованную службу в качестве производителя, чтобы предоставить Looker доступ к конечным точкам в локальной сети, в VPC, к управляемым службам и Интернету. Подключения с юга могут быть развернуты в любом регионе, независимо от того, где развернут Looker PSC, как показано на рисунке 2.

259493afd914f68b.png

Что вы узнаете

  • Создайте службу для подключения частного экземпляра Cloud SQL.
  • Создайте конечную точку Private Service Connect в Looker в качестве потребителя сервиса.

Что вам понадобится

def88091b42bfe4d.png

2. Что вы построите

Вам потребуется создать экземпляр Cloud SQL PSC, развернутый в качестве производителя сервисов, и связать его с Looker PSC в качестве потребителя сервисов.

Следующие действия подтверждают доступ к сервису Producer:

  • Создайте в Looker конечную точку PSC, связанную с подключением к службе производителя.
  • Используйте консоль Looker для создания подключения к базе данных Cloud SQL PSC.
  • Проверьте подключение к Cloud SQL PSC, пройдя аутентификацию и получив доступ к предопределенной схеме.

3. Топология Codelab

1e7035ea608d7d23.png

4. Настройка и требования

Настройка среды для самостоятельного обучения

  1. Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы всегда можете его изменить.
  • Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор вашего проекта (обычно обозначается как PROJECT_ID ). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он сохраняется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , которое используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
  1. Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с ноутбука, в этом практическом занятии вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.

В консоли Google Cloud нажмите на значок Cloud Shell на панели инструментов в правом верхнем углу:

55efc1aaa7a4d3ad.png

Подготовка и подключение к среде займут всего несколько минут. После завершения вы должны увидеть примерно следующее:

7ffe5cbb04455448.png

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объемом 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Вся работа в этом практическом задании может выполняться в браузере. Вам не нужно ничего устанавливать.

5. Прежде чем начать

Включить API

Внутри Cloud Shell убедитесь, что идентификатор вашего проекта указан правильно:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region

Включите все необходимые службы:

gcloud services enable compute.googleapis.com

6. Определите проект Looker PSC.

Для создания экземпляра Cloud SQL PSC необходимо указать разрешенные проекты PSC, поэтому проект арендатора Looker PSC должен быть указан во время создания экземпляра Cloud SQL или обновлен, если используется существующий экземпляр.

Определить проект Looker PSC с помощью gcloud.

В Cloud Shell обновите [INSTANCE_NAME], указав имя вашего экземпляра Looker PSC, чтобы получить идентификатор проекта Looker PSC:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri

В примере выходных данных t7ec792caf2a609d1-tp представлен проект Looker PSC:

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

Определение проекта Looker PSC с помощью облачной консоли.

В консоли Cloud перейдите по следующему пути:

Looker → Экземпляр Looker PSC

1367ec0136aa5ad6.png

7. Создайте экземпляр Producer Cloud SQL.

В следующем разделе вы создадите экземпляр Cloud SQL PSC, используемый для целей тестирования, с предопределенным паролем, указывающим проект Looker PSC в списке разрешенных проектов PSC.

Создание Cloud SQL PSC

В Cloud Shell создайте экземпляр и включите Private Service Connect, обновите [INSTANCE_PROJECT] идентификатором вашего проекта Looker PSC.

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

Пример:

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

Получите подключение к сервису Cloud SQL.

После создания экземпляра Cloud SQL с включенной функцией Private Service Connect получите URI подключения к службе, который будет использоваться на следующем шаге для создания конечной точки Private Service Connect в Looker.

Внутри Cloud Shell выполните следующие действия:

gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink

В примере выходных данных отображается URI для подключения к сервису:

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

В консоли Cloud Console можно получить вложение в службу Cloud SQL PSC:

В консоли Cloud перейдите по следующему пути:

SQL → Экземпляр SQL → Подключения

18940483f646ed15.png

8. Установите соединение с конечной точкой PSC в Looker.

В следующем разделе вы свяжете подключение службы Cloud SQL Producers Service Attachment с Looker Core PSC, используя флаг –psc-service-attachment в Cloud Shell для одного домена.

Внутри Cloud Shell создайте связь с psc, обновив следующие параметры в соответствии с вашей средой:

  • INSTANCE_NAME: Имя вашего экземпляра Looker (ядро Google Cloud).
  • DOMAIN_1: sql.database1.com
  • SERVICE_ATTACHMENT_1: URI, полученный при описании экземпляра Cloud SQL PSC.
  • РЕГИОН: Регион, в котором размещен ваш экземпляр Looker (ядро Google Cloud).

Внутри Cloud Shell выполните следующие действия:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

Пример:

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

Внутри Cloud Shell убедитесь, что connectionStatus службы serviceAttachments имеет значение "ACCEPTED". Обязательно укажите INSTANCE_NAME вашего экземпляра Looker PSC:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

Пример:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

Пример:

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

Проверьте конечную точку PSC в Cloud Console.

В консоли Cloud Console можно проверить подключение к PSC.

В консоли Cloud перейдите по следующему пути:

Looker → Looker Instance → Details

2d4684d722d31e4b.png

9fa909f826dec963.png

9. Интеграция Looker PSC с Cloud SQL PSC

В следующем разделе вы будете использовать консоль Looker для создания подключения к базе данных Cloud SQL PSC.

Перейдите в раздел АДМИНИСТРИРОВАНИЕ → БАЗЫ ДАННЫХ → ПОДКЛЮЧЕНИЯ → Выберите ДОБАВИТЬ ПОДКЛЮЧЕНИЕ

Заполните данные для подключения в соответствии со скриншотом ниже, затем выберите ПОДКЛЮЧИТЬСЯ.

eb3ef74d3ae71f1a.png

Соединение настроено.

29017202470ad81f.png

10. Проверьте подключение Looker.

В следующем разделе вы узнаете, как проверить подключение Looker к экземпляру Cloud SQL PSC с помощью действия Looker 'test'.

Перейдите в раздел «Подключения к данным» АДМИНИСТРИРОВАНИЕ → БАЗЫ ДАННЫХ → ПОДКЛЮЧЕНИЯ → cloud-sql-psc-demo → Тест

После выбора параметра «Тест» Looker подключится к базе данных PostgreSQL, как показано ниже:

d9729caf9a61bfc2.png

Уборка

Из одного терминала Cloud Shell удалите компоненты лаборатории.

gcloud sql instances delete cloud-sql-psc-demo -q

11. Поздравляем!

Поздравляем, вы успешно настроили и проверили подключение к Cloud SQL PSC с помощью Looker Console на базе Private Service Connect.

Вы создали экземпляры Cloud SQL PSC в качестве службы Producer Service и конечной точки Looker PSC, обеспечивающей подключение к службе Producer Service.

Cosmopup считает, что Codelabs — это круто!!

c911c127bffdee57.jpeg

Что дальше?

Посмотрите некоторые из этих практических занятий по программированию...

Дополнительная литература и видеоматериалы

Справочная документация