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

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

  • Изменить класс хостов
  • Изменить тип диска и увеличить размер хранилища
  • Изменить настройки MongoDB
  • Изменить дополнительные настройки кластера
  • Переместить кластер
  • Изменить группы безопасности
  1. Пошаговые инструкции
  2. Кластеры
  3. Изменение настроек кластера

Изменение настроек кластера MongoDB

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

После создания кластера вы можете:

  • Изменить класс хостов.
  • Изменить тип диска и увеличить размер хранилища.
  • Настроить серверы MongoDB согласно документации MongoDB.
  • Изменить дополнительные настройки кластера.
  • Переместить кластер в другой каталог.
  • Изменить группы безопасности.

Если вы хотите переместить кластер в другую зону доступности, обратитесь к инструкции. В результате вы перенесете хосты кластера.

Изменить класс хостовИзменить класс хостов

Примечание

Некоторые настройки MongoDB зависят от выбранного класса хостов.

При смене класса хостов:

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

Рекомендуется изменять класс хостов только во время отсутствия рабочей нагрузки на кластер.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.

  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.

  3. В блоке Класс хоста выберите:

    • Одну из доступных платформ.
    • Тип конфигурации: memory-optimized, cpu-optimized, standard или burstable.
    • Класс хостов — он определяет технические характеристики виртуальных машин, на которых будут развернуты хосты БД. При изменении класса хостов для кластера меняются характеристики всех созданных хостов.
  4. Нажмите кнопку Сохранить изменения.

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

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

Чтобы изменить класс хостов для кластера:

  1. Посмотрите описание команды CLI для изменения кластера:

    yc managed-mongodb cluster update --help
    
  2. Запросите список доступных классов хостов (в колонке ZONE IDS указаны зоны доступности, в которых можно выбрать соответствующий класс):

    yc managed-mongodb resource-preset list
    
    +-----------+--------------------------------+-------+----------+
    |    ID     |            ZONE IDS            | CORES |  MEMORY  |
    +-----------+--------------------------------+-------+----------+
    | s1.micro  | ru-central1-a, ru-central1-b,  |     2 | 8.0 GB   |
    |           | ru-central1-d                  |       |          |
    | ...                                                           |
    +-----------+--------------------------------+-------+----------+
    
  3. Укажите нужный класс в команде изменения кластера. При смене класса учитывайте роль хоста, она зависит от типа шардирования. В одной команде можно использовать параметры для хостов с разными ролями.

    • Для хостов 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_класса>
      

    Managed Service for MongoDB запустит операцию изменения класса хостов для кластера.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for MongoDB значение параметра resource_preset_id для ресурсов resources_mongod, resources_mongoinfra, resources_mongos или resources_mongocfg. Тип ресурса зависит от типа шардирования.

    Пример:

    resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
      ...
      resources_mongod {
          resource_preset_id = "<класс_хостов>"
          ...
      }
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом 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.<тип_хоста_MongoDB>.resources.resourcePresetId",
                  "configSpec": {
                    "mongodb": {
                      "<тип_хоста_MongoDB>": {
                        "resources": {
                          "resourcePresetId": "<класс_хостов>"
                        }    
                      }
                    }
                  }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

      В данном случае передается только один параметр.

    • configSpec.mongodb.<тип_хоста_MongoDB>.resources.resourcePresetId — новый класс хостов.

      Тип хоста MongoDB зависит от типа шардирования. Доступные значения: mongod, mongocfg, mongos, mongoinfra. Если кластер нешардированный, укажите mongod.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом 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.<тип_хоста_MongoDB>.resources.resource_preset_id"
                ]
              },
              "config_spec": {
                "mongodb": {
                  "<тип_хоста_MongoDB>": {
                    "resources": {
                      "resource_preset_id": "<класс_хостов>"
                    }    
                  }
                }
              }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.mongodb.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

      В данном случае передается только один параметр.

    • config_spec.mongodb.<тип_хоста_MongoDB>.resources.resource_preset_id — новый класс хостов.

      Тип хоста MongoDB зависит от типа шардирования. Доступные значения: mongod, mongocfg, mongos, mongoinfra. Если кластер нешардированный, укажите mongod.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Изменить тип диска и увеличить размер хранилищаИзменить тип диска и увеличить размер хранилища

Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты для облака и убедитесь, что в секции Managed Databases в строке Объём HDD-хранилищ или Объём SSD-хранилищ есть квота на объем хранилищ.

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

