Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Elasticsearch
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Остановка и запуск кластера
      • Управление хостами
      • Миграция хостов в другую зону доступности
      • Управление резервными копиями
      • Настройка доступа к Object Storage
      • Удаление кластера
    • Управление пользователями
  • Управление доступом
  • Правила тарификации
  • Справочник CLI
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Создать кластер
  • Примеры
  • Создание кластера с одним хостом
  1. Пошаговые инструкции
  2. Кластеры
  3. Создание кластера

Создание кластера Elasticsearch

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Создать кластер
  • Примеры
    • Создание кластера с одним хостом

Важно

Сервис Yandex Managed Service for Elasticsearch недоступен с 11 апреля 2024 года.

Вы можете создать кластер OpenSearch в Yandex Cloud в качестве альтернативы Elasticsearch.

Кластер Managed Service for Elasticsearch — это группа из нескольких связанных друг с другом хостов Elasticsearch. Кластер Managed Service for Elasticsearch обеспечивает высокую производительность поиска путем распределения задач поиска и индексации по всем хостам кластера с ролью Data node. Подробнее о ролях в кластере Managed Service for Elasticsearch см. в разделе Роли хостов.

Примечание

  • Количество хостов с ролью Data node, которые можно создать вместе с кластером Elasticsearch, зависит от выбранного типа дисков и класса хостов.
  • Доступные типы дисков зависят от выбранного класса хостов.

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

Примечание

С 13 июня 2022 года прекращена поддержка редакции Gold в кластерах Managed Service for Elasticsearch. Создать новый кластер с этой редакцией невозможно.

При создании кластера Managed Service for Elasticsearch отдельно указываются параметры для хостов, выполняющих роль Master node, и отдельно — для хостов, выполняющих роль Data node.

Допускается использовать только хосты с ролью Data node и не создавать выделенные хосты для роли Master node: в этом случае хосты с ролью Data node будут совмещать две роли.

Консоль управления
CLI
Terraform
API

