Управление шардами MongoDB
Кластер можно создать шардированным либо включить шардирование позже. Затем можно добавлять и настраивать шарды.
Для повышения доступности шарды должны состоять как минимум из трех хостов MONGOD
. Небольшие коллекции обычно нет смысла шардировать: скорость обработки запросов будет выше в обычном кластере реплик.
Внимание
После того как шардирование кластера включено:
- Выключить шардирование невозможно. В кластере всегда будет поддерживаться минимальное количество хостов
MONGOS
,MONGOCFG
илиMONGOINFRA
в зависимости от типа шардирования. - Обращаться к базам данных следует только через хосты
MONGOS
илиMONGOINFRA
, которые маршрутизируют запросы к шардам. Измените адреса хостов в коде ваших приложений соответствующим образом.
Включить шардирование
Через интерфейс Managed Service for MongoDB вы можете быстро создать инфраструктуру шардирования MongoDB.
О том, как непосредственно шардировать базу и коллекции MongoDB, читайте в разделе Шардирование коллекций.
Для включения шардирования необходимо:
- Не менее трех хостов
MONGOINFRA
при стандартном шардировании. - Не менее двух хостов
MONGOS
и не менее трех хостовMONGOCFG
при расширенном шардировании.
Примечание
Шардирование не поддерживается для хостов с классами b1.medium и b2.medium. Если у вас нет вкладки Шарды, повысьте класс хостов кластера до поддерживаемого.
-
Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. -
Нажмите на имя нужного кластера и выберите вкладку Шарды.
-
Нажмите кнопку Включить.
-
Выберите один из типов шардирования:
-
Стандартный — с использованием хостов
MONGOINFRA
. -
Расширенный — с использованием хостов
MONGOS
иMONGOCFG
.Подробнее см. в разделе Шардирование.
Важно
После включения шардирования будет невозможно поменять его тип.
-
-
Задайте параметры хостов, которые будут обеспечивать доступ к шардированным данным.
-
Нажмите кнопку Включить шардирование.
Кластер начнет обновляться, при этом будут созданы запрошенные хосты, а также первый шард кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Чтобы включить стандартное шардирование кластера с использованием хостов
MONGOINFRA
, выполните команду (в примере приведены не все доступные параметры):yc managed-mongodb cluster enable-sharding \ --cluster-name=<имя_кластера> \ --host type=mongoinfra,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --host type=mongoinfra,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --host type=mongoinfra,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --mongoinfra resource-preset=<класс_хоста>,` `disk-size=<размер_хранилища_ГБ>,` `disk-type=<тип_диска>
Где:
--cluster-name
— имя кластера, которое можно получить со списком кластеров в каталоге.--host
— параметры хоста:type
— тип (MONGOINFRA
).zone-id
— зона доступности.subnet-name
— имя подсети.
--mongoinfra
— параметры хостовMONGOINFRA
:resource-preset
— класс хоста.disk-size
— размер хранилища в гигабайтах.disk-type
— тип диска.
-
Чтобы включить расширенное шардирование кластера с использованием хостов
MONGOS
иMONGOCFG
, выполните команду (в примере приведены не все доступные параметры):yc managed-mongodb cluster enable-sharding \ --cluster-name=<имя_кластера> \ --host type=mongos,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --host type=mongos,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --mongos resource-preset=<класс_хоста>,` `disk-size=<размер_хранилища_ГБ>,` `disk-type=<тип_диска> \ --host type=mongocfg,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --host type=mongocfg,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --host type=mongocfg,` `zone-id=<зона_доступности>,` `subnet-name=<имя_подсети> \ --mongocfg resource-preset=<класс_хоста>,` `disk-size=<размер_хранилища_ГБ>,` `disk-type=<тип_диска>
Где:
--cluster-name
— имя кластера, которое можно получить со списком кластеров в каталоге.--host
— параметры хоста:type
— тип (MONGOS
илиMONGOCFG
).zone-id
— зона доступности.subnet-name
— имя подсети.
--mongos
— параметры хостовMONGOS
:resource-preset
— класс хоста.disk-size
— размер хранилища в гигабайтах.disk-type
— тип диска.
--mongocfg
— параметры хостовMONGOCFG
:resource-preset
— класс хоста.disk-size
— размер хранилища в гигабайтах.disk-type
— тип диска.
-
Убедитесь, что установленная версия провайдера — 0.90 или выше:
terraform version
Пример результата:
Terraform v1.4.6 on darwin_arm64 + provider registry.terraform.io/yandex-cloud/yandex v0.91.0
Если версия ниже
Обновите версию провайдера:
-
В каталоге с конфигурационным файлом
.tf
добавьте аутентификационные данные в переменные окружения. -
В этом же каталоге инициализируйте провайдера с новой версией, указанного в конфигурационном файле:
terraform init -upgrade
-
Проверьте версию провайдера:
terraform version
-
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О создании такого файла читайте в разделе Создание кластера.
-
Добавьте дополнительные ресурсы в конфигурационный файл.
Для стандартного шардирования кластера с использованием хостов
MONGOINFRA
resources_mongoinfra { resource_preset_id = "<класс_хоста>" disk_type_id = "<тип_диска>" disk_size = <размер_хранилища_ГБ> } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongoinfra" } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongoinfra" } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongoinfra" }
Для расширенного шардирования кластера с использованием хостов
MONGOS
иMONGOCFG
resources_mongos { resource_preset_id = "<класс_хоста>" disk_type_id = "<тип_диска>" disk_size = <размер_хранилища_ГБ> } resources_mongocfg { resource_preset_id = "<класс_хоста>" disk_type_id = "<тип_диска>" disk_size = <размер_хранилища_ГБ> } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongos" } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongos" } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongocfg" } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongocfg" } host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongocfg" }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.EnableSharding и выполните запрос, например, с помощью 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/<идентификатор_кластера>:enableSharding' \ --data '{ "<тип_хоста_MongoDB>": { "resources": { "resourcePresetId": "<класс_хоста>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, "hostSpecs": [ { "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "assignPublicIp": <публичный_адрес_хоста:_true_или_false>, "type": "<тип_хоста>", "shardName": "<имя_шарда>", "hidden": <видимость_хоста:_true_или_false>, "secondaryDelaySecs": "<задержка_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки_хоста>" }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ] }'
Где:
-
Тип хоста MongoDB — зависит от типа шардирования. Доступные значения:
mongocfg
,mongos
,mongoinfra
. -
hostSpecs
— массив новых хостов. Один элемент массива содержит настройки для одного хоста. Количество хостов зависит от типа шардирования.zoneId
— зона доступности.subnetId
— идентификатор подсети.assignPublicIp
— доступность хоста из интернета по публичному IP-адресу.type
— тип хоста (MONGOINFRA
,MONGOS
илиMONGOCFG
).shardName
— имя шарда.hidden
— будет ли хост виден или скрыт.secondaryDelaySecs
— время отставания хоста от мастера.priority
— приоритет назначения хоста мастером при выходе из строя основного мастера.tags
— метки хоста.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.EnableSharding и выполните запрос, например, с помощью 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": "<идентификатор_кластера>", "<тип_хоста_MongoDB>": { "resources": { "resource_preset_id": "<класс_хоста>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, "host_specs": [ { "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "assign_public_ip": <публичный_адрес_хоста:_true_или_false>, "type": "<тип_хоста>", "shard_name": "<имя_шарда>", "hidden": <видимость_хоста:_true_или_false>, "secondary_delay_secs": "<задержка_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки_хоста>" }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.EnableSharding
Где:
-
Тип хоста MongoDB — зависит от типа шардирования. Доступные значения:
mongocfg
,mongos
,mongoinfra
. -
host_specs
— массив новых хостов. Один элемент массива содержит настройки для одного хоста. Количество хостов зависит от типа шардирования.zone_id
— зона доступности.subnet_id
— идентификатор подсети.assign_public_ip
— доступность хоста из интернета по публичному IP-адресу.type
— тип хоста (MONGOINFRA
,MONGOS
илиMONGOCFG
).shard_name
— имя шарда.hidden
— будет ли хост виден или скрыт.secondary_delay_secs
— время отставания хоста от мастера.priority
— приоритет назначения хоста мастером при выходе из строя основного мастера.tags
— метки хоста.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список шардов в кластере
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список шардов в кластере, выполните команду:
yc managed-mongodb shards list --cluster-name <имя_кластера>
Результат:
+------+
| NAME |
+------+
| rs01 |
| rs02 |
+------+
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.ListShards и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/shards'
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.ListShards и выполните запрос, например, с помощью 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": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.ListShards
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать шард
Количество шардов в кластерах Managed Service for MongoDB ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
- Нажмите кнопку Создать шард.
- Укажите имя шарда и добавьте нужное количество хостов.
- Нажмите кнопку Создать шард.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать шард, выполните команду (в примере приведены не все доступные параметры):
yc managed-mongodb shards add <имя_нового_шарда> \
--cluster-name=<имя_кластера> \
--host zone-id=<зона_доступности>,`
`subnet-name=<имя_подсети>
Где:
--cluster-name
— имя кластера, которое можно получить со списком кластеров в каталоге.--host
— параметры хоста:zone-id
— зона доступности.subnet-name
— имя подсети.
-
Убедитесь, что установленная версия провайдера — 0.90 или выше:
terraform version
Пример результата:
Terraform v1.4.6 on darwin_arm64 + provider registry.terraform.io/yandex-cloud/yandex v0.91.0
Если версия ниже
Обновите версию провайдера:
-
В каталоге с конфигурационным файлом
.tf
добавьте аутентификационные данные в переменные окружения. -
В этом же каталоге инициализируйте провайдера с новой версией, указанного в конфигурационном файле:
terraform init -upgrade
-
Проверьте версию провайдера:
terraform version
-
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О создании такого файла читайте в разделе Создание кластера.
-
Добавьте к описанию кластера Managed Service for MongoDB нужное количество блоков
host
с типомMONGOD
в параметреtype
и именем шарда в параметреshard_name
:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... host { zone_id = "<зона_доступности>" subnet_id = "<идентификатор_подсети>" type = "mongod" shard_name = "<имя_шарда>" } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.AddShard и выполните запрос, например, с помощью 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/<идентификатор_кластера>/shards' \ --data '{ "shardName": "<имя_шарда>", "hostSpecs": [ { "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "assignPublicIp": <публичный_адрес_хоста:_true_или_false>, "type": "<тип_хоста>", "shardName": "<имя_шарда>", "hidden": <видимость_хоста:_true_или_false>, "secondaryDelaySecs": "<время_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки>" }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ] }'
Где:
-
shardName
— имя создаваемого шарда. -
hostSpecs
— параметры хоста:zoneId
— зона доступности.subnetId
— идентификатор подсети.assignPublicIp
— доступность хоста из интернета по публичному IP-адресу.type
— тип хоста. УкажитеMONGOD
.shardName
— имя шарда.hidden
— будет ли хост виден или скрыт.secondaryDelaySecs
— время отставания хоста от мастера.priority
— приоритет назначения хоста мастером при выходе из строя основного мастера.tags
— метки хоста.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.AddShard и выполните запрос, например, с помощью 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": "<идентификатор_кластера>", "shard_name": "<имя_шарда>", "host_specs": [ { "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "assign_public_ip": <публичный_адрес_хоста:_true_или_false>, "type": "<тип_хоста>", "shard_name": "<имя_шарда>", "hidden": <видимость_хоста:_true_или_false>, "secondary_delay_secs": "<время_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки>" }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.redis.v1.ClusterService.AddShard
Где:
-
shard_name
— имя создаваемого шарда. -
host_specs
— параметры хоста:zone_id
— зона доступности.subnet_id
— идентификатор подсети.assign_public_ip
— доступность хоста из интернета по публичному IP-адресу.type
— тип хоста. УкажитеMONGOD
.shard_name
— имя шарда.hidden
— будет ли хост виден или скрыт.secondary_delay_secs
— время отставания хоста от мастера.priority
— приоритет назначения хоста мастером при выходе из строя основного мастера.tags
— метки хоста.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить шард
Вы можете удалить шард из кластера MongoDB, если это не единственный шард. Чтобы заменить единственный шард, сначала создайте новый шард, а затем удалите старый.
Примечание
Для удаляемого шарда будет вызвана операция removeShard
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
- Нажмите на значок
в строке нужного шарда и выберите пункт Удалить. - В открывшемся окне нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы удалить шард из кластера, выполните команду:
yc managed-mongodb shards delete <имя_шарда> \
--cluster-name=<имя_кластера>
Имя шарда можно запросить со списком шардов в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О создании такого файла читайте в разделе Создание кластера.
-
Удалите из описания кластера Managed Service for MongoDB все блоки
host
, которые относятся к шарду. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Введите слово
yes
и нажмите Enter.-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.DeleteShard и выполните запрос, например, с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/shards/<имя_шарда>'
Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя шарда — со списком шардов в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.DeleteShard и выполните запрос, например, с помощью 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": "<идентификатор_кластера>", "shard_name": "<имя_шарда>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.DeleteShard
Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя шарда — со списком шардов в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.