Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Статический сайт в Object Storage
    • Сайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки с помощью Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки с помощью Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Создание сайта на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Сайт на базе 1С-Битрикс
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Публикация обновлений для игр с помощью Cloud CDN
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на OpenCart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Распознавание архива изображений в Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых ВМ
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка синхронизации часов с помощью NTP
    • Работа с группой ВМ с автомасштабированием
    • Масштабирование группы ВМ по расписанию
    • Автомасштабирование группы ВМ для обработки сообщений из очереди Message Queue
    • Обновление группы ВМ под нагрузкой
    • Передача логов с ВМ в Cloud Logging
    • Резервное копирование ВМ с помощью Hystax Acura Backup
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360 в Cloud DNS
    • Интеграция Cloud DNS и корпоративного сервиса DNS
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Запись логов балансировщика в PostgreSQL
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
  • Построение Data Platform
    • Все руководства
    • Миграция БД из стороннего кластера Apache Kafka® в Managed Service for Apache Kafka®
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse с помощью Data Transfer
    • Перенос данных между кластерами Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for YDB с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Debezium
    • Настройка Kafka Connect для работы с кластером Managed Service for Apache Kafka®
    • Управление схемами данных в Managed Service for Apache Kafka®
    • Использование Managed Schema Registry с Managed Service for Apache Kafka®
    • Использование Confluent Schema Registry с Managed Service for Apache Kafka®
    • Миграция базы данных из MySQL в ClickHouse с помощью Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Обмен данными между Managed Service for ClickHouse и Data Proc
    • Настройка Managed Service for ClickHouse для Graphite
    • Получение данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse с помощью Data Transfer
    • Получение данных из RabbitMQ в Managed Service for ClickHouse
    • Сохранение потока данных Data Streams в Managed Service for ClickHouse
    • Использование гибридного хранилища в Managed Service for ClickHouse
    • Шардирование таблиц Managed Service for ClickHouse
    • Настройка Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Настройка Cloud DNS для доступа к кластеру Managed Service for ClickHouse из других облачных сетей
    • Обмен данными между Managed Service for ClickHouse и Data Proc
    • Импорт данных из Managed Service for MySQL в Data Proc с помощью Sqoop
    • Импорт данных из Managed Service for PostgreSQL в Data Proc с помощью Sqoop
    • Использование скриптов инициализации для настройки GeeseFS в Data Proc
    • Миграция данных из стороннего кластера Elasticsearch в Managed Service for Elasticsearch с помощью Reindex API
    • Миграция коллекций из стороннего кластера MongoDB в Managed Service for MongoDB
    • Миграция данных в Managed Service for MongoDB
    • Шардирование коллекций MongoDB
    • Анализ производительности и оптимизация MongoDB
    • Миграция БД из стороннего кластера MySQL в кластер Managed Service for MySQL
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Синхронизация данных из стороннего кластера MySQL в Managed Service for MySQL с помощью Data Transfer
    • Миграция БД из Managed Service for MySQL в сторонний кластер MySQL
    • Миграция БД из Managed Service for MySQL в Object Storage с помощью Data Transfer
    • Импорт данных из Managed Service for MySQL в Data Proc с помощью Sqoop
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Debezium
    • Миграция БД из Managed Service for MySQL в Managed Service for YDB с помощью Data Transfer
    • Создание кластера PostgreSQL для «1С:Предприятия»
    • Анализ производительности и оптимизация Managed Service for PostgreSQL
    • Миграция БД из Managed Service for PostgreSQL
    • Миграция БД из стороннего кластера PostgreSQL в Managed Service for PostgreSQL
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Debezium
    • Импорт данных из Managed Service for PostgreSQL в Data Proc с помощью Sqoop
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for YDB с помощью Data Transfer
    • Миграция БД из Managed Service for PostgreSQL в Object Storage
    • Миграция БД из Greenplum® в ClickHouse
    • Миграция БД из Greenplum® в PostgreSQL
    • Миграция БД из стороннего кластера Redis в Managed Service for Redis
    • Использование кластера Managed Service for Redis в качестве хранилища сессий PHP
  • Продукты Microsoft в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая инфраструктура
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Настройки DHCP для работы с корпоративным DNS-сервером
    • Маршрутизация с помощью NAT-инстанса
    • Создание туннеля IPSec VPN
    • Установка виртуального роутера Cisco CSR 1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Создание и настройка шлюза UserGate в режиме прокси-сервера
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Настройка сети для Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Cloud Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью QL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Разработка навыка Алисы и сайта с авторизацией
  1. Построение Data Platform
  2. Настройка Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей

Настройка Yandex Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей

Статья создана
Yandex Cloud
,
улучшена
Dmitry A.
  • Перед началом работы
    • Назначьте роли
    • Создайте кластер
    • Создайте прочие ресурсы
    • Настройте маршрутизацию между облачными сетями
    • Проверьте доступность кластера (необязательный шаг)
  • Создайте зону в Yandex Cloud DNS
  • Обеспечьте миграцию DNS-записей в зону
  • Проверьте доступность кластера
  • Удалите созданные ресурсы

Клиенты (например, виртуальные машины), которые находятся в той же облачной сети, что и кластер, могут обращаться к хостам кластера по их полному доменному имени (Fully Qualified Domain Name, FQDN). Однако, если клиенты находятся в другой облачной сети, то эта возможность станет недоступна. Это происходит потому, что нужные сервисные зоны DNS создаются автоматически и обеспечивают возможность разрешения имен только в пределах одной облачной сети.

Сервис Yandex Cloud DNS позволяет настроить DNS-зону, общую сразу для нескольких облачных сетей. Это даст возможность обращаться к хостам кластера по их FQDN, даже если клиент и кластер находятся в разных облачных сетях.

Важно

Изнутри облачных сетей, для которых создана общая DNS-зона, станут недоступны по FQDN хосты кластера с включенным публичным доступом. Однако такие хосты будут по-прежнему доступны по их FQDN из интернета.

Чтобы настроить общую DNS-зону:

  1. Создайте зону в Yandex Cloud DNS.
  2. Обеспечьте миграцию DNS-записей в зону.
  3. Проверьте доступность кластера.

Если созданные ресурсы вам больше не нужны, удалите их.

Далее будет приведен пример, в котором:

  1. В облачной сети cluster-net размещаются кластер и виртуальная машина cluster-vm.
  2. Создается новая облачная сеть vm-net с виртуальной машиной other-vm.
  3. Проверяется доступность кластера с этих виртуальных машин.
  4. Создается DNS-зона vpc-peering-zone и проводится миграция.
  5. Повторно проверяется доступность кластера с этих виртуальных машин.

Перед началом работы

Назначьте роли

Убедитесь, что у вас есть права для работы с облачными сетями в каталогах, где будут располагаться сети cluster-net и vm-net.

У вас должна быть одна из следующих ролей:

  • admin,
  • editor,
  • vpc.admin.

О том, как назначить роль, см. в документации Yandex Identity and Access Management.

Создайте кластер

  1. В командной строке перейдите в каталог, в котором будут расположены конфигурационные файлы Terraform с планом инфраструктуры примера. Если такой директории нет — создайте ее.

  2. Создайте кластер из нескольких хостов с помощью Terraform, следуя примерам для нужного кластера:

    • Yandex Managed Service for ClickHouse