Чтобы создать кластер Managed Service for Elasticsearch:

  1. В консоли управления выберите каталог, в котором нужно создать кластер Managed Service for Elasticsearch.

  2. Выберите сервис Managed Service for Elasticsearch.

  3. Нажмите кнопку Создать кластер.

  4. В блоке Базовые параметры:

    1. Введите имя кластера Managed Service for Elasticsearch и его описание. Имя кластера Managed Service for Elasticsearch должно быть уникальным в рамках каталога.

    2. Выберите окружение, в котором нужно создать кластер Managed Service for Elasticsearch (после создания кластера окружение изменить невозможно):

      • PRODUCTION — для стабильных версий приложений.
      • PRESTABLE — для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
    3. Выберите из списка версию Elasticsearch.

    4. Выберите из списка редакцию Elasticsearch.

    5. Выберите сервисный аккаунт с ролью storage.editor из выпадающего списка или создайте новый, если вы планируете использовать данные из бакета Object Storage с ограниченным доступом. Подробнее о настройке сервисного аккаунта см. в разделе Настройка доступа к Object Storage.

  5. В блоке Сетевые настройки выберите облачную сеть для размещения кластера Managed Service for Elasticsearch и группы безопасности для сетевого трафика кластера. Может потребоваться дополнительная настройка групп безопасности для того, чтобы можно было подключаться к кластеру Managed Service for Elasticsearch.

  6. В блоке Пользователь укажите пароль для пользователя admin.

    Это специальный пользователь, который необходим для управления кластером и не может быть удален. Он наделен ролью superuser и может выполнять любые действия с кластером.

    Совет

    Для выполнения повседневных задач рекомендуется создать отдельных пользователей. Подробнее см. в разделе Управление пользователями.

  7. Задайте конфигурацию хостов с ролью Data node, выбрав вкладку Data node:

    1. В блоке Класс хоста выберите платформу, тип хостов и класс хостов.

      Класс хостов определяет технические характеристики виртуальных машин, на которых будут развернуты ноды Elasticsearch. Все доступные варианты перечислены в разделе Классы хостов. При изменении класса хостов для кластера Managed Service for Elasticsearch меняются характеристики всех уже созданных экземпляров.

    2. В блоке Хранилище:

      • Выберите тип диска.

        От выбранного типа зависит, с каким шагом можно будет изменить размер диска:

        • Сетевые HDD- и SSD-диски — с шагом 1 ГБ.
        • Локальные SSD-диски:
          • для платформы Intel Cascade Lake — с шагом 100 ГБ;
          • для платформы Intel Ice Lake — с шагом 368 ГБ.
        • Нереплицируемые SSD-диски — с шагом 93 ГБ.
      • Выберите объем хранилища, который будет использоваться для данных.

    3. В блоке Хосты укажите конфигурацию хостов, создаваемых вместе с кластером Managed Service for Elasticsearch:

      1. Чтобы добавить хост, нажмите кнопку Добавить хост.

      2. Чтобы изменить добавленный хост, наведите указатель на строку хоста и нажмите значок .

        При изменении хоста можно:

        • Выбрать зону доступности и подсеть.

        • Включить публичный доступ.

          Важно

          Включить публичный доступ к хосту после создания кластера Managed Service for Elasticsearch невозможно.

          Если для хоста Elasticsearch с ролью Data node включен публичный доступ, к этому хосту или расположенной на нем Kibana можно подключиться через интернет. Подробнее см. в разделе Подключение к кластеру.

          Совет

          Kibana можно воспользоваться, даже если публичный доступ к хостам запросить невозможно (например, из соображений безопасности). Для этого настройте проксирование соединений через виртуальную машину в Yandex Compute Cloud, которая находится в той же сети, что и кластер. Подробнее см. в разделе Подключение к кластеру.

  8. При необходимости задайте конфигурацию хостов с ролью Master node, выбрав вкладку Master node:

    1. В блоке Класс хоста выберите платформу, тип хостов и класс хостов.

    2. В блоке Хранилище настройте хранилище по аналогии с хостами с ролью Data node.

    3. В блоке Хосты нажмите кнопку Добавить хосты. Будут добавлены три хоста. Чтобы изменить один из добавленных хостов, наведите указатель на строку хоста и нажмите значок .

      При изменении хоста можно:

      • Выбрать зону доступности и подсеть.

      • Включить публичный доступ.

        Совет

        Не рекомендуется включать публичный доступ для хостов с ролью Master node, это может быть небезопасно.

  9. При необходимости задайте дополнительные настройки кластера Managed Service for Elasticsearch:

    • Окно обслуживания — настройки времени технического обслуживания:

      • Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
      • Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.

      Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.

    • Защита от удаления — управляет защитой кластера от непреднамеренного удаления.

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

  10. При необходимости задайте настройки СУБД.

  11. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать кластер Managed Service for Elasticsearch:

  1. Проверьте, есть ли в каталоге подсети для хостов кластера Managed Service for Elasticsearch:

    yc vpc subnet list
    

    Если ни одной подсети в каталоге нет, создайте нужные подсети в сервисе Yandex Virtual Private Cloud.

  2. Посмотрите описание команды CLI для создания кластера Managed Service for Elasticsearch:

    yc managed-elasticsearch cluster create --help
    
  3. Укажите параметры кластера Managed Service for Elasticsearch в команде создания (в примере приведены не все параметры):

    yc managed-elasticsearch cluster create \
      --name <имя_кластера> \
      --environment <окружение> \
      --network-name <имя_сети> \
      --host zone-id=<зона_доступности>,subnet-id=<идентификатор_подсети>,assign-public-ip=<публичный_доступ>,type=<тип_хоста> \
      --datanode-resource-preset <класс_хостов_Data_node> \
      --datanode-disk-size <размер_хранилища_ГБ> \
      --datanode-disk-type <network-hdd|network-ssd|network-ssd-nonreplicated|local-ssd> \
      --masternode-resource-preset <класс_хостов_Master_node> \
      --masternode-disk-size <размер_хранилища_ГБ_Master_node> \
      --masternode-disk-type <network-ssd> \
      --security-group-ids <список_идентификаторов_групп_безопасности> \
      --version <версия_Elasticsearch> \
      --edition <редакция_Elasticsearch> \
      --admin-password <пароль_пользователя_admin> \
      --plugins=<имя_плагина_1>,...,<имя_плагина_N> \
      --deletion-protection=<защита_от_удаления>
    

    Где:

    • --environment — окружение: prestable или production.
    • --host — параметры хоста:
      • zone-id — зона доступности.
      • subnet-id — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
      • assign-public-ip — доступность хоста из интернета по публичному IP-адресу: true или false.
      • type — роль хоста: datanode или masternode.
    • --datanode-resource-preset — класс хостов c ролью Data node.
    • --datanode-disk-size — размер хранилища в гигабайтах для хостов с ролью Data node.
    • --datanode-disk-type — тип хранилища для хостов с ролью Data node.
    • --masternode-resource-preset — класс хостов с ролью Master node.
    • --masternode-disk-size — размер хранилища в гигабайтах для хостов с ролью Master node.
    • --masternode-disk-type — тип хранилища для хостов с ролью Master node.
    • --version (опционально) — версия Elasticsearch: 7.10, 7.11, 7.12, 7.13, 7.14, 7.15, 7.16 или 7.17.
    • --edition (опционально) — редакция Elasticsearch: basic или platinum.
    • --deletion-protection — защита от удаления кластера: true или false.

    Идентификатор подсети subnet-id необходимо указывать, если в выбранной зоне доступности больше одной подсети.

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

    Примечание

    По умолчанию при создании кластера Managed Service for Elasticsearch устанавливается режим технического обслуживания anytime — в любое время. Вы можете установить конкретное время обслуживания при изменении настроек кластера Managed Service for Elasticsearch.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать кластер Managed Service for Elasticsearch:

  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

    • Кластер базы данных — описание кластера Managed Service for Elasticsearch и его хостов.

    • Сеть — описание облачной сети, в которой будет расположен кластер. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.

    • Подсети — описание подсетей, к которым будут подключены хосты кластера. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.

    Пример структуры конфигурационного файла:

    resource "yandex_mdb_elasticsearch_cluster" "<имя_кластера>" {
      name                = "<имя_кластера>"
      environment         = "<окружение>"
      network_id          = "<идентификатор_сети>"
      deletion_protection = "<защита_от_удаления>"
    
      config {
        version = "<версия_Elasticsearch>"
        edition = "<редакция_Elasticsearch>"
    
        admin_password = "<пароль_пользователя-администратора>"
    
        data_node {
          resources {
            resource_preset_id = "<класс_хоста>"
            disk_type_id       = "<тип_диска>"
            disk_size          = <размер_хранилища_ГБ>
          }
        }
    
        master_node {
          resources {
            resource_preset_id = "<класс_хоста>"
            disk_type_id       = "<тип_диска>"
            disk_size          = <размер_хранилища_ГБ>
          }
        }
    
        plugins = [ "<список_имен_плагинов>" ]
    
      }
    
      security_group_ids = [ "<список_идентификаторов_групп_безопасности>" ]
    
      host {
        name             = "<имя_хоста>"
        zone             = "<зона_доступности>"
        type             = "<роль_хоста>"
        assign_public_ip = <публичный_доступ>
        subnet_id        = "<идентификатор_подсети>"
      }
    }
    
    resource "yandex_vpc_network" "<имя_сети>" { name = "<имя_сети>" }
    
    resource "yandex_vpc_subnet" "<имя_подсети>" {
      name           = "<имя_подсети>"
      zone           = "<зона_доступности>"
      network_id     = "<идентификатор_сети>"
      v4_cidr_blocks = ["<диапазон>"]
    }
    

    Где:

    • environment — окружение: PRESTABLE или PRODUCTION.
    • deletion_protection — защита от удаления: true или false.
    • version (опционально) — версия Elasticsearch: 7.10, 7.11, 7.12, 7.13, 7.14, 7.15, 7.16 или 7.17.
    • edition (опционально) — редакция Elasticsearch: basic или platinum.
    • host — параметры хоста:
      • name — имя хоста.
      • zone — зона доступности.
      • type — роль хоста: DATA_NODE или MASTER_NODE.
      • assign_public_ip — публичный доступ к хосту: true или false.
      • subnet-id — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.

    Включенная защита от удаления кластера Managed Service for Elasticsearch не защищает содержимое БД.

    1. Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок maintenance_window:

      resource "yandex_mdb_elasticsearch_cluster" "<имя_кластера>" {
        ...
        maintenance_window {
          type = <тип_технического_обслуживания>
          day  = <день_недели>
          hour = <час_дня>
        }
        ...
      }
      

      Где:

      • type — тип технического обслуживания. Принимает значения:
        • ANYTIME — в любое время.
        • WEEKLY — по расписанию.
      • day — день недели для типа WEEKLY в формате DDD. Например, MON.
      • hour — час дня по UTC для типа WEEKLY в формате HH. Например, 21.

    Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера Terraform.

  2. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  3. Создайте кластер Managed Service for Elasticsearch.

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

      terraform plan
      

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

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

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

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

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

    Ограничения по времени

    Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for Elasticsearch:

    • создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
    • изменение — 60 минут;
    • удаление — 15 минут.

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

    Как изменить эти ограничения?

    Добавьте к описанию кластера блок timeouts, например:

    resource "yandex_mdb_elasticsearch_cluster" "<имя_кластера>" {
      ...
      timeouts {
        create = "1h30m" # Полтора часа
        update = "2h"    # 2 часа
        delete = "30m"   # 30 минут
      }
    }
    