Чтобы изменить тип диска и увеличить размер хранилища для кластера:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.

  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.

  3. В блоке Размер хранилища:

    • Выберите тип диска.
    • Укажите нужный размер диска.
  4. Нажмите кнопку Сохранить изменения.

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

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

Чтобы изменить тип диска и увеличить размер хранилища для кластера:

  1. Посмотрите описание команды CLI для изменения кластера:

    yc managed-mongodb cluster update --help
    
  2. Укажите тип диска и нужный размер хранилища в команде изменения кластера (размер хранилища должен быть не меньше, чем значение 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 <размер_хранилища_ГБ>
      

    Если все условия выполнены, Managed Service for MongoDB запустит операцию по изменению параметров хранилища.

Чтобы изменить тип диска и увеличить размер хранилища для кластера:

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for MongoDB значения параметров 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    = <размер_хранилища_ГБ>
        ...
      }
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом 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.<тип_хоста_MongoDB>.resources.diskTypeId,configSpec.mongodb.<тип_хоста_MongoDB>.resources.diskSize",
                  "configSpec": {
                    "mongodb": { 
                      "<тип_хоста_MongoDB>": {
                        "resources": {
                          "diskTypeId": "<тип_диска>",
                          "diskSize": "<размер_хранилища_в_байтах>"
                        }  
                      }
                    }
                  }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

    • configSpec.mongodb.<тип_хоста_MongoDB>.resources — параметры хранилища:

      • diskTypeId — тип диска.
      • diskSize — новый размер хранилища в байтах.

      Тип хоста MongoDB зависит от типа шардирования. Доступные значения: mongod, mongocfg, mongos, mongoinfra. Если кластер нешардированный, укажите mongod.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом 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.<тип_хоста_MongoDB>.resources.disk_type_id",
                  "config_spec.mongodb.<тип_хоста_MongoDB>.resources.disk_size"
                ]
              },
              "config_spec": {
                "mongodb": {
                  "<тип_хоста_MongoDB>": {
                    "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.<тип_хоста_MongoDB>.resources.disk_size — параметры хранилища:

      • disk_type_id — тип диска.
      • disk_size — новый размер хранилища в байтах.

      Тип хоста MongoDB зависит от типа шардирования. Доступные значения: mongod, mongocfg, mongos, mongoinfra. Если кластер нешардированный, укажите mongod.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Изменить настройки MongoDBИзменить настройки MongoDB

Вы можете изменить настройки СУБД для хостов вашего кластера.

Примечание

Некоторые настройки MongoDB зависят от выбранного класса хостов.

Консоль управления
CLI
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.
  3. Чтобы изменить настройки MongoDB, нажмите кнопку Настроить в блоке Настройки СУБД.
  4. Нажмите кнопку Сохранить изменения.

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

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

Чтобы изменить настройки MongoDB для кластера, используйте команду:

yc managed-mongodb cluster update-config

Например, для установки значения параметра net.maxIncomingConnections в 4096, выполните следующую команду:

yc managed-mongodb cluster update-config <имя_кластера> \
   --set net.max_incoming_connections=4096

Managed Service for MongoDB запустит операцию изменения настроек СУБД для кластера. Если изменяемая настройка применяется только с перезапуском СУБД, то Managed Service for MongoDB последовательно перезапустит СУБД на всех хостах кластера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом 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.<тип_хоста_MongoDB>.config.<настройка_1>,configSpec.mongodb.<тип_хоста_MongoDB>.config.<настройка_2>,...,configSpec.mongodb.<тип_хоста_MongoDB>.config.<настройка_N>",
                  "configSpec": {
                    "mongodb": {    
                      "<тип_хоста_MongoDB>": {
                        "config": {
                          "<настройка_1>": "<значение_1>",
                          "<настройка_2>": "<значение_2>",
                          ...
                          "<настройка_N>": "<значение_N>"
                        }
                      }
                    }    
                  }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

    • configSpec.mongodb.<тип_хоста_MongoDB>.config — набор настроек MongoDB. Укажите каждую настройку на отдельной строке через запятую. Все поддерживаемые настройки описаны в справочнике API и в разделе Настройки MongoDB.

      Тип хоста MongoDB зависит от типа шардирования. Доступные значения: mongod, mongocfg, mongos, mongoinfra. Если кластер нешардированный, укажите mongod.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом 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.<тип_хоста_MongoDB>.config.<настройка_1>",
                  "config_spec.mongodb.<тип_хоста_MongoDB>.config.<настройка_2>",
                  ...
                  "config_spec.mongodb.<тип_хоста_MongoDB>.config.<настройка_N>"
                ]
              },
              "config_spec": {
                "mongodb": {    
                  "<тип_хоста_MongoDB>": {
                    "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.<тип_хоста_MongoDB>.config — набор настроек MongoDB. Укажите каждую настройку на отдельной строке через запятую. Все поддерживаемые настройки описаны в справочнике API и в разделе Настройки MongoDB.

      Тип хоста MongoDB зависит от типа шардирования. Доступные значения: mongod, mongocfg, mongos, mongoinfra. Если кластер нешардированный, укажите mongod.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Изменить дополнительные настройки кластераИзменить дополнительные настройки кластера

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.

  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.

  3. Измените дополнительные настройки кластера:

    • Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию — 22:00 - 23:00 UTC.

    • Срок хранения автоматических резервных копий, дней

      Время, в течение которого нужно хранить созданные автоматически резервные копии. Если для такой копии истекает срок хранения, то она удаляется. Значение по умолчанию — 7 дней. Эта функциональность находится на стадии Preview. Подробнее см. в разделе Резервные копии.

      Изменение срока хранения затрагивает как новые автоматические резервные копии, так и уже существующие. Например, если изначальный срок хранения был 7 дней и оставшееся время жизни отдельной автоматической резервной копии при таком сроке — 1 день, то при увеличении срока хранения до 9 дней, оставшееся время жизни этой резервной копии будет уже 3 дня.

      Для существующего кластера автоматически созданные копии хранятся заданное количество дней, а созданные вручную — бессрочно. После удаления кластера все копии хранятся 7 дней.

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

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

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

    • Сбор статистики — включите эту опцию, чтобы пользоваться встроенным инструментом для диагностики производительности в кластере. Эта функциональность находится на стадии Preview.

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

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

  4. Нажмите кнопку Сохранить изменения.

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

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

Чтобы изменить дополнительные настройки кластера:

  1. Посмотрите описание команды CLI для изменения кластера:

    yc managed-mongodb cluster update --help
    
  2. Выполните команду, передав список настроек, которые хотите изменить:

    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 — день недели в формате DDD: MON, TUE, WED, THU, FRI, SAT или SUN.
      • hour — час дня по UTC в формате HH: от 1 до 24.
  • --performance-diagnostics — укажите параметр, чтобы воспользоваться инструментом Диагностика производительности в кластере. Эта функциональность находится на стадии Preview.

  • --deletion-protection — защита кластера от непреднамеренного удаления: true или false.

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

Идентификатор и имя кластера можно получить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Чтобы изменить время начала резервного копирования, добавьте к описанию кластера Managed Service for MongoDB блок backup_window_start в секции cluster_config:

    resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
      ...
      cluster_config {
        backup_window_start {
          hours   = <час>
          minutes = <минута>
        }
        ...
      }
      ...
    }
    

    Где hours и minutes — час и минута начала резервного копирования.

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

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

    Где:

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

    resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
      ...
      deletion_protection = <защита_кластера_от_удаления>
    }
    

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

    Чтобы отключить защиту, установите значение false.

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

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

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

      terraform validate
      

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

  6. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Создайте файл body.json и добавьте в него следующее содержимое:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    {
      "updateMask": "configSpec.backupWindowStart,configSpec.backupRetainPeriodDays,configSpec.performanceDiagnostics,maintenanceWindow,deletionProtection",
      "configSpec": {
        "backupWindowStart":  {
          "hours": "<часы>",
          "minutes": "<минуты>",
          "seconds": "<секунды>",
          "nanos": "<наносекунды>"
        },
        "backupRetainPeriodDays": "<время_хранения_резервных_копий_в_днях>",
        "performanceDiagnostics": {
          "profilingEnabled": <включить_профилировщик:_true_или_false>
        }
      }
      "maintenanceWindow": {
        "weeklyMaintenanceWindow": {
          "day": "<день_недели>",
          "hour": "<час>"
        }
      },    
      "deletionProtection": <защита_кластера_от_удаления:_true_или_false>
    }
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

    • configSpec — настройки кластера:

      • backupWindowStart — настройки окна резервного копирования.

        В параметре укажите время, когда начинать резервное копирование:

        • hours — от 0 до 23 часов.
        • minutes — от 0 до 59 минут.
        • seconds — от 0 до 59 секунд.
        • nanos — от 0 до 999999999 наносекунд.
      • backupRetainPeriodDays — время хранения резервных копий в днях.

      • performanceDiagnostics — настройки для сбора статистики:

        • profilingEnabled — включение профилировщика.
    • maintenanceWindow — настройки времени технического обслуживания (в т. ч. для выключенных кластеров). В maintenanceWindow передайте один из двух параметров:

      • anytime — техническое обслуживание происходит в любое время.

      • weeklyMaintenanceWindow — техническое обслуживание происходит раз в неделю, в указанное время:

        • day — день недели в формате DDD.
        • hour — час в формате HH. Возможные значения: от 1 до 24 часов.
    • deletionProtection — защита кластера от непреднамеренного удаления: true или false.

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

  3. Воспользуйтесь методом 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"
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Создайте файл 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": <включить_профилировщик:_true_или_false>
        }
      },
      "maintenance_window": {
        "weekly_maintenance_window": {
          "day": "<день_недели>",
          "hour": "<час>"
        }
      },
      "deletion_protection": <защита_кластера_от_удаления:_true_или_false>
    }
    

    Где:

    • 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 — включение профилировщика.
    • maintenance_window — настройки времени технического обслуживания (в т. ч. для выключенных кластеров). В maintenance_window передайте один из двух параметров:

      • anytime — техническое обслуживание происходит в любое время.

      • weekly_maintenance_window — техническое обслуживание происходит раз в неделю, в указанное время:

        • day — день недели в формате DDD.
        • hour — час в формате HH. Возможные значения: от 1 до 24 часов.
    • deletion_protection — защита кластера от непреднамеренного удаления: true или false.

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

  4. Воспользуйтесь вызовом 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
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Переместить кластерПереместить кластер

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Нажмите на значок справа в строке кластера, который вы хотите переместить.
  3. Выберите пункт Переместить.
  4. Выберите каталог, в который вы хотите переместить кластер.
  5. Нажмите кнопку Переместить.

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

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

