Настройка Yandex Cloud DNS для доступа к кластеру Yandex Managed Service for ClickHouse® из других облачных сетей
Примечание
В регионе Казахстан доступна только зона доступности kz1-a.
В этом руководстве в качестве примера используется кластер Managed Service for ClickHouse®. Настройка доступности для других сервисов управляемых баз данных делается аналогично.
Ресурсные записи о кластерах Managed Service for ClickHouse® создаются в сервисных зонах DNS, которые работают в пределах одной облачной сети. Из-за этого клиенты, например виртуальные машины, которые находятся в другой облачной сети, не могут подключаться к хостам кластера по FQDN, даже если между облачными сетями настроена сетевая связность.
Чтобы клиенты из других облачных сетей могли подключаться к кластеру по FQDN, настройте общую DNS-зону в сервисе Yandex Cloud DNS:
Если созданные ресурсы вам больше не нужны, удалите их.
Необходимые платные ресурсы
- Плата за кластер Managed Service for ClickHouse®: использование выделенных хостам вычислительных ресурсов, объем хранилища и резервных копий (тарифы Managed Service for ClickHouse®).
- Плата за виртуальную машину: использование вычислительных ресурсов, хранилища, публичного IP-адреса и операционной системы (тарифы Yandex Compute Cloud).
- Плата за публичные DNS-запросы и зоны DNS (тарифы Cloud DNS).
Перед началом работы
-
Подготовьте пару SSH-ключей для подключения к виртуальным машинам.
-
Подготовьте инфраструктуру:
ВручнуюС помощью Terraform- Создайте две облачные сети с именами
mch-netиanother-net. - В каждой сети создайте подсеть.
- В сети
mch-netсоздайте кластер Managed Service for ClickHouse® любой подходящей конфигурации с хостами без публичного доступа. - (Опционально) В сети
mch-netсоздайте виртуальную машину на базе Linux с именемmch-net-vm. При создании укажите подготовленный ранее публичный SSH-ключ. - В сети
another-netсоздайте виртуальную машину на базе Linux с именемanother-net-vm. При создании укажите подготовленный ранее публичный SSH-ключ. - Настройте правила групп безопасности кластера и ВМ по инструкции.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
Скачайте в ту же рабочую директорию файл конфигурации nets-vm-mch.tf
.В этом файле описаны:
- сети;
- подсети;
- группы безопасности, необходимые для кластера Managed Service for ClickHouse® и виртуальных машин;
- виртуальные машины;
- кластер Managed Service for ClickHouse®;
- внутренняя зона DNS.
-
Укажите в файле
nets-vm-mch.tf:ch_dbname— имя базы данных в кластере Managed Service for ClickHouse®.ch_user— имя пользователя-администратора в кластере Managed Service for ClickHouse®.ch_password— пароль пользователя-администратора в кластере Managed Service for ClickHouse®.image_id— идентификатор публичного образа виртуальной машины. О том, как получить список доступных образов, смотрите в инструкции.vm_username— имя пользователя виртуальной машины.vm_ssh_key_path— абсолютный путь к публичному ключу для виртуальных машин, который вы подготовили ранее.create_optional_vm— параметр, который отвечает за создание виртуальной машины в той же сети, в которой расположен кластер. Если в дальнейшем потребуется проверить доступность кластера из той же сети, установите1.
-
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список планируемых изменений: ресурсы и/или выходные переменные. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. - Создайте две облачные сети с именами
-
(Опционально) Подключитесь по SSH к виртуальной машине
mch-net-vmи настройте подключение к кластеру черезclickhouse-client, чтобы убедиться, что группы безопасности настроены верно и подключение к кластеру по FQDN из той же облачной сети доступно. -
Настройте сетевую связность между облачными сетями
mch-netиanother-net, например, с помощью IPSec-шлюза. Другие способы настроить сетевую связность смотрите в разделе Руководства по работе с сетевой инфраструктурой в Yandex Cloud.
Создайте зону в Cloud DNS
-
Создайте зону DNS:
ВручнуюС помощью TerraformСоздайте внутреннюю зону DNS с адресом
mdb.yandexcloud.kz.по инструкции. В списке сетей укажите сетиmch-netиanother-net.-
Укажите в файле
nets-vm-mch.tfзначение1для параметраcreate_zone. -
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список планируемых изменений: ресурсы и/или выходные переменные. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
-
-
Проверьте, что в зоне DNS автоматически появилась запись для кластера:
- В консоли управления
выберите каталог, где находится зона DNS. - Перейдите
в сервис Cloud DNS. - Выберите ранее созданную зону.
- Убедитесь, что в списке записей есть запись вида:
c-<идентификатор_кластера>.rw.mdb.yandexcloud.kz..
- В консоли управления
Проверьте доступность кластера из другой облачной сети
- Подключитесь по SSH к виртуальной машине
another-net-vm. - Настройте подключение к кластеру через
clickhouse-clientи убедитесь, что подключение к кластеру из другой облачной сети по FQDN работает.
Удалите созданные ресурсы
Чтобы перестать платить за созданные ресурсы, удалите их:
-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy -
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc