Перейти к основному содержимому
Перейти к основному содержимому

GCP Private Service Connect

Private Service Connect

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

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

Обзор Private Service Connect
к сведению

По умолчанию сервис ClickHouse недоступен через Private Service Connect, даже если соединение PSC одобрено и установлено; вам необходимо явно добавить PSC ID в белый список на уровне экземпляра, завершив шаг ниже.

примечание

GCP Private Service Connect может быть активирован только на продуктивных сервисах ClickHouse Cloud.

Подключение между регионами не поддерживается. Регионы производителей и потребителей должны совпадать. Тем не менее, вы можете подключаться из других регионов внутри вашего VPC, активировав глобальный доступ на уровне Private Service Connect (PSC).

примечание

Важные рекомендации по использованию Глобального доступа Private Service Connect:

  1. Регионы, использующие Глобальный доступ, должны принадлежать одному VPC.
  2. Глобальный доступ должен быть явно активирован на уровне PSC (обратитесь к скриншоту ниже).
  3. Убедитесь, что ваши настройки брандмауэра не блокируют доступ к PSC из других регионов.
  4. Обратите внимание, что вы можете понести расходы на передачу данных между регионами GCP.

Процесс разбит на четыре шага:

  1. Получите подключение GCP для Private Service Connect.
  2. Создайте конечную точку сервиса.
  3. Добавьте идентификатор конечной точки в организацию ClickHouse Cloud.
  4. Добавьте идентификатор конечной точки в белый список сервисов.
примечание

В своих примерах ниже мы будем использовать:

  • Регион GCP: us-central1
  • Проект GCP (проект клиента GCP): my-gcp-project
  • Частный IP-адрес в проекте клиента GCP: 10.128.0.2
  • VPC в проекте клиента GCP: default

Примеры кода приведены ниже, чтобы показать, как настроить Private Service Connect внутри сервиса ClickHouse Cloud.

Перед тем как начать

Вам нужно будет получить информацию о вашем сервисе ClickHouse Cloud. Вы можете сделать это либо через консоль ClickHouse Cloud, либо через API ClickHouse. Если вы собираетесь использовать API ClickHouse, пожалуйста, установите следующие переменные окружения перед продолжением:

примечание
  • Вы можете получить свой ID организации из консоли ClickHouse (Организация -> Сведения об организации).
  • Вы можете создать новый ключ или использовать существующий.

Получите подключение GCP и DNS имя для Private Service Connect

Вариант 1: Консоль ClickHouse Cloud

В консоли ClickHouse Cloud откройте сервис, который вы хотите подключить через Private Service Connect, затем откройте меню Настройки. Нажмите кнопку Настроить частную конечную точку. Обратите внимание на Имя сервиса (endpointServiceId) и Имя DNS (privateDnsHostname). Вы будете использовать их на следующих шагах.

Частные Конечные Точки

Вариант 2: API

примечание

Для выполнения этого шага необходимо развернуть как минимум один экземпляр в регионе.

Получите подключение GCP и DNS имя для Private Service Connect:

Запишите endpointServiceId и privateDnsHostname. Вы будете использовать их на следующих шагах.

Создайте конечную точку сервиса

В этом разделе мы собираемся создать конечную точку сервиса.

Добавление частного соединения сервиса

Сначала мы создадим частное соединение сервиса.

Вариант 1: Используя консоль Google Cloud

В консоли Google Cloud перейдите в Сетевые службы -> Private Service Connect.

Открыть Private Service Connect в консоли Google Cloud

Откройте диалог создания Private Service Connect, нажав на кнопку Подключить конечную точку.

  • Цель: выберите Опубликованная служба
  • Целевая служба: используйте endpointServiceId из шага Получите подключение GCP для Private Service Connect.
  • Имя конечной точки: установите имя для PSC Имя конечной точки.
  • Сеть/Подсеть/IP-адрес: выберите сеть, которую вы хотите использовать для соединения. Вам нужно будет создать IP-адрес или использовать существующий для конечной точки Private Service Connect. В нашем примере мы предварительно создали адрес с именем your-ip-address и назначили IP-адрес 10.128.0.2.
  • Чтобы сделать конечную точку доступной из любого региона, вы можете активировать флажок Включить глобальный доступ.
Включить глобальный доступ для Private Service Connect

Чтобы создать конечную точку PSC, используйте кнопку ДОБАВИТЬ КОНЕЧНУЮ ТОЧКУ.

Столбец Статус изменится с Ожидание на Принято, как только соединение будет одобрено.

Скопировать ID соединения PSC

Скопируйте ID соединения PSC, мы будем использовать его как ID конечной точки на следующих шагах.

Вариант 2: Используя Terraform

примечание

TARGET - Используйте endpointServiceId из Получите подключение GCP для Private Service Connect шага

Настройка DNS

Представлены два варианта, использование консоли Google Cloud и использование CLI gcloud.

Вариант 1: Используя консоль Google Cloud

  • Создайте частную DNS зону из Поддерживаемых регионов.
  • Откройте Сетевые службы -> Cloud DNS.
  • Выберите Создать зону:
Создать DNS зону для PSC

В диалоговом окне типа зоны установите:

  • Тип зоны: Частная
  • Имя зоны: введите соответствующее имя зоны.
  • Имя DNS: используйте столбец Частный DNS домен из таблицы Поддерживаемые регионы для вашего региона.
  • Сети: прикрепите DNS зону к сетям, которые вы планируете использовать для подключений к ClickHouse Cloud через PSC.
Выбор типа частной DNS зоны