Чтобы переместить кластер:

  1. Посмотрите описание команды CLI для перемещения кластера:

    yc managed-mongodb cluster move --help
    
  2. Укажите каталог назначения в команде перемещения кластера:

    yc managed-mongodb cluster move <имя_или_идентификатор_кластера> \
       --destination-folder-name=<имя_каталога_назначения>
    

    Идентификатор кластера можно получить со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените или добавьте в описании кластера Managed Service for MongoDB значение параметра folder_id:

    resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
      ...
      folder_id = "<идентификатор_каталога_назначения>"
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом 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 — идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом 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 — идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Изменить группы безопасностиИзменить группы безопасности

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.
  3. В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
  4. Нажмите кнопку Сохранить изменения.

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

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

Чтобы изменить список групп безопасности для кластера:

  1. Посмотрите описание команды CLI для изменения кластера:

    yc managed-mongodb cluster update --help
    
  2. Укажите нужные группы безопасности в команде изменения кластера:

    yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \
      --security-group-ids <список_идентификаторов_групп_безопасности>
    
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Измените в описании кластера Managed Service for MongoDB значение параметра security_group_ids:

    resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
      ...
      security_group_ids = [ <список_идентификаторов_групп_безопасности> ]
      ...
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом 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 — список идентификаторов групп безопасности.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом 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 — список идентификаторов групп безопасности.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

Может потребоваться дополнительная настройка групп безопасности для подключения к кластеру.

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

Предыдущая
Создание кластера
Следующая
Обновление версии MongoDB
Проект Яндекса
© 2025 ООО «Яндекс.Облако»