Создайте прочие ресурсы

  1. Опишите новую облачную сеть vm-net с подсетью vm-subnet-ru-central1-a: CIDR 172.17.1.0/24, зона доступности ru-central1-a. Для этого добавьте в конфигурационный файл networks.tf следующие строки:

    networks.tf
    resource "yandex_vpc_network" "vm-net" { name = "vm-net" }
    
    resource "yandex_vpc_subnet" "vm-subnet-a" {
      name           = "vm-subnet-ru-central1-a"
      zone           = "ru-central1-a"
      network_id     = yandex_vpc_network.vm-net.id
      v4_cidr_blocks = ["172.17.1.0/24"]
    }
    
  2. Опишите группы безопасности:

    • Дополнительную группу безопасности cluster-vm-sg в сети cluster-net для виртуальной машины cluster-vm.
    • Группу безопасности по умолчанию other-vm-sg в сети vm-net для виртуальной машины other-vm.

    Для этого добавьте в конфигурационный файл security-groups.tf следующие строки:

    security-groups.tf
    resource "yandex_vpc_security_group" "cluster-vm-sg" {
      name       = "cluster-vm-sg"
      network_id = yandex_vpc_network.cluster-net.id
    
      ingress {
        description    = "Allow any ingress traffic"
        protocol       = "ANY"
        v4_cidr_blocks = ["0.0.0.0/0"]
      }
    
      egress {
        description    = "Allow any egress traffic"
        protocol       = "ANY"
        v4_cidr_blocks = ["0.0.0.0/0"]
      }
    }
    
    resource "yandex_vpc_default_security_group" "other-vm-sg" {
      network_id = yandex_vpc_network.vm-net.id
    
      ingress {
        description    = "Allow any ingress traffic"
        protocol       = "ANY"
        v4_cidr_blocks = ["0.0.0.0/0"]
      }
    
      egress {
        description    = "Allow any egress traffic"
        protocol       = "ANY"
        v4_cidr_blocks = ["0.0.0.0/0"]
      }
    }
    

    Важно

    Приведенные выше группы разрешают прохождение любого трафика в любом направлении и используются в демонстрационных целях. Это позволяет устанавливать на виртуальные машины необходимые для подключения утилиты и подключаться к кластеру.

    Для реальных задач настройте группы безопасности так, чтобы они разрешали только необходимый трафик.

  3. Опишите виртуальные машины, которые будут использоваться при процедуре миграции и при проверке работы DNS:

    • cluster-vm: в облачной сети cluster-net (подсеть cluster-subnet-ru-central1-a), с группой безопасности cluster-vm-sg.
    • other-vm: в облачной сети vm-net (подсеть vm-subnet-ru-central1-a), с группой безопасности other-vm-sg.

    Для этого создайте конфигурационный файл vms.tf с описанием виртуальных машин.

    В этот конфигурационный файл также добавьте открытые части SSH-ключей, чтобы можно было подключаться к виртуальным машинам по SSH.

    vms.tf
    resource "yandex_compute_instance" "cluster-vm" {
      name        = "cluster-vm"
      platform_id = "standard-v3"
      zone        = "ru-central1-a"
    
      resources {
        cores  = 2
        memory = 2
      }
    
      boot_disk {
        initialize_params {
          image_id = "fd81hgrcv6lsnkremf32"
        }
      }
    
      network_interface {
        subnet_id          = yandex_vpc_subnet.cluster-subnet-a.id
        security_group_ids = [yandex_vpc_security_group.cluster-vm-sg.id]
        nat                = true
      }
    
      metadata = {
        ssh-keys = "<любое имя пользователя>:<содержимое SSH-ключа>"
      }
    }
    
    resource "yandex_compute_instance" "other-vm" {
      name        = "other-vm"
      platform_id = "standard-v3"
      zone        = "ru-central1-a"
    
      resources {
        cores  = 2
        memory = 2
      }
    
      boot_disk {
        initialize_params {
          image_id = "fd81hgrcv6lsnkremf32"
        }
      }
    
      network_interface {
        subnet_id          = yandex_vpc_subnet.vm-subnet-a.id
        security_group_ids = [yandex_vpc_default_security_group.other-vm-sg.id]
        nat                = true
      }
    
      metadata = {
        ssh-keys = "<любое имя пользователя>:<содержимое SSH-ключа>"
      }
    }
    

    Подробнее процедура создания виртуальной машины описана в документации Yandex Compute Cloud.

  4. Проверьте корректность файлов конфигурации Terraform:

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  5. Примените сделанные изменения:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Настройте маршрутизацию между облачными сетями

Настройте маршрутизацию между облачными сетями cluster-net и vm-net таким образом, чтобы любая подсеть одной сети была доступна из любой подсети другой сети.

Существует несколько способов организовать такую маршрутизацию, см. сценарии сетевой маршрутизации. Например, можно создать туннель IPSec.