Чтобы создать кластер Managed Service for Elasticsearch, воспользуйтесь методом REST API create для ресурса Cluster или вызовом gRPC API ClusterService/Create и передайте в запросе:

  • Идентификатор каталога, в котором должен быть размещен кластер Managed Service for Elasticsearch, в параметре folderId.

  • Имя кластера Managed Service for Elasticsearch в параметре name.

  • Версию Elasticsearch в параметре configSpec.version.

  • Редакцию Elasticsearch в параметре configSpec.edition.

  • Конфигурацию кластера Managed Service for Elasticsearch в параметре configSpec, в том числе:

    • Класс хостов с ролью Master node в параметре configSpec.elasticsearchSpec.masterNode.resources. Чтобы не создавать выделенных хостов с ролью Master node — не задавайте значения для группы параметров configSpec.elasticsearchSpec.masterNode.
    • Класс хостов с ролью Data node в параметре configSpec.elasticsearchSpec.dataNode.resources.
  • Конфигурацию хостов кластера Managed Service for Elasticsearch в одном или нескольких параметрах hostSpecs.

  • Идентификатор сети в параметре networkId.

  • Идентификаторы групп безопасности в параметре securityGroupIds.

  • Список плагинов в параметре configSpec.elasticsearchSpec.plugins.

  • Настройки времени технического обслуживания (в т. ч. для выключенных кластеров Managed Service for Elasticsearch) в параметре maintenanceWindow.

  • Настройки доступа из Yandex Data Transfer в параметре configSpec.access.dataTransfer.

