GCP Private Service Connect
Private Service Connect
Private Service Connect (PSC) — это функция сетевого взаимодействия Google Cloud, которая позволяет пользователям получить доступ к управляемым сервисам приватно внутри их сети виртуального частного облака (VPC). Аналогично, она позволяет производителям управляемых услуг размещать эти сервисы в своих собственных отдельных сетях VPC и предлагать частное соединение своим пользователям.
Производители услуг публикуют свои приложения для пользователей, создавая 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:
- Регионы, использующие Глобальный доступ, должны принадлежать одному VPC.
- Глобальный доступ должен быть явно активирован на уровне PSC (обратитесь к скриншоту ниже).
- Убедитесь, что ваши настройки брандмауэра не блокируют доступ к PSC из других регионов.
- Обратите внимание, что вы можете понести расходы на передачу данных между регионами GCP.
Процесс разбит на четыре шага:
- Получите подключение GCP для Private Service Connect.
- Создайте конечную точку сервиса.
- Добавьте идентификатор конечной точки в организацию ClickHouse Cloud.
- Добавьте идентификатор конечной точки в белый список сервисов.
В своих примерах ниже мы будем использовать:
- Регион 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, нажав на кнопку Подключить конечную точку.
- Цель: выберите Опубликованная служба
- Целевая служба: используйте
endpointServiceId
из шага Получите подключение GCP для Private Service Connect. - Имя конечной точки: установите имя для PSC Имя конечной точки.
- Сеть/Подсеть/IP-адрес: выберите сеть, которую вы хотите использовать для соединения. Вам нужно будет создать IP-адрес или использовать существующий для конечной точки Private Service Connect. В нашем примере мы предварительно создали адрес с именем your-ip-address и назначили IP-адрес
10.128.0.2
. - Чтобы сделать конечную точку доступной из любого региона, вы можете активировать флажок Включить глобальный доступ.

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

Скопируйте ID соединения PSC, мы будем использовать его как ID конечной точки на следующих шагах.
Вариант 2: Используя Terraform
TARGET - Используйте endpointServiceId
из Получите подключение GCP для Private Service Connect шага
Настройка DNS
Представлены два варианта, использование консоли Google Cloud и использование CLI gcloud
.
Вариант 1: Используя консоль Google Cloud
- Создайте частную DNS зону из Поддерживаемых регионов.
- Откройте Сетевые службы -> Cloud DNS.
- Выберите Создать зону:
В диалоговом окне типа зоны установите:
- Тип зоны: Частная
- Имя зоны: введите соответствующее имя зоны.
- Имя DNS: используйте столбец Частный DNS домен из таблицы Поддерживаемые регионы для вашего региона.
- Сети: прикрепите DNS зону к сетям, которые вы планируете использовать для подключений к ClickHouse Cloud через PSC.

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

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

Вариант 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.

Вариант 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 шага
Сброс соединения соединителем
- Скорее всего, ID конечной точки не был добавлен в белый список сервисов. Вернитесь к шагу Добавить ID конечной точки в белый список сервисов.
Проверка подключения
Если у вас возникли проблемы с подключением с использованием ссылки 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.