Проверьте доступность кластера (необязательный шаг)

  1. Подключитесь к виртуальным машинам cluster-vm и other-vm по SSH.

    Важно

    • Если вы создали виртуальные машины с Ubuntu 20.04 LTS из образа fd81hgrcv6lsnkremf32 Cloud Marketplace, то используйте имя пользователя ubuntu при подключении.

    • Если вы использовали другой образ, то имя пользователя может отличаться. О том, как узнать это имя, см. в документации Yandex Compute Cloud.

  2. Попытайтесь подключиться к кластеру:

    • Из виртуальной машины cluster-vm, которая находится в той же облачной сети, что и кластер.

      Подключение будет успешным.

    • Из виртуальной машины other-vm, которая находится в другой облачной сети.

      Подключение будет неуспешным, т. к. будет невозможно узнать IP-адрес хоста кластера по FQDN из другой сети. Однако, вы можете узнать IP-адрес хоста кластера и подключиться к нему по IP-адресу: такое подключение будет успешным.

      Далее будет показано, как с помощью настройки общей DNS-зоны сохранить возможность подключения к кластеру из другой облачной сети с использованием FQDN.

    Инструкции по подключению к кластеру:

    • Yandex Managed Service for ClickHouse

Создайте зону в Yandex Cloud DNS

Чтобы получить возможность разрешать FQDN кластера в IP-адреса из других облачных сетей, нужно создать DNS-зону, которая будет включать в себя необходимые облачные сети.

Создайте внутреннюю зону vpc-peering-zone, которая обеспечит возможность разрешения FQDN кластера из облачных сетей vm-net и cluster-net:

  1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры примера.

  2. Создайте конфигурационный файл dns.tf с описанием зоны:

    dns.tf
    resource "yandex_dns_zone" "vpc-peering-zone" {
      name             = "vpc-peering-zone"
      zone             = "mdb.yandexcloud.net."
      public           = false
      private_networks = [yandex_vpc_network.vm-net.id, yandex_vpc_network.cluster-net.id]
    }
    
  3. Проверьте корректность файлов конфигурации Terraform:

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Примените сделанные изменения:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Обеспечьте миграцию DNS-записей в зону

DNS-записи для существующего до создания зоны кластера не мигрируют автоматически в эту зону.

Чтобы DNS-записи для такого кластера мигрировали в новую зону, необходимо, чтобы поменялась хотя бы одна DNS-запись во внутренних зонах облачных сетей cluster-net и vm-net.

Для этого можно, например, создать по одной виртуальной машине в каждой облачной сети. Эти виртуальные машины можно удалить после миграции DNS-записей.

Но, поскольку ранее уже были созданы виртуальные машины cluster-vm и other-vm, для достижения желаемого эффекта достаточно остановить и затем запустить их.

Когда процесс миграции будет завершен, в зоне с именем vpc-peering-zone появятся DNS-записи кластера.

Совет

Перед миграцией DNS-записей production-кластеров выполните миграцию записей в тестовом каталоге с тестовым кластером. Это позволит убедиться в том, что процесс миграции происходит без ошибок.

Проверьте доступность кластера

  1. Подключитесь к виртуальным машинам cluster-vm и other-vm по SSH.

    Важно

    • Если вы создали виртуальные машины с Ubuntu 20.04 LTS из образа fd81hgrcv6lsnkremf32 Cloud Marketplace, то используйте имя пользователя ubuntu при подключении.

    • Если вы использовали другой образ, то имя пользователя может отличаться. О том, как узнать это имя, см. в документации Yandex Compute Cloud.

  2. Попытайтесь подключиться к кластеру:

    • Из виртуальной машины cluster-vm, которая находится в той же облачной сети, что и кластер.
    • Из виртуальной машины other-vm, которая находится в другой облачной сети.

    Оба подключения должны выполниться успешно.

    Инструкции по подключению к кластеру:

    • Yandex Managed Service for ClickHouse

Удалите созданные ресурсы

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

  1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры примера.

  2. Выполните команду:

    terraform destroy
    
  3. Введите слово yes и нажмите Enter.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Назначьте роли
  • Создайте кластер
  • Создайте прочие ресурсы
  • Настройте маршрутизацию между облачными сетями
  • Проверьте доступность кластера (необязательный шаг)
  • Создайте зону в Yandex Cloud DNS
  • Обеспечьте миграцию DNS-записей в зону
  • Проверьте доступность кластера
  • Удалите созданные ресурсы