Настройка Yandex Cloud DNS для доступа к кластеру Managed Service for ClickHouse® из других облачных сетей
В этом руководстве в качестве примера используется кластер Managed Service for ClickHouse®. Настройка доступности для других сервисов управляемых баз данных делается аналогично.
Ресурсные записи о кластерах Managed Service for ClickHouse® создаются в сервисных зонах DNS, которые работают в пределах одной облачной сети. Из-за этого клиенты, например виртуальные машины, которые находятся в другой облачной сети, не могут подключаться к хостам кластера по FQDN, даже если между облачными сетями настроена сетевая связность.
Чтобы клиенты из других облачных сетей могли подключаться к кластеру по FQDN, настройте общую DNS-зону в сервисе Yandex 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 init
в директории с конфигурационными файлами. Эта команда инициализирует провайдер, указанный в конфигурационном файле, и позволяет работать с ресурсами и источниками данных провайдера. -
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
- Создайте две облачные сети с именами
-
(Опционально) Подключитесь по SSH к виртуальной машине
mch-net-vm
и настройте подключение к кластеру черезclickhouse-client
, чтобы убедиться, что группы безопасности настроены верно и подключение к кластеру по FQDN из той же облачной сети доступно. -
Настройте сетевую связность между облачными сетями
mch-net
иanother-net
, например, с помощью IPSec-шлюза. Другие способы настроить сетевую связность см. в разделе Руководства по работе с сетевой инфраструктурой в Yandex Cloud.
Создайте зону в Cloud DNS
-
Создайте зону DNS:
ВручнуюС помощью TerraformСоздайте внутреннюю зону DNS с адресом
mdb.yandexcloud.net.
по инструкции. В списке сетей укажите сетиmch-net
иanother-net
.-
Укажите в файле
nets-vm-mch.tf
значение1
для параметраcreate_zone
. -
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
-
Проверьте, что в зоне DNS автоматически появилась запись для кластера:
- В консоли управления
выберите каталог, где находится зона DNS. - Выберите сервис Cloud DNS.
- Выберите зону из списка.
- Убедитесь, что в списке записей есть запись вида:
c-<идентификатор_кластера>.rw.mdb.yandexcloud.net.
.
- В консоли управления
Проверьте доступность кластера из другой облачной сети
- Подключитесь по SSH к виртуальной машине
another-net-vm
. - Настройте подключение к кластеру через
clickhouse-client
и убедитесь, что подключение к кластеру из другой облачной сети по FQDN работает.
Удалите созданные ресурсы
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy
-
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc