Управление шардами Yandex StoreDoc
Кластер можно создать шардированным либо включить шардирование позже. Затем можно добавлять и настраивать шарды.
Для повышения доступности шарды должны состоять как минимум из трех хостов MONGOD
. Небольшие коллекции обычно нет смысла шардировать: скорость обработки запросов будет выше в обычном кластере реплик.
Внимание
После того как шардирование кластера включено:
- Выключить шардирование невозможно. В кластере всегда будет поддерживаться минимальное количество хостов
MONGOS
,MONGOCFG
илиMONGOINFRA
в зависимости от типа шардирования. - Обращаться к базам данных следует только через хосты
MONGOS
илиMONGOINFRA
, которые маршрутизируют запросы к шардам. Измените адреса хостов в коде ваших приложений соответствующим образом.
Включить шардирование
Через интерфейс Yandex StoreDoc вы можете быстро создать инфраструктуру шардирования Yandex StoreDoc.
О том, как непосредственно шардировать базу и коллекции Yandex StoreDoc, читайте в разделе Шардирование коллекций.
Для включения шардирования необходимо:
- Не менее трех хостов
MONGOINFRA
при стандартном шардировании. - Не менее двух хостов
MONGOS
и не менее трех хостовMONGOCFG
при расширенном шардировании.
Примечание
Шардирование не поддерживается для хостов с классами b1.medium и b2.medium. Если у вас нет вкладки Шарды, повысьте класс хостов кластера до поддерживаемого.
-
Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. -
Нажмите на имя нужного кластера и выберите вкладку Шарды.
-
Нажмите кнопку Включить.
-
Выберите один из типов шардирования:
-
Стандартный — с использованием хостов
MONGOINFRA
. -
Расширенный — с использованием хостов
MONGOS
иMONGOCFG
.Подробнее см. в разделе Шардирование.
Важно
После включения шардирования будет невозможно поменять его тип.
-
-
Задайте параметры хостов, которые будут обеспечивать доступ к шардированным данным.
-
Нажмите кнопку Включить шардирование.
Кластер начнет обновляться, при этом будут созданы запрошенные хосты, а также первый шард кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --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 '{ "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resourcePresetId": "<класс_хоста>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, "hostSpecs": [ { "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "assignPublicIp": <разрешить_публичный_доступ_к_хосту>, "type": "<тип_хоста>", "shardName": "<имя_шарда>", "hidden": <скрыть_хост>, "secondaryDelaySecs": "<задержка_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки_хоста>" }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ] }'
Где:
-
Тип хоста Yandex StoreDoc — зависит от типа шардирования. Доступные значения:
mongocfg
,mongos
,mongoinfra
. -
hostSpecs
— массив новых хостов. Один элемент массива содержит настройки для одного хоста. Количество хостов зависит от типа шардирования.zoneId
— зона доступности.subnetId
— идентификатор подсети.assignPublicIp
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.type
— тип хоста (MONGOINFRA
,MONGOS
илиMONGOCFG
).shardName
— имя шарда.hidden
— будет ли хост виден (false
) или скрыт (true
).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": "<идентификатор_кластера>", "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resource_preset_id": "<класс_хоста>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, "host_specs": [ { "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "assign_public_ip": <разрешить_публичный_доступ_к_хосту>, "type": "<тип_хоста>", "shard_name": "<имя_шарда>", "hidden": <скрыть_хост>, "secondary_delay_secs": "<задержка_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки_хоста>" }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.EnableSharding
Где:
-
Тип хоста Yandex StoreDoc — зависит от типа шардирования. Доступные значения:
mongocfg
,mongos
,mongoinfra
. -
host_specs
— массив новых хостов. Один элемент массива содержит настройки для одного хоста. Количество хостов зависит от типа шардирования.zone_id
— зона доступности.subnet_id
— идентификатор подсети.assign_public_ip
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.type
— тип хоста (MONGOINFRA
,MONGOS
илиMONGOCFG
).shard_name
— имя шарда.hidden
— будет ли хост виден (false
) или скрыт (true
).secondary_delay_secs
— время отставания хоста от мастера.priority
— приоритет назначения хоста мастером при выходе из строя основного мастера.tags
— метки хоста.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список шардов в кластере
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --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
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать шард
Количество шардов в кластерах Yandex StoreDoc ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
- Нажмите кнопку Создать шард.
- Укажите имя шарда и добавьте нужное количество хостов.
- Нажмите кнопку Создать шард.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --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 с планом инфраструктуры.
О создании такого файла читайте в разделе Создание кластера.
-
Добавьте к описанию кластера Yandex StoreDoc нужное количество блоков
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": <разрешить_публичный_доступ_к_хосту>, "type": "<тип_хоста>", "shardName": "<имя_шарда>", "hidden": <скрыть_хост>, "secondaryDelaySecs": "<время_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки>" }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ] }'
Где:
-
shardName
— имя создаваемого шарда. -
hostSpecs
— параметры хоста:zoneId
— зона доступности.subnetId
— идентификатор подсети.assignPublicIp
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.type
— тип хоста. УкажитеMONGOD
.shardName
— имя шарда.hidden
— будет ли хост виден (false
) или скрыт (true
).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": <разрешить_публичный_доступ_к_хосту>, "type": "<тип_хоста>", "shard_name": "<имя_шарда>", "hidden": <скрыть_хост>, "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-адресу:true
илиfalse
.type
— тип хоста. УкажитеMONGOD
.shard_name
— имя шарда.hidden
— будет ли хост виден (false
) или скрыт (true
).secondary_delay_secs
— время отставания хоста от мастера.priority
— приоритет назначения хоста мастером при выходе из строя основного мастера.tags
— метки хоста.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить шард
Вы можете удалить шард из кластера Yandex StoreDoc, если это не единственный шард. Чтобы заменить единственный шард, сначала создайте новый шард, а затем удалите старый.
Примечание
Для удаляемого шарда будет вызвана операция removeShard
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
- Нажмите на значок
в строке нужного шарда и выберите пункт Удалить. - В открывшемся окне нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы удалить шард из кластера, выполните команду:
yc managed-mongodb shards delete <имя_шарда> \
--cluster-name=<имя_кластера>
Имя шарда можно запросить со списком шардов в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О создании такого файла читайте в разделе Создание кластера.
-
Удалите из описания кластера Yandex StoreDoc все блоки
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
Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя шарда — со списком шардов в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.