Создание MongoDB-кластера

MongoDB-кластер — это один или несколько хостов базы данных, между которыми можно настроить репликацию. Репликация работает по умолчанию в любом кластере из более чем 1 хоста (первичный хост принимает запросы на запись и асинхронно дублирует изменения на вторичных хостах).

Количество хостов, которые можно создать вместе с MongoDB-кластером, зависит от выбранного варианта хранилища:

  • При использовании сетевых дисков вы можете запросить любое количество хостов (от 1 до пределов текущей квоты).
  • При использовании SSD-дисков вместе с кластером можно создать не меньше 3 реплик (минимум 3 реплики необходимо, чтобы обеспечить отказоустойчивость). Если после создания кластера доступных ресурсов каталога останется достаточно, вы можете добавить дополнительные реплики.
  1. В консоли управления выберите каталог, в котором нужно создать кластер БД.
  2. Выберите сервис Managed Service for MongoDB.
  3. Нажмите кнопку Создать кластер.
  4. Введите имя кластера в поле Имя кластера. Имя кластера должно быть уникальным в рамках каталога.
  5. Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):
    • production — для стабильных версий ваших приложений.
    • prestable — для тестирования, в том числе самого сервиса Managed Service for MongoDB. Prestable-окружение обновляется чаще, из-за чего в нем раньше исправляются уже известные проблемы, но могут происходить обратно несовместимые изменения.
  6. Выберите версию СУБД.
  7. Выберите класс хостов — он определяет технические характеристики виртуальных машин, на которых будут развернуты хосты БД. При изменении класса хостов для кластера меняются характеристики всех уже созданных хостов.
  8. В блоке Размер хранилища:
    • Выберите тип хранилища — более гибкое сетевое (network-hdd или network-ssd) или более быстрое локальное SSD-хранилище (local-ssd). Размер локального хранилища можно менять только с шагом 100 ГБ.
    • Выберите объем, который будет использоваться для данных и резервных копий. Подробнее о том, как занимают пространство резервные копии, см. раздел Резервные копии.
  9. В блоке База данных укажите атрибуты БД:
    • Имя БД.
    • Имя пользователя.
    • Пароль пользователя. Минимум 8 символов.
  10. В блоке Хосты выберите параметры хостов БД, создаваемых вместе с кластером (помните, что используя SSD-диски при создании MongoDB-кластера можно задать не меньше 3 хостов). Открыв блок Расширенные настройки, вы можете выбрать конкретные подсети для каждого хоста — по умолчанию каждый хост создается в отдельной подсети.
  11. Нажмите кнопку Создать кластер.

Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью флага --folder-name или --folder-id.

Чтобы создать кластер:

  1. Проверьте, есть ли в каталоге подсети для хостов кластера:

    $ yc vpc subnet list
    

    Если ни одной подсети в каталоге нет, создайте нужные подсети в сервисе VPC.

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

    $ yc managed-mongodb cluster create --help
    
  3. Укажите параметры кластера в команде создания (в примере приведены только обязательные флаги):

    $ yc managed-mongodb cluster create \
       --name <имя кластера> \
       --environment=<окружение, prestable или production> \
       --network-name <имя сети> \
       --host zone-id=<зона доступности>,subnet-id=<идентификатор подсети> \
       --resource-preset <класс хоста> \
       --user name=<имя пользователя>,password=<пароль пользователя> \
       --database name=<имя базы данных>,owner=<имя владельца БД> \
       --mongod-disk-type <network-hdd | network-ssd | local-ssd> \
       --mongod-disk-size <размер хранилища в гигабайтах>
    

    Идентификатор подсети subnet-id необходимо указывать, если в выбранной зоне доступности создано 2 и больше подсетей.

Примеры

Создание кластера с одним хостом

Чтобы создать кластер с одним хостом, следует передать один параметр --host.

Допустим, нужно создать MongoDB-кластер со следующими характеристиками:

  • С именем mymg.
  • В окружении production.
  • В сети default.
  • С одним хостом класса s1.nano в подсети b0rcctk2rvtr8efcch64, в зоне доступности ru-central1-c.
  • С сетевым SSD-хранилищем объемом 20 ГБ.
  • С одним пользователем, user1, с паролем user1user1.
  • С одной базой данных, db1.

Запустите следующую команду:

$ yc managed-mongodb cluster create \
     --name mymg \
     --environment production \
     --network-name default \
     --mongod-resource-preset s1.nano \
     --host zone-id=ru-central1-c,subnet-id=b0rcctk2rvtr8efcch64 \
     --mongod-disk-size 20 \
     --mongod-disk-type network-ssd \
     --user name=user1,password=user1user1 \
     --database name=db1