Изменение настроек кластера Yandex StoreDoc
После создания кластера вы можете:
- Изменить класс хостов.
- Изменить тип диска и увеличить размер хранилища.
- Настроить серверы Yandex StoreDoc согласно документации MongoDB
. - Изменить дополнительные настройки кластера.
- Переместить кластер в другой каталог.
- Изменить группы безопасности.
Если вы хотите переместить кластер в другую зону доступности, обратитесь к инструкции. В результате вы перенесете хосты кластера.
Изменить класс хостов
Примечание
Некоторые настройки Yandex StoreDoc зависят от выбранного класса хостов.
При смене класса хостов:
- Кластер из одного хоста будет недоступен несколько минут, соединения с БД будут прерваны.
- В кластере из нескольких хостов сменится первичная реплика. Каждый хост по очереди будет остановлен и обновлен, остановленный хост будет недоступен несколько минут.
Рекомендуется изменять класс хостов только во время отсутствия рабочей нагрузки на кластер.
-
Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Класс хоста выберите:
- Одну из доступных платформ.
- Тип конфигурации: memory-optimized, cpu-optimized, standard или burstable.
- Класс хостов — он определяет технические характеристики виртуальных машин, на которых будут развернуты хосты БД. При изменении класса хостов для кластера меняются характеристики всех созданных хостов.
-
Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы изменить класс хостов для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mongodb cluster update --help
-
Запросите список доступных классов хостов (в колонке
ZONE IDS
указаны зоны доступности, в которых можно выбрать соответствующий класс):yc managed-mongodb resource-preset list +-----------+--------------------------------+-------+----------+ | ID | ZONE IDS | CORES | MEMORY | +-----------+--------------------------------+-------+----------+ | s1.micro | kz1-a, kz1-b, | 2 | 8.0 GB | | | kz1-d | | | | ... | +-----------+--------------------------------+-------+----------+
-
Укажите нужный класс в команде изменения кластера. При смене класса учитывайте роль хоста, она зависит от типа шардирования. В одной команде можно использовать параметры для хостов с разными ролями.
-
Для хостов
MONGOD
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongod-resource-preset <ID_класса>
-
Для хостов
MONGOINFRA
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongoinfra-resource-preset <ID_класса>
-
Для хостов
MONGOS
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongos-resource-preset <ID_класса>
-
Для хостов
MONGOCFG
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongocfg-resource-preset <ID_класса>
Yandex StoreDoc запустит операцию изменения класса хостов для кластера.
-
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Yandex StoreDoc значение параметра
resource_preset_id
для ресурсовresources_mongod
,resources_mongoinfra
,resources_mongos
илиresources_mongocfg
. Тип ресурса зависит от типа шардирования.Пример:
resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... resources_mongod { resource_preset_id = "<класс_хостов>" ... } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex StoreDoc:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.resourcePresetId", "configSpec": { "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resourcePresetId": "<класс_хостов>" } } } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.resourcePresetId
— новый класс хостов.Тип хоста Yandex StoreDoc зависит от типа шардирования. Доступные значения:
mongod
,mongocfg
,mongos
,mongoinfra
. Если кластер нешардированный, укажитеmongod
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.resource_preset_id" ] }, "config_spec": { "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resource_preset_id": "<класс_хостов>" } } } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.resource_preset_id
— новый класс хостов.Тип хоста Yandex StoreDoc зависит от типа шардирования. Доступные значения:
mongod
,mongocfg
,mongos
,mongoinfra
. Если кластер нешардированный, укажитеmongod
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить тип диска и увеличить размер хранилища
Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Размер хранилища:
- Выберите тип диска.
- Укажите нужный размер диска.
-
Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mongodb cluster update --help
-
Укажите тип диска и нужный размер хранилища в команде изменения кластера (размер хранилища должен быть не меньше, чем значение
disk_size
в свойствах кластера).При увеличении размера хранилища учитывайте роль хоста, она зависит от типа шардирования. В одной команде можно использовать параметры для хостов с разными ролями.
-
Для хостов
MONGOD
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongod-disk-type <тип_диска> \ --mongod-disk-size <размер_хранилища_ГБ>
-
Для хостов
MONGOINFRA
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongoinfra-disk-type <тип_диска> \ --mongoinfra-disk-size <размер_хранилища_ГБ>
-
Для хостов
MONGOS
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongos-disk-type <тип_диска> \ --mongos-disk-size <размер_хранилища_ГБ>
-
Для хостов
MONGOCFG
:yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --mongocfg-disk-type <тип_диска> \ --mongocfg-disk-size <размер_хранилища_ГБ>
Если все условия выполнены, Yandex StoreDoc запустит операцию по изменению параметров хранилища.
-
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Yandex StoreDoc значения параметров
disk_type_id
иdisk_size
для ресурсовresources_mongod
,resources_mongoinfra
,resources_mongos
илиresources_mongocfg
. Тип ресурса зависит от типа шардирования.Пример:
resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... resources_mongod { disk_type_id = "<тип_диска>" disk_size = <размер_хранилища_ГБ> ... } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex StoreDoc:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.diskTypeId,configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.diskSize", "configSpec": { "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "resources": { "diskTypeId": "<тип_диска>", "diskSize": "<размер_хранилища_в_байтах>" } } } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources
— параметры хранилища:diskTypeId
— тип диска.diskSize
— новый размер хранилища в байтах.
Тип хоста Yandex StoreDoc зависит от типа шардирования. Доступные значения:
mongod
,mongocfg
,mongos
,mongoinfra
. Если кластер нешардированный, укажитеmongod
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.disk_type_id", "config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.disk_size" ] }, "config_spec": { "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "resources": { "disk_type_id": "<тип_диска>", "disk_size": "<размер_хранилища_в_байтах>" } } } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.resources.disk_size
— параметры хранилища:disk_type_id
— тип диска.disk_size
— новый размер хранилища в байтах.
Тип хоста Yandex StoreDoc зависит от типа шардирования. Доступные значения:
mongod
,mongocfg
,mongos
,mongoinfra
. Если кластер нешардированный, укажитеmongod
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки Yandex StoreDoc
Вы можете изменить настройки СУБД для хостов вашего кластера.
Примечание
Некоторые настройки Yandex StoreDoc зависят от выбранного класса хостов.
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- Чтобы изменить настройки Yandex StoreDoc, нажмите кнопку Настроить в блоке Настройки СУБД.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы изменить настройки Yandex StoreDoc для кластера, используйте команду:
yc managed-mongodb cluster update-config
Например, для установки значения параметра net.maxIncomingConnections4096
, выполните следующую команду:
yc managed-mongodb cluster update-config <имя_кластера> \
--set net.max_incoming_connections=4096
Yandex StoreDoc запустит операцию изменения настроек СУБД для кластера. Если изменяемая настройка применяется только с перезапуском СУБД, то Yandex StoreDoc последовательно перезапустит СУБД на всех хостах кластера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.config.<настройка_1>,configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.config.<настройка_2>,...,configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.config.<настройка_N>", "configSpec": { "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "config": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec.mongodb.<тип_хоста_Yandex_StoreDoc>.config
— набор настроек Yandex StoreDoc. Укажите каждую настройку на отдельной строке через запятую. Все поддерживаемые настройки описаны в справочнике API и в разделе Настройки Yandex StoreDoc.Тип хоста Yandex StoreDoc зависит от типа шардирования. Доступные значения:
mongod
,mongocfg
,mongos
,mongoinfra
. Если кластер нешардированный, укажитеmongod
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.config.<настройка_1>", "config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.config.<настройка_2>", ... "config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.config.<настройка_N>" ] }, "config_spec": { "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "config": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config_spec.mongodb.<тип_хоста_Yandex_StoreDoc>.config
— набор настроек Yandex StoreDoc. Укажите каждую настройку на отдельной строке через запятую. Все поддерживаемые настройки описаны в справочнике API и в разделе Настройки Yandex StoreDoc.Тип хоста Yandex StoreDoc зависит от типа шардирования. Доступные значения:
mongod
,mongocfg
,mongos
,mongoinfra
. Если кластер нешардированный, укажитеmongod
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить дополнительные настройки кластера
-
Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
Измените дополнительные настройки кластера:
-
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00
UTC. -
Срок хранения автоматических резервных копий, дней
Время, в течение которого нужно хранить созданные автоматически резервные копии. Если для такой копии истекает срок хранения, то она удаляется. Значение по умолчанию — 7 дней. Эта функциональность находится на стадии Preview. Подробнее см. в разделе Резервные копии.
Изменение срока хранения затрагивает как новые автоматические резервные копии, так и уже существующие. Например, если изначальный срок хранения был 7 дней и оставшееся время жизни отдельной автоматической резервной копии при таком сроке — 1 день, то при увеличении срока хранения до 9 дней, оставшееся время жизни этой резервной копии будет уже 3 дня.
Для существующего кластера автоматически созданные копии хранятся заданное количество дней, а созданные вручную — бессрочно. После удаления кластера все копии хранятся 7 дней.
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Сбор статистики — включите эту опцию, чтобы пользоваться встроенным инструментом для диагностики производительности в кластере. Эта функциональность находится на стадии Preview.
-
Защита от удаления — защита кластера от непреднамеренного удаления.
Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
-
Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы изменить дополнительные настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mongodb cluster update --help
-
Выполните команду, передав список настроек, которые хотите изменить:
yc managed-mongodb cluster update <идентификатор_или_имя_кластера> \ --backup-retain-period-days=<срок_хранения> \ --backup-window-start <время_начала_резервного_копирования> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --performance-diagnostics=<включить_диагностику> \ --deletion-protection
Вы можете изменить следующие настройки:
-
--backup-retain-period
— срок хранения автоматических резервных копий (в днях).Значение параметра
<срок_хранения>
задается в диапазоне от 7 до 35 (по умолчанию — 7). Эта функциональность находится на стадии Preview. Подробнее см. в разделе Резервные копии.Изменение срока хранения затрагивает как новые автоматические резервные копии, так и уже существующие.
Например, если изначальный срок хранения был семь дней и оставшееся время жизни отдельной автоматической резервной копии при таком сроке — один день, то при увеличении срока хранения до девяти дней оставшееся время жизни этой резервной копии будет уже три дня.
--backup-window-start
— время начала резервного копирования кластера, задается по UTC в форматеHH:MM:SS
. Если время не задано, резервное копирование начнется в 22:00 UTC.
-
--maintenance-window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype
— тип технического обслуживания:anytime
(по умолчанию) — в любое время.weekly
— по расписанию. Для этого значения дополнительно укажите:day
— день недели:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC: от1
до24
.
-
--performance-diagnostics
— укажите параметр, чтобы воспользоваться инструментом Диагностика производительности в кластере. Эта функциональность находится на стадии Preview. -
--deletion-protection
— защита кластера от непреднамеренного удаления:true
илиfalse
.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Чтобы изменить время начала резервного копирования, добавьте к описанию кластера Yandex StoreDoc блок
backup_window_start
в секцииcluster_config
:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... cluster_config { backup_window_start { hours = <час> minutes = <минута> } ... } ... }
Где
hours
иminutes
— час и минута начала резервного копирования. -
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
maintenance_window
:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... maintenance_window { type = <тип_технического_обслуживания> day = <день_недели> hour = <час_дня> } ... }
Где:
type
— тип технического обслуживания. Принимает значения:ANYTIME
— в любое время.WEEKLY
— по расписанию.
day
— день недели для типаWEEKLY
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC для типаWEEKLY
: от1
до24
.
-
Чтобы защитить кластер от непреднамеренного удаления пользователем вашего облака, добавьте к описанию кластера поле
deletion_protection
со значениемtrue
:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... deletion_protection = <защитить_кластер_от_удаления> }
Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
Чтобы отключить защиту, установите значение
false
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex StoreDoc:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).{ "updateMask": "configSpec.backupWindowStart,configSpec.backupRetainPeriodDays,configSpec.performanceDiagnostics,maintenanceWindow,deletionProtection", "configSpec": { "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backupRetainPeriodDays": "<время_хранения_резервных_копий_в_днях>", "performanceDiagnostics": { "profilingEnabled": <включить_профилировщик> } } "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час>" } }, "deletionProtection": <защитить_кластер_от_удаления> }
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec
— настройки кластера:-
backupWindowStart
— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование:
hours
— от0
до23
часов.minutes
— от0
до59
минут.seconds
— от0
до59
секунд.nanos
— от0
до999999999
наносекунд.
-
backupRetainPeriodDays
— время хранения резервных копий в днях. -
performanceDiagnostics
— настройки для сбора статистики:profilingEnabled
— включение профилировщика:true
илиfalse
.
-
-
maintenanceWindow
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). ВmaintenanceWindow
передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в любое время. -
weeklyMaintenanceWindow
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
.hour
— час в форматеHH
. Возможные значения: от1
до24
часов.
-
-
deletionProtection
— защита кластера от непреднамеренного удаления:true
илиfalse
.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>' \ --data "@body.json"
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Создайте файл
body.json
и добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.backup_window_start", "config_spec.backup_retain_period_days", "config_spec.performance_diagnostics", "maintenance_window", "deletion_protection" ] }, "config_spec": { "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backup_retain_period_days": "<время_хранения_резервных_копий_в_днях>", "performance_diagnostics": { "profiling_enabled": <включить_профилировщик> } }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час>" } }, "deletion_protection": <защитить_кластер_от_удаления> }
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config_spec
— настройки кластера:-
backup_window_start
— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование:
hours
— от0
до23
часов.minutes
— от0
до59
минут.seconds
— от0
до59
секунд.nanos
— от0
до999999999
наносекунд.
-
backup_retain_period_days
— время хранения резервных копий в днях. -
performance_diagnostics
— настройки для сбора статистики:profiling_enabled
— включение профилировщика:true
илиfalse
.
-
-
maintenance_window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Вmaintenance_window
передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в любое время. -
weekly_maintenance_window
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
.hour
— час в форматеHH
. Возможные значения: от1
до24
часов.
-
-
deletion_protection
— защита кластера от непреднамеренного удаления:true
илиfalse
.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.Update \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Переместить кластер
- Перейдите на страницу каталога и выберите сервис Yandex StoreDoc.
- Нажмите на значок
справа в строке кластера, который вы хотите переместить. - Выберите пункт Переместить.
- Выберите каталог, в который вы хотите переместить кластер.
- Нажмите кнопку Переместить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы переместить кластер:
-
Посмотрите описание команды CLI для перемещения кластера:
yc managed-mongodb cluster move --help
-
Укажите каталог назначения в команде перемещения кластера:
yc managed-mongodb cluster move <имя_или_идентификатор_кластера> \ --destination-folder-name=<имя_каталога_назначения>
Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените или добавьте в описании кластера Yandex StoreDoc значение параметра
folder_id
:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... folder_id = "<идентификатор_каталога_назначения>" }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex StoreDoc:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Move и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>:move' \ --data '{ "destinationFolderId": "<идентификатор_каталога>" }'
Где
destinationFolderId
— идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Move и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "destination_folder_id": "<идентификатор_каталога>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.Move
Где
destination_folder_id
— идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить группы безопасности
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы изменить список групп безопасности для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mongodb cluster update --help
-
Укажите нужные группы безопасности в команде изменения кластера:
yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \ --security-group-ids <список_идентификаторов_групп_безопасности>
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Yandex StoreDoc значение параметра
security_group_ids
:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... security_group_ids = [ <список_идентификаторов_групп_безопасности> ] ... }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex StoreDoc:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "securityGroupIds", "securityGroupIds": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ] }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
securityGroupIds
— список идентификаторов групп безопасности.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "security_group_ids" ] }, "security_group_ids": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
security_group_ids
— список идентификаторов групп безопасности.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Может потребоваться дополнительная настройка групп безопасности для подключения к кластеру.