Создание DNS записи в частной DNS зоне

Укажите ее на IP-адрес, созданный на шаге Добавление частного соединения сервиса

Создание DNS записи для PSC

Вариант 2: Используя CLI gcloud

Создание DNS зоны

Создание DNS записи

примечание

DNS_RECORD - используйте privateDnsHostname из Получите подключение GCP для Private Service Connect шага

Вариант 3: Используя Terraform

примечание

DNS_NAME - Используйте privateDnsHostname из Получите подключение GCP для Private Service Connect шага

Проверьте настройку DNS

DNS_RECORD - используйте privateDnsHostname из Получите подключение GCP для Private Service Connect шага

Добавить ID конечной точки в организацию ClickHouse Cloud

Вариант 1: Консоль ClickHouse Cloud

Чтобы добавить конечную точку в вашу организацию, перейдите к шагу Добавить ID конечной точки в белый список сервисов. Добавление ID соединения PSC с использованием консоли ClickHouse Cloud в белый список сервисов автоматически добавляет его в организацию.

Чтобы удалить конечную точку, откройте Сведения об организации -> Частные конечные точки и нажмите кнопку удаления, чтобы удалить конечную точку.

Удалить частную конечную точку из ClickHouse Cloud

Вариант 2: API

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

Замените ENDPOINT_ID ниже значением из ID конечной точки из шага Добавление частного соединения сервиса

Чтобы добавить конечную точку, выполните:

Чтобы удалить конечную точку, выполните:

Добавьте/удалите частную конечную точку в организацию:

Добавить ID конечной точки в белый список сервисов

Вам необходимо добавить ID конечной точки в разрешенный список для каждого экземпляра, который должен быть доступен с использованием Private Service Connect.

примечание

Этот шаг не может быть выполнен для сервисов разработки.

Вариант 1: Консоль ClickHouse Cloud

В консоли ClickHouse Cloud откройте сервис, который вы хотите подключить через Private Service Connect, затем перейдите в Настройки. Введите ID конечной точки, полученный на шаге Добавление частного соединения сервиса. Нажмите Создать конечную точку.

примечание

Если вы хотите разрешить доступ из существующего соединения Private Service Connect, используйте выпадающее меню существующей конечной точки.

Фильтр для частных конечных точек

Вариант 2: API

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

Замените ENDPOINT_ID ниже значением из ID конечной точки из шага Добавление частного соединения сервиса

Выполните эту команду для каждого сервиса, который должен быть доступен с использованием Private Service Connect.

Чтобы добавить:

Чтобы удалить:

Доступ к экземпляру с использованием Private Service Connect

Каждый экземпляр с настроенными фильтрами Private Service Connect имеет две конечные точки: публичную и частную. Чтобы подключиться с использованием Private Service Connect, вам необходимо использовать частную конечную точку, смотрите endpointServiceId из шага Получите подключение GCP для Private Service Connect

примечание

Частное DNS имя доступно только из вашего VPC GCP. Не пытайтесь разрешить DNS хост с машины, находящейся за пределами VPC GCP.

Получение частного DNS имени

Вариант 1: Консоль ClickHouse Cloud

В консоли ClickHouse Cloud перейдите в Настройки. Нажмите на кнопку Настроить частную конечную точку. В открывшемся меню скопируйте Имя DNS.

Имя DNS частной конечной точки

Вариант 2: API

В этом примере подключение к xxxxxxx.yy-xxxxN.p.gcp.clickhouse.cloud будет маршрутизироваться на Private Service Connect. В то время как xxxxxxx.yy-xxxxN.gcp.clickhouse.cloud будет маршрутизироваться через интернет.

Устранение неполадок

Проверка настройки DNS

DNS_NAME - используйте privateDnsHostname из Получите подключение GCP для Private Service Connect шага

Сброс соединения соединителем

Проверка подключения

Если у вас возникли проблемы с подключением с использованием ссылки PSC, проверьте ваше соединение с помощью openssl. Убедитесь, что статус конечной точки Private Service Connect равен Принято:

OpenSSL должен быть в состоянии подключиться (см. CONNECTED в выводе). errno=104 ожидается.

DNS_NAME - используйте privateDnsHostname из Получите подключение GCP для Private Service Connect шага

Проверка фильтров конечной точки

REST API

Подключение к удаленной базе данных

Допустим, вы пытаетесь использовать функции таблиц MySQL или PostgreSQL в ClickHouse Cloud и подключиться к вашей базе данных, размещенной в GCP. GCP PSC не может быть использован для безопасного подключения к этой базе данных. PSC — это одностороннее, унидиерционное соединение. Оно позволяет вашей внутренней сети или VPC GCP безопасно подключаться к ClickHouse Cloud, но не позволяет ClickHouse Cloud подключаться к вашей внутренней сети.

Согласно документации GCP Private Service Connect:

Проектирование, ориентированное на услуги: Услуги производителей публикуются через балансировщики нагрузки, которые предоставляют единственный IP-адрес для сети потребителя VPC. Трафик потребителей, который получает доступ к услугам производителей, односторонний и может получать доступ только к IP-адресу сервиса, а не к целой сетевой сети VPC.

Для этого настройте правила брандмауэра VPC GCP, чтобы разрешить соединения от ClickHouse Cloud к вашему внутреннему/частному сервису базы данных. Проверьте стандартные исходящие IP-адреса для регионов ClickHouse Cloud, а также доступные статические IP-адреса.

Дополнительная информация

Для получения более подробной информации посетите cloud.google.com/vpc/docs/configure-private-service-connect-services.