Важно

Если вы указали идентификаторы групп безопасности при создании кластера Managed Service for Elasticsearch, то для подключения к нему может потребоваться дополнительная настройка групп безопасности.

ПримерыПримеры

Создание кластера с одним хостомСоздание кластера с одним хостом

CLI
Terraform

Чтобы создать кластер Managed Service for Elasticsearch с одним хостом, передайте один параметр --host.

Создайте кластер Managed Service for Elasticsearch с тестовыми характеристиками:

  • Имя my-es-clstr.

  • Версия 7.17.

  • Редакция Platinum.

  • Окружение PRODUCTION.

  • Сеть default.

  • Группа безопасности с идентификатором enpp2s8l3irh********.

  • Один публично доступный хост с ролью Data node класса s2.micro в подсети b0rcctk2rvtr********, в зоне доступности ru-central1-a.

  • Хранилище на сетевых SSD-дисках (network-ssd) объемом 20 ГБ.

  • Пароль esadminpwd для пользователя admin.

  • Защита от случайного удаления кластера Managed Service for Elasticsearch.

Выполните следующую команду:

yc managed-elasticsearch cluster create \
  --name my-es-clstr \
  --environment production \
  --network-name default \
  --host zone-id=ru-central1-a,assign-public-ip=true,type=datanode \
  --datanode-resource-preset s2.micro \
  --datanode-disk-type=network-ssd \
  --datanode-disk-size=20 \
  --admin-password=esadminpwd \
  --security-group-ids enpp2s8l3irh******** \
  --version 7.17 \
  --edition platinum \
  --deletion-protection=true

