Создание кластера OpenSearch
Кластер Managed Service for OpenSearch — это группа из нескольких связанных друг с другом хостов OpenSearch и DashboardsDATA
. Подробнее о ролях в кластере см. в разделе Роли хостов.
Доступные типы диска зависят от выбранного класса хостов.
Подробнее см. в разделе Взаимосвязь ресурсов сервиса.
Создать кластер
При создании кластера для каждой группы хостов указываются отдельные параметры.
Для создания кластера Managed Service for OpenSearch нужна роль vpc.user и роль managed-opensearch.editor или выше. О том, как назначить роль, см. документацию Identity and Access Management.
Чтобы создать кластер Managed Service for OpenSearch:
-
В консоли управления
выберите каталог, в котором нужно создать кластер. -
Выберите сервис Managed Service for OpenSearch.
-
Нажмите кнопку Создать кластер.
-
В блоке Базовые параметры:
-
Введите имя кластера. Оно должно быть уникальным в рамках каталога.
-
(Опционально) Введите описание кластера.
-
Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):
PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
-
Выберите версию OpenSearch.
-
Выберите плагины, которые нужно установить в кластер.
-
-
В блоке Сетевые настройки выберите облачную сеть для размещения кластера и группы безопасности для сетевого трафика кластера. Может потребоваться дополнительная настройка групп безопасности для того, чтобы можно было подключаться к кластеру.
-
В блоке Группа виртуальных хостов 1 задайте конфигурацию группы хостов
OpenSearch
:-
Выберите тип группы хостов:
OpenSearch
. -
Введите имя группы хостов. Оно должно быть уникальным в кластере.
-
Выберите роли хостов
DATA
иMANAGER
. -
Выберите платформу, тип и класс хостов.
Класс хостов определяет технические характеристики виртуальных машин, на которых будут развернуты ноды OpenSearch. Все доступные варианты перечислены в разделе Классы хостов.
-
Выберите тип диска и объем хранилища, который будет использоваться для данных.
От выбранного типа зависит, с каким шагом можно будет изменить размер диска:
- Сетевые HDD- и SSD-диски — с шагом 1 ГБ.
- Локальные SSD-диски:
- для платформы Intel Cascade Lake — с шагом 100 ГБ;
- для платформы Intel Ice Lake — с шагом 368 ГБ.
- Нереплицируемые SSD-диски — с шагом 93 ГБ.
-
Укажите расположение хостов по зонам доступности и подсетям.
-
Выберите количество создаваемых хостов.
-
Включите опцию Публичный доступ, если вы хотите, чтобы к хостам можно было подключаться через интернет.
Совет
Не рекомендуется включать публичный доступ для хостов с ролью
MANAGER
, т. к. это может быть небезопасно.
Важно
Изменить конфигурацию хостов после создания кластера можно только с помощью API, однако при необходимости вы сможете создать новую группу хостов с другой конфигурацией.
-
-
При необходимости задайте конфигурацию группы хостов
Dashboards
в блоке Группа виртуальных хостов 2:-
Выберите платформу, тип и класс хостов.
-
Настройте хранилище по аналогии с хостами
OpenSearch
. -
Укажите расположение хостов по зонам доступности и подсетям.
-
Выберите количество создаваемых хостов.
-
Включите опцию Публичный доступ, если вы хотите, чтобы к хостам можно было подключаться через интернет.
Совет
OpenSearch Dashboards можно воспользоваться, даже если публичный доступ к хостам запросить невозможно (например, из соображений безопасности). Для этого настройте проксирование соединений через виртуальную машину в Yandex Compute Cloud, которая находится в той же сети, что и кластер. Подробнее см. в разделе Подключение к OpenSearch Dashboards.
-
-
При необходимости добавьте еще одну или несколько групп хостов, нажав кнопку Добавить группу виртуальных хостов.
-
В блоке Сервисные настройки:
-
Укажите пароль для пользователя
admin
.Это специальный пользователь, который необходим для управления кластером и не может быть удален. Он наделен ролью
superuser
и может выполнять любые действия с кластером.Совет
Для выполнения повседневных задач рекомендуется создавать отдельных пользователей. Подробнее см. в разделе Управление пользователями OpenSearch.
-
При необходимости измените дополнительные настройки кластера:
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Сервисный аккаунт — аккаунт для доступа к Yandex Object Storage в качестве репозитория снапшотов OpenSearch. Подробнее о сервисных аккаунтах см. в документации Yandex Identity and Access Management.
-
Защита от удаления — управляет защитой кластера, его баз данных и пользователей от непреднамеренного удаления.
Включенная защита от удаления кластера не помешает подключиться к нему вручную и удалить данные.
-
-
-
Нажмите кнопку Создать кластер.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать кластер Managed Service for OpenSearch:
-
Посмотрите описание команды CLI для создания кластера:
yc managed-opensearch cluster create --help
-
Укажите параметры кластера в команде создания (в примере приведены не все доступные параметры):
yc managed-opensearch cluster create \ --name <имя_кластера> \ --description <описание_кластера> \ --labels <метки> \ --environment <окружение:_production_или_prestable> \ --network-name <имя_сети> \ --security-group-ids <идентификаторы_групп_безопасности> \ --service-account-name <имя_сервисного_аккаунта> \ --delete-protection \ --maintenance schedule=<тип_технического_обслуживания>,` `weekday=<день_недели>,` `hour=<час_дня> \ --version <версия_OpenSearch> \ --read-admin-password \ --data-transfer-access=<true_или_false> \ --serverless-access=<true_или_false> \ --plugins <OpenSearch_плагины> \ --advanced-params <дополнительные_параметры> \ --opensearch-node-group name=<имя_группы_хостов_OpenSearch>,` `resource-preset-id=<класс_хостов>,` `disk-size=<размер_диска_в_байтах>,` `disk-type-id=<network-hdd|network-ssd|network-ssd-nonreplicated|local-ssd>,` `hosts-count=<количество_хостов_в_группе>,` `zone-ids=<зоны_доступности>,` `subnet-names=<имена_подсетей>,` `assign-public-ip=<назначить_публичный_адрес:_true_или_false>,` `roles=<роли_хостов> \ --dashboards-node-group name=<имя_группы_хостов_Dashboards>,` `resource-preset-id=<класс_хостов>,` `disk-size=<размер_диска_в_байтах>,` `disk-type-id=<network-ssd>,` `hosts-count=<количество_хостов_в_группе>,` `zone-ids=<зоны_доступности>,` `subnet-names=<имена_подсетей>,` `assign-public-ip=<назначить_публичный_адрес:_true_или_false>
Где:
-
--labels
— метки Yandex Cloud в формате<ключ>=<значение>
. Используются для логического разделения ресурсов. -
--environment
— окружение:production
— для стабильных версий ваших приложений.prestable
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
-
--service-account-name
— имя сервисного аккаунта для доступа к Yandex Object Storage в качестве репозитория снапшотов OpenSearch. Подробнее о сервисных аккаунтах см. в документации Yandex Identity and Access Management. -
--delete-protection
— защита кластера от непреднамеренного удаления пользователем. Включенная защита от удаления кластера не помешает подключиться к нему вручную и удалить данные. -
--maintenance
— настройки времени технического обслуживания:- Чтобы разрешить проведение технического обслуживания в любое время, не указывайте параметр
--maintenance
в команде (конфигурация по умолчанию) либо укажите--maintenance schedule=anytime
. - Чтобы указать предпочтительное время начала обслуживания, укажите в команде параметр
--maintenance schedule=weekly,weekday=<день_недели>,hour=<час_дня_по_UTC>
. Тогда техническое обслуживание будет проходить каждую неделю в обозначенный день и время.
Операции по обслуживанию проводятся для включенных и выключенных кластеров. Во время обслуживания могут, например, применяться патчи или обновляться СУБД.
- Чтобы разрешить проведение технического обслуживания в любое время, не указывайте параметр
-
--read-admin-password
— пароль пользователяadmin
. Если указать параметр в команде, после ее ввода будет предложено ввести пароль. -
--serverless-access
— доступ из Yandex Serverless Containers:true
илиfalse
. -
--plugins
— плагины OpenSearch, которые нужно установить в кластер. -
--advanced-params
— дополнительные параметры кластера. Возможные значения:max-clause-count
— максимально допустимое количество булевых выражений (boolean clauses) в запросе. Подробнее см. в документации OpenSearch .fielddata-cache-size
— объем кучи JVM, который выделен для структуры данных fielddata. Можно указать абсолютное значение или проценты, например,512mb
или50%
. Подробнее см. в документации OpenSearch .reindex-remote-whitelist
— список удаленных хостов, из индекса которых нужно скопировать документы для переиндексации. Укажите значение параметра в формате<адрес_хоста>:<порт>
. Если нужно указать несколько хостов, перечислите значения через запятую. Подробнее см. в документации OpenSearch .
-
--opensearch-node-group
— конфигурация группы хостовOpenSearch
, где:-
resource-preset-id
— класс хостов. Он определяет технические характеристики виртуальных машин, на которых будут развернуты узлы OpenSearch. Все доступные варианты перечислены в разделе Классы хостов. -
disk-size
— размер диска в байтах. Минимальное и максимальное значения зависят от выбранного класса хостов. -
disk-type-id
— тип диска. -
roles
— роли хостов. Возможные значения:data
— предоставляется только рольDATA
;manager
— предоставляется только рольMANAGER
;data+manager
илиmanager+data
— предоставляются обе роли.
Совет
Не рекомендуется включать публичный доступ для хостов с ролью
MANAGER
— это небезопасно.
-
-
--dashboards-node-group
— конфигурация группы хостовDashboards
. Настраивается так же, как группа хостовOpenSearch
, за исключением ролей хостов. Для группыDashboards
роли настраивать не нужно.
-
Terraform
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать кластер Managed Service for OpenSearch:
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
-
Кластер БД — описание кластера Managed Service for OpenSearch и его хостов.
-
Сеть — описание облачной сети, в которой будет расположен кластер. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.
-
Подсети — описание подсетей, к которым будут подключены хосты кластера. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.
Пример структуры конфигурационного файла:
resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { name = "<имя_кластера>" environment = "<окружение>" network_id = "<идентификатор_сети>" security_group_ids = ["<список_идентификаторов_групп_безопасности>"] deletion_protection = "<защита_от_удаления>" config { version = "<версия_OpenSearch>" admin_password = "<пароль_пользователя-администратора>" opensearch { node_groups { name = "<имя_группы_виртуальных_хостов>" assign_public_ip = <публичный_доступ> hosts_count = <количество_хостов> zone_ids = ["<список_зон_доступности>"] subnet_ids = ["<список_идентификаторов подсетей>"] roles = ["<список_ролей>"] resources { resource_preset_id = "<класс_хоста>" disk_size = <размер_хранилища_в_байтах> disk_type_id = "<тип_диска>" } } plugins = ["<список_имен_плагинов>"] } dashboards { node_groups { name = "<имя_группы_виртуальных_хостов>" assign_public_ip = <публичный_доступ> hosts_count = <количество_хостов> zone_ids = ["<список_зон_доступности>"] subnet_ids = ["<список_идентификаторов подсетей>"] resources { resource_preset_id = "<класс_хоста>" disk_size = <размер_хранилища_в_байтах> disk_type_id = "<тип_диска>" } } } } maintenance_window { type = <тип_технического_обслуживания> day = <день_недели> hour = <час_дня> } } resource "yandex_vpc_network" "<имя_сети>" { name = "<имя_сети>" } resource "yandex_vpc_subnet" "<имя_подсети>" { name = "<имя_подсети>" zone = "<зона_доступности>" network_id = "<идентификатор_сети>" v4_cidr_blocks = ["<диапазон>"] }
Где:
environment
— окружение:PRESTABLE
илиPRODUCTION
.deletion_protection
— защита от удаления:true
илиfalse
.assign_public_ip
— публичный доступ к хосту:true
илиfalse
.roles
— роли хостов:DATA
иMANAGER
.maintenance_window
— время технического обслуживания (в т. ч. для выключенных кластеров):type
— тип технического обслуживания. Принимает значения:ANYTIME
— в любое время.WEEKLY
— по расписанию.
day
— день недели для типаWEEKLY
в форматеDDD
. Например,MON
.hour
— час дня по UTC для типаWEEKLY
в форматеHH
. Например,21
.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Создайте кластер.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for OpenSearch:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
Чтобы создать кластер Managed Service for OpenSearch, воспользуйтесь методом REST API create для ресурса Cluster или вызовом gRPC API ClusterService/Create и передайте в запросе:
-
Идентификатор каталога, в котором должен быть размещен кластер, в параметре
folderId
. -
Имя кластера в параметре
name
. -
Версию OpenSearch в параметре
configSpec.version
. -
Пароль пользователя
admin
в параметреconfigSpec.adminPassword
. -
Конфигурацию одной или нескольких групп хостов с ролями
DATA
иMANAGER
(опционально) в параметреconfigSpec.opensearchSpec.nodeGroups
. -
Конфигурацию одной или нескольких групп хостов с ролью
DASHBOARDS
в параметреconfigSpec.dashboardsSpec.nodeGroups
. -
Список плагинов в параметре
configSpec.opensearchSpec.plugins
. -
Настройки доступа из других сервисов в параметре
configSpec.access
. -
Идентификатор сети в параметре
networkId
. -
Идентификаторы групп безопасности в параметре
securityGroupIds
. Может потребоваться дополнительная настройка групп безопасности для того, чтобы можно было подключаться к кластеру. -
Идентификатор сервисного аккаунта, используемого для работы с кластером, в параметре
serviceAccountId
. -
Настройки защиты от удаления кластера в параметре
deletionProtection
.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
Настройки времени технического обслуживания (в т. ч. для выключенных кластеров) в параметре
maintenanceWindow
.
Создать копию кластера
Вы можете создать кластер OpenSearch, который будет обладать настройками созданного ранее кластера. Для этого конфигурация исходного кластера OpenSearch импортируется в Terraform. В результате вы можете либо создать идентичную копию, либо взять за основу импортированную конфигурацию и внести в нее изменения. Использовать импорт удобно, если исходный кластер OpenSearch обладает множеством настроек и нужно создать похожий на него кластер.
Чтобы создать копию кластера OpenSearch:
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
В той же рабочей директории разместите файл с расширением
.tf
и содержимым:resource "yandex_mdb_opensearch_cluster" "old" { }
-
Запишите идентификатор первоначального кластера OpenSearch в переменную окружения:
export OPENSEARCH_CLUSTER_ID=<идентификатор_кластера>
Идентификатор можно запросить вместе со списком кластеров в каталоге.
-
Импортируйте настройки первоначального кластера OpenSearch в конфигурацию Terraform:
terraform import yandex_mdb_opensearch_cluster.old ${OPENSEARCH_CLUSTER_ID}
-
Получите импортированную конфигурацию:
terraform show
-
Скопируйте ее из терминала и вставьте в файл с расширением
.tf
. -
Расположите файл в новой директории
imported-cluster
. -
Измените скопированную конфигурацию так, чтобы из нее можно было создать новый кластер:
- Укажите новое имя кластера в строке
resource
и параметреname
. - Удалите параметры
created_at
,health
,id
иstatus
. - В блок
config
добавьте параметрadmin_password
. - Если в блоке
maintenance_window
указано значение параметраtype = "ANYTIME"
, удалите параметрhour
. - (Опционально) Внесите дополнительные изменения, если вам нужна не идентичная, а кастомизированная копия.
- Укажите новое имя кластера в строке
-
В директории
imported-cluster
получите данные для аутентификации. -
В этой же директории настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в директорию
imported-cluster
и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле. -
Проверьте корректность файлов конфигурации Terraform:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for OpenSearch:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Примеры
Создайте кластер Managed Service for OpenSearch с тестовыми характеристиками:
-
Имя —
my-os-clstr
. -
Описание —
My OS cluster
. -
Метка —
label-key
со значениемlabel-value
. -
Окружение —
production
. -
Имя сети —
default
. -
Идентификатор группы безопасности —
enp6saqnq4ie********
. -
Имя сервисного аккаунта —
os-account
. -
Защита от удаления кластера — отключена.
-
Время технического обслуживания — каждый понедельник с 13:00 до 14:00.
-
Версия OpenSearch —
2.8
. -
Пароль пользователя
admin
— указывается после ввода команды по созданию кластера. -
Доступ к Data Transfer — включен.
-
Доступ к Serverless Containers — включен.
-
Подключенный плагин OpenSearch — analysis-icu.
-
Дополнительный параметр OpenSearch —
fielddata-cache-size=50%
. -
Конфигурация группы узлов
OpenSearch
:- название группы —
os-group
; - класс хостов —
s2.micro
; - размер диска —
10737418240
(в байтах); - тип диска —
network-ssd
; - количество хостов — три;
- зона доступности —
ru-central1-a
; - подсеть —
default-ru-central1-a
; - публичный адрес — выделен;
- роли группы хостов —
DATA
иMANAGER
.
- название группы —
-
Конфигурация группы хостов
Dashboards
:- название группы —
dashboard-group
; - класс хостов —
s2.micro
; - размер диска —
10737418240
(в байтах); - тип диска —
network-ssd
; - количество хостов — один;
- зона доступности —
ru-central1-a
; - подсеть —
default-ru-central1-a
; - публичный адрес — выделен.
- название группы —
Выполните команду:
yc managed-opensearch cluster create \
--name my-os-clstr \
--description "My OS cluster" \
--labels label-key=label-value \
--environment production \
--network-name default \
--security-group-ids enp6saqnq4ie******** \
--service-account-name os-account \
--delete-protection \
--maintenance schedule=weekly,`
`weekday=mon,`
`hour=14 \
--version 2.8 \
--read-admin-password \
--data-transfer-access=true \
--serverless-access=true \
--plugins analysis-icu \
--advanced-params fielddata-cache-size=50% \
--opensearch-node-group name=os-group,`
`resource-preset-id=s2.micro,`
`disk-size=10737418240,`
`disk-type-id=network-ssd,`
`hosts-count=3,`
`zone-ids=ru-central1-a,`
`subnet-names=default-ru-central1-a,`
`assign-public-ip=true,`
`roles=data+manager \
--dashboards-node-group name=dashboard-group,`
`resource-preset-id=s2.micro,`
`disk-size=10737418240,`
`disk-type-id=network-ssd,`
`hosts-count=1,`
`zone-ids=ru-central1-a,`
`subnet-names=default-ru-central1-a,`
`assign-public-ip=true
Создайте кластер Managed Service for OpenSearch с тестовыми характеристиками:
- Имя —
my-os-clstr
. - Окружение —
PRODUCTION
. - Версия OpenSearch —
2.8
. - Пароль пользователя
admin
—osadminpwd
. - Имя группы узлов
OpenSearch
—os-group
. - Класс хостов —
s2.micro
. - Размер диска —
10737418240
(в байтах). - Тип диска —
network-ssd
. - Количество хостов —
1
. - Публичный адрес — выделен.
- Роли группы хостов —
DATA
иMANAGER
. - Время технического обслуживания — каждый понедельник с 13:00 до 14:00.
- Имя сети —
mynet
. - Имя подсети —
mysubnet
. - Зона доступности —
ru-central1-a
. - Диапазон адресов —
10.1.0.0/16
. - Имя группы безопасности —
os-sg
. Группа безопасности разрешает подключение к хосту кластера из любой сети (в том числе из интернета) по порту9200
.
Конфигурационный файл для такого кластера выглядит так:
resource "yandex_mdb_opensearch_cluster" "my-os-clstr" {
name = "my-os-clstr"
environment = "PRODUCTION"
network_id = yandex_vpc_network.mynet.id
security_group_ids = [yandex_vpc_security_group.os-sg.id]
config {
version = "2.8"
admin_password = "osadminpwd"
opensearch {
node_groups {
name = "os-group"
assign_public_ip = true
hosts_count = 1
zone_ids = ["ru-central1-a"]
subnet_ids = [yandex_vpc_subnet.mysubnet.id]
roles = ["DATA", "MANAGER"]
resources {
resource_preset_id = "s2.micro"
disk_size = 10737418240
disk_type_id = "network-ssd"
}
}
}
}
maintenance_window {
type = "WEEKLY"
day = "MON"
hour = 14
}
}
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.1.0.0/16"]
}
resource "yandex_vpc_security_group" "os-sg" {
name = "os-sg"
network_id = yandex_vpc_network.mynet.id
ingress {
description = "Allow connections to the Managed Service for OpenSearch cluster from the Internet"
protocol = "TCP"
port = 9200
v4_cidr_blocks = ["0.0.0.0/0"]
}
egress {
description = "The rule allows all outgoing traffic"
protocol = "ANY"
v4_cidr_blocks = ["0.0.0.0/0"]
from_port = 0
to_port = 65535
}
}