Создайте кластер Managed Service for Elasticsearch. Конфигурационный файл для кластера Managed Service for Elasticsearch выглядит так:

resource "yandex_mdb_elasticsearch_cluster" "my-es-clstr" {
  name                = "my-es-clstr"
  environment         = "PRODUCTION"
  network_id          = yandex_vpc_network.mynet.id
  deletion_protection = "true"

  config {
    edition = "basic"
    version = "7.17"

    admin_password = "esadminpwd"

    data_node {
      resources {
        resource_preset_id = "s2.micro"
        disk_type_id       = "network-ssd"
        disk_size          = 20
      }
    }

  }

  security_group_ids = [ yandex_vpc_security_group.es-sg.id ]

  host {
    name             = "node"
    zone             = "ru-central1-a"
    type             = "DATA_NODE"
    assign_public_ip = true
    subnet_id        = yandex_vpc_subnet.mysubnet.id
  }

}

resource "yandex_vpc_network" "mynet" {
  name = "mynet"
}

resource "yandex_vpc_subnet" "mysubnet" {
  name           = "mysubnet"
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.mynet.id
  v4_cidr_blocks = ["10.5.0.0/24"]
}

resource "yandex_vpc_security_group" "es-sg" {
  name       = "es-sg"
  network_id = yandex_vpc_network.mynet.id

  ingress {
    description    = "Kibana"
    port           = 443
    protocol       = "TCP"
    v4_cidr_blocks = [ "0.0.0.0/0" ]
  }

  ingress {
    description    = "Elasticsearch"
    port           = 9200
    protocol       = "TCP"
    v4_cidr_blocks = [ "0.0.0.0/0" ]
  }
}

Где применены тестовые характеристики:

  • Имя my-es-clstr.

  • Версия 7.17.

  • Редакция Basic.

  • Окружение PRODUCTION.

  • Защита кластера Managed Service for Elasticsearch от удаления deletion_protection. Пока опция включена, кластер Managed Service for Elasticsearch удалить невозможно.

  • Облако с идентификатором b1gq90dgh25********.

  • Каталог с идентификатором b1gia87mbaom********.

  • Новая сеть mynet.

  • Новая группа безопасности es-sg, разрешающая подключение к кластеру Managed Service for Elasticsearch из интернета через порты 443 (Kibana) и 9200 (Elasticsearch).

  • Один публично доступный хост с ролью Data node класса s2.micro в новой подсети mysubnet, в зоне доступности ru-central1-a. Подсеть mysubnet будет иметь диапазон 10.5.0.0/24.

  • Хранилище на сетевых SSD-дисках (network-ssd) объемом 20 ГБ.

  • Пароль esadminpwd для пользователя admin.

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

Предыдущая
Информация об имеющихся кластерах
Следующая
Подключение к кластеру
Проект Яндекса
© 2025 ООО «Яндекс.Облако»