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

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

  • Создать кластер
  • Создать копию кластера
  • Примеры
  • Создание кластера с одним хостом
  • Создание шардированного кластера с одним шардом
  • Создание шардированного кластера с тремя шардами
  1. Пошаговые инструкции
  2. Кластеры
  3. Создание кластера

Создание кластера Valkey™

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

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

Подробнее об устройстве кластера Yandex Managed Service for Valkey™ см. в разделе Взаимосвязь ресурсов сервиса.

Примечание

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

Создать кластерСоздать кластер

Для создания кластера Yandex Managed Service for Valkey™ нужна роль vpc.user и роль managed-redis.editor или выше. О том, как назначить роль, см. документацию Identity and Access Management.

Примечание

Действуют следующие ограничения на способы создания шардированных кластеров:

  • Кластер с одним шардом можно создать с помощью CLI, Terraform или API.
  • Кластер с двумя шардами нельзя создать, но можно добавить шард в существующий кластер с одним шардом.
  • Кластер с тремя и более шардами можно создать с помощью консоли управления, CLI, Terraform или API.

Для нешардированных кластеров ограничений нет.

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

Чтобы создать кластер Yandex Managed Service for Valkey™:

  1. В консоли управления перейдите в каталог, в котором нужно создать кластер БД.

  2. Выберите сервис Yandex Managed Service for Valkey™.

  3. Нажмите кнопку Создать кластер.

  4. В блоке Базовые параметры:

    • Введите имя кластера в поле Имя кластера. Имя кластера должно быть уникальным в рамках каталога.

    • (Опционально) Добавьте описание кластера.

    • Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):

      • PRODUCTION — для стабильных версий ваших приложений.
      • PRESTABLE — для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
    • Выберите версию СУБД.

    • (Опционально) Добавьте метки.

    • Если требуется, включите шардирование кластера.

      Важно

      Отключить шардирование в кластере, для которого оно включено, невозможно. При необходимости можно создать нешардированный кластер и позже включить в нем шардирование.

    • Если требуется, включите поддержку шифрованных TLS-соединений с кластером.

      Важно

      Включить шифрование соединений можно только при создании нового кластера. Отключить шифрование в кластере, для которого оно включено, невозможно.

    • При необходимости включите использование FQDN вместо IP-адресов.

      Примечание

      Некоторые клиенты несовместимы с этой настройкой и не смогут подключиться к хостам кластера. Такие клиенты ожидают именно IP-адрес и некорректно обрабатывают ситуацию, когда IP-адрес подменяется на FQDN.

    • Выберите настройки персистентности данных.

  5. В блоке Ресурсы:

    • В поле Платформа выберите платформу.

    • Укажите Тип виртуальной машины, на которой будут развернуты хосты.

    • Выберите Класс хоста.

    • Выберите тип диска:

      • либо более гибкое хранилище — на сетевых SSD-дисках (network-ssd) или на нереплицируемых SSD-дисках (network-ssd-nonreplicated);
      • либо более быстрое хранилище — на локальных SSD-дисках (local-ssd).

      От выбранного типа зависит, с каким шагом можно будет изменить размер диска:

      • Сетевые SSD-диски — с шагом 1 ГБ.
      • Локальные SSD-диски:
        • для платформ Intel Broadwell и Intel Cascade Lake — с шагом 100 ГБ;
        • для платформы Intel Ice Lake — с шагом 368 ГБ.
      • Нереплицируемые SSD-диски — с шагом 93 ГБ.
    • Выберите размер хранилища. Доступный размер хранилища ограничен квотами и лимитами.

  6. В блоке Сетевые настройки выберите:

    • Облачную сеть для размещения кластера.
    • Группы безопасности для сетевого трафика кластера. Может потребоваться дополнительная настройка групп безопасности для того, чтобы можно было подключаться к кластеру.
  7. В блоке Хосты задайте конфигурацию хостов:

    • Чтобы изменить настройки отдельного хоста, нажмите на значок в строке с его именем.

      • Зона доступности — выберите зону доступности.
      • Подсеть — укажите подсеть в выбранной зоне доступности.
      • Публичный доступ — разрешает доступ к хосту из интернета, если кластер создается с включенной настройкой Поддержка TLS.
      • Приоритет мастера — приоритет назначения хоста мастером при выходе из строя основного мастера.
      • Имя шарда — позволяет изменить имя шарда для хоста. Поле доступно, только если кластер создается с включенной настройкой Шардирование кластера.
    • Чтобы добавить хосты в кластер, нажмите кнопку Добавить хост.

    Если вы включили шардирование в кластере и выбрали тип диска local-ssd, добавьте не менее двух хостов на шард.

  8. В блоке Настройки СУБД:

    • В поле Пароль укажите пароль пользователя.

      Допустимая длина пароля — от 8 до 128 символов. Пароль должен удовлетворять регулярному выражению [a-zA-Z0-9@=+?*.,!&#$^<>_-]*.

    • Если требуется, задайте настройки СУБД.

  9. В блоке Сервисные настройки задайте дополнительные настройки кластера:

    • Начало резервного копирования (UTC) — время по UTC, когда требуется начать резервное копирование кластера (в 24-часовом формате). Если время не задано, резервное копирование начнется в 22:00 UTC.

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

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

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

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

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

  10. Нажмите кнопку Создать кластер.

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

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

Чтобы создать кластер Yandex Managed Service for Valkey™:

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

    yc vpc subnet list
    

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

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

    yc managed-redis cluster create --help
    
  3. При создании кластера с помощью CLI нельзя напрямую указать тип хоста и объем оперативной памяти. Вместо этого выберите подходящий класс хостов. Чтобы просмотреть доступные классы хостов, выполните команду:

    yc managed-redis resource-preset list
    
  4. Укажите параметры кластера в команде создания (в примере приведены не все флаги):

    yc managed-redis cluster create \
      --name <имя_кластера> \
      --environment <окружение> \
      --network-name <имя_сети> \
      --host zone-id=<зона_доступности>,`
            `subnet-id=<идентификатор_подсети>,`
            `assign-public-ip=<публичный_доступ>,`
            `replica-priority=<приоритет_хоста> \
      --security-group-ids <список_идентификаторов_групп_безопасности> \
      --enable-tls \
      --resource-preset <класс_хоста> \
      --disk-size <размер_хранилища_ГБ> \
      --disk-type-id <network-ssd|network-ssd-nonreplicated|local-ssd> \
      --password=<пароль_пользователя> \
      --backup-window-start <время> \
      --deletion-protection \
      --announce-hostnames <использование_FQDN_вместо_IP-адресов>
    

    Где:

    • --environment — окружение: prestable или production.

    • --host — параметры хоста:

      • zone-id — зона доступности.
      • subnet-id — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
      • assign-public-ip — доступность хоста из интернета по публичному IP-адресу: true или false.
      • replica-priority — приоритет назначения хоста мастером при выходе из строя основного мастера.
    • --disk-type-id — тип диска.

    • --websql-access — разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL. Значение по умолчанию — false.

    • --backup-window-start — время начала резервного копирования в формате ЧЧ:ММ:СС.

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

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

    • --announce-hostnames — настройка, определяющая, использовать ли FQDN вместо IP-адресов: true или false.

      Примечание

      Некоторые клиенты несовместимы с этой настройкой и не смогут подключиться к хостам кластера. Такие клиенты ожидают именно IP-адрес и некорректно обрабатывают ситуацию, когда IP-адрес подменяется на FQDN.

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

    Допустимая длина пароля — от 8 до 128 символов. Пароль должен удовлетворять регулярному выражению [a-zA-Z0-9@=+?*.,!&#$^<>_-]*.

    Если вы создаёте шардированный кластер с типом диска local-ssd, укажите в команде не менее двух хостов на шард.

    Примечание

    По умолчанию при создании кластера устанавливается режим технического обслуживания anytime — в любое время. Вы можете установить конкретное время обслуживания при изменении настроек кластера.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

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

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать кластер Yandex Managed Service for Valkey™:

  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

    • Кластер базы данных — описание кластера и его хостов. При необходимости здесь же можно задать настройки СУБД.

    • Сеть — описание облачной сети, в которой будет расположен кластер. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.

    • Подсети — описание подсетей, к которым будут подключены хосты кластера. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.

    Пример структуры конфигурационного файла для создания нешардированного кластера с поддержкой SSL:

    resource "yandex_mdb_redis_cluster" "<имя_кластера>" {
      name                = "<имя_кластера>"
      environment         = "<окружение>"
      network_id          = "<идентификатор_сети>"
      security_group_ids  = [ "<список_идентификаторов_групп_безопасности>" ]
      tls_enabled         = true
      deletion_protection = <защита_кластера_от_удаления>
      announce_hostnames  = <использование_FQDN_вместо_IP-адресов>
    
      config {
        password = "<пароль>"
        version  = "<версия_Valkey™>"
      }
    
      resources {
        resource_preset_id = "<класс_хоста>"
        disk_type_id       = "<тип_диска>"
        disk_size          = <размер_хранилища_ГБ>
      }
    
      host {
        zone             = "<зона_доступности>"
        subnet_id        = "<идентификатор_подсети>"
        assign_public_ip = <публичный_доступ>
        replica_priority = <приоритет_хоста>
      }
    }
    
    resource "yandex_vpc_network" "<имя_сети>" { name = "<имя_сети>" }
    
    resource "yandex_vpc_subnet" "<имя_подсети>" {
      name           = "<имя_подсети>"
      zone           = "<зона_доступности>"
      network_id     = "<идентификатор_сети>"
      v4_cidr_blocks = ["<диапазон>"]
    }
    

    Где:

    • environment — окружение: PRESTABLE или PRODUCTION.

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

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

    • announce_hostnames — настройка, определяющая, использовать ли FQDN вместо IP-адресов: true или false.

      Примечание

      Некоторые клиенты несовместимы с этой настройкой и не смогут подключиться к хостам кластера. Такие клиенты ожидают именно IP-адрес и некорректно обрабатывают ситуацию, когда IP-адрес подменяется на FQDN.

    • version — версия Valkey™: 7.2.

    • host — параметры хоста:

      • zone_id — зона доступности.
      • subnet_id — идентификатор подсети в выбранной зоне доступности.
      • assign_public_ip — публичный доступ к хосту: true или false.
      • replica_priority — приоритет назначения хоста мастером при выходе из строя основного мастера.

    Допустимая длина пароля — от 8 до 128 символов. Пароль должен удовлетворять регулярному выражению [a-zA-Z0-9@=+?*.,!&#$^<>_-]*.

    Если вы создаёте шардированный кластер с типом диска local-ssd, укажите в конфигурационном файле не менее двух хостов на шард.

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

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

    Где:

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

    Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.

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

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

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

      terraform validate
      

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

  3. Создайте кластер.

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

      terraform plan
      

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

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

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

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

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

    После этого в указанном каталоге будут созданы все требуемые ресурсы, а в терминале отобразятся FQDN хостов кластера. Проверить появление ресурсов и их настройки можно в консоли управления.

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

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

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

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

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

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

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

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

    {
      "folderId": "<идентификатор_каталога>",
      "name": "<имя_кластера>",
      "environment": "<окружение>",
      "configSpec": {
        "version": "<версия_Valkey™>",
        "resources": {
          "resourcePresetId": "<класс_хостов>",
          "diskSize": "<размер_хранилища_в_байтах>",
          "diskTypeId": "<тип_диска>"
        },
        "access": {
          "webSql": <доступ_из_WebSQL>
        },
        "redis": {
          "password": "<пароль_пользователя>"
        }
      },
      "hostSpecs": [
        {
          "zoneId": "<зона_доступности>",
          "subnetId": "<идентификатор_подсети>",
          "shardName": "<название_шарда>",
          "replicaPriority": "<приоритет_хоста>",
          "assignPublicIp": <публичный_доступ_к_хосту_кластера>
        },
        { <аналогичный_набор_настроек_для_хоста_2> },
        { ... },
        { <аналогичный_набор_настроек_для_хоста_N> }
      ],
      "networkId": "<идентификатор_сети>",
      "sharded": <шардирование_кластера>,
      "securityGroupIds": [
        "<идентификатор_группы_безопасности_1>",
        "<идентификатор_группы_безопасности_2>",
        ...
        "<идентификатор_группы_безопасности_N>"
      ],
      "tlsEnabled": <поддержка_шифрованных_TLS-соединений>,
      "deletionProtection": <защита_кластера_от_удаления>,
      "announceHostnames": <использование_FQDN_вместо_IP-адресов>
    }
    

    Где:

    • folderId — идентификатор каталога. Его можно запросить со списком каталогов в облаке.

    • name — имя кластера.

    • environment — окружение: PRESTABLE или PRODUCTION.

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

      • version — версия Valkey™.

      • resources — ресурсы кластера:

        • resourcePresetId — класс хостов;
        • diskSize — размер диска в байтах;
        • diskTypeId — тип диска.
      • access.webSql — доступ к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL: true или false.

      • redis.password — пароль пользователя.

    • hostSpecs — параметры хоста:

      • zoneId — зона доступности.
      • subnetId — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
      • shardName — название шарда для хоста. Этот параметр используется, только если для параметра sharded указано значение true.
      • replicaPriority — приоритет назначения хоста мастером при выходе из строя основного мастера.
      • assignPublicIp — доступность хоста из интернета по публичному IP-адресу: true или false. Включить публичный доступ можно, только если для параметра tlsEnabled указано значение true.
    • networkId — идентификатор сети, в которой будет размещен кластер.

    • sharded — шардирование кластера: true или false.

      Важно

      Отключить шардирование в кластере, для которого оно включено, невозможно. При необходимости можно создать нешардированный кластер и позже включить в нем шардирование.

      Если вы создаете шардированный кластер с типом диска local-ssd, укажите не менее двух хостов на шард, добавив нужное количество блоков hostSpecs.

    • securityGroupIds — идентификаторы групп безопасности.

    • tlsEnabled — поддержка шифрованных TLS-соединений с кластером: true или false.

      Важно

      Включить шифрование соединений можно только при создании нового кластера. Отключить шифрование в кластере, для которого оно включено, невозможно.

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

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

    • announceHostnames — использование FQDN вместо IP-адресов: true или false.

      Примечание

      Некоторые клиенты несовместимы с этой настройкой и не смогут подключиться к хостам кластера. Такие клиенты ожидают именно IP-адрес и некорректно обрабатывают ситуацию, когда IP-адрес подменяется на FQDN.

  3. Воспользуйтесь методом Cluster.Create и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-redis/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 и добавьте в него следующее содержимое:

    {
      "folder_id": "<идентификатор_каталога>",
      "name": "<имя_кластера>",
      "environment": "<окружение>",
      "config_spec": {
        "version": "<версия_Valkey™>",
        "resources": {
          "resource_preset_id": "<класс_хостов>",
          "disk_size": "<размер_хранилища_в_байтах>",
          "disk_type_id": "<тип_диска>"
        },
        "access": {
          "web_sql": <доступ_из_WebSQL>
        },
        "redis": {
          "password": "<пароль_пользователя>"
        }
      },
      "host_specs": [
        {
          "zone_id": "<зона_доступности>",
          "subnet_id": "<идентификатор_подсети>",
          "shard_name": "<название_шарда>",
          "replica_priority": "<приоритет_хоста>",
          "assign_public_ip": <публичный_доступ_к_хосту_кластера>
        },
        { <аналогичный_набор_настроек_для_хоста_2> },
        { ... },
        { <аналогичный_набор_настроек_для_хоста_N> }
      ],
      "network_id": "<идентификатор_сети>",
      "sharded": <шардирование_кластера>,
      "security_group_ids": [
        "<идентификатор_группы_безопасности_1>",
        "<идентификатор_группы_безопасности_2>",
        ...
        "<идентификатор_группы_безопасности_N>"
      ],
      "tls_enabled": <поддержка_шифрованных_TLS-соединений>,
      "deletion_protection": <защита_кластера_от_удаления>,
      "announce_hostnames": <использование_FQDN_вместо_IP-адресов>
    }
    

    Где:

    • folder_id — идентификатор каталога. Его можно запросить со списком каталогов в облаке.

    • name — имя кластера.

    • environment — окружение: PRESTABLE или PRODUCTION.

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

      • version — версия Valkey™.

      • resources — ресурсы кластера:

        • resource_preset_id — класс хостов;
        • disk_size — размер диска в байтах;
        • disk_type_id — тип диска.
      • access.web_sql — доступ к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL: true или false.

      • redis.password — пароль пользователя.

    • host_specs — параметры хоста:

      • zone_id — зона доступности.
      • subnet_id — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
      • shard_name — название шарда для хоста. Этот параметр используется, только если для параметра sharded указано значение true.
      • replica_priority — приоритет назначения хоста мастером при выходе из строя основного мастера.
      • assign_public_ip — доступность хоста из интернета по публичному IP-адресу: true или false. Включить публичный доступ можно, только если для параметра tls_enabled указано значение true.
    • network_id — идентификатор сети, в которой будет размещен кластер.

    • sharded — шардирование кластера: true или false.

      Важно

      Отключить шардирование в кластере, для которого оно включено, невозможно. При необходимости можно создать нешардированный кластер и позже включить в нем шардирование.

      Если вы создаете шардированный кластер с типом диска local-ssd, укажите не менее двух хостов на шард, добавив нужное количество блоков host_specs.

    • security_group_ids — идентификаторы групп безопасности.

    • tls_enabled — поддержка шифрованных TLS-соединений с кластером: true или false.

      Важно

      Включить шифрование соединений можно только при создании нового кластера. Отключить шифрование в кластере, для которого оно включено, невозможно.

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

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

    • announce_hostnames — использование FQDN вместо IP-адресов: true или false.

      Примечание

      Некоторые клиенты несовместимы с этой настройкой и не смогут подключиться к хостам кластера. Такие клиенты ожидают именно IP-адрес и некорректно обрабатывают ситуацию, когда IP-адрес подменяется на FQDN.

  4. Воспользуйтесь вызовом ClusterService.Create и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d @ \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.redis.v1.ClusterService.Create \
        < body.json
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Важно

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

Создать копию кластераСоздать копию кластера

Вы можете создать кластер Valkey™, который будет обладать настройками созданного ранее кластера. Для этого конфигурация исходного кластера Valkey™ импортируется в Terraform. В результате вы можете либо создать идентичную копию, либо взять за основу импортированную конфигурацию и внести в нее изменения. Использовать импорт удобно, если исходный кластер Valkey™ обладает множеством настроек и нужно создать похожий на него кластер.

Чтобы создать копию кластера Valkey™:

Terraform
  1. Если у вас еще нет Terraform, установите его.

  2. Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.

  3. Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

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

  5. В той же рабочей директории разместите файл с расширением .tf и содержимым:

    resource "yandex_mdb_redis_cluster" "old" { }
    
  6. Запишите идентификатор первоначального кластера Valkey™ в переменную окружения:

    export REDIS_CLUSTER_ID=<идентификатор_кластера>
    

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

  7. Импортируйте настройки первоначального кластера Valkey™ в конфигурацию Terraform:

    terraform import yandex_mdb_redis_cluster.old ${REDIS_CLUSTER_ID}
    
  8. Получите импортированную конфигурацию:

    terraform show
    
  9. Скопируйте ее из терминала и вставьте в файл с расширением .tf.

  10. Расположите файл в новой директории imported-cluster.

  11. Измените скопированную конфигурацию так, чтобы из нее можно было создать новый кластер:

    • Укажите новое имя кластера в строке resource и параметре name.
    • Удалите параметры created_at, health, id и status.
    • В блоке config добавьте параметр password.
    • Если в блоке config указано значение параметра notify_keyspace_events = "\"\"", удалите этот параметр.
    • Если указано значение параметра sharded = false, в блоках host удалите параметры shard_name.
    • Если в блоке maintenance_window указано значение параметра type = "ANYTIME", удалите параметр hour.
    • (Опционально) Внесите дополнительные изменения, если вам нужна не идентичная, а кастомизированная копия.
  12. В директории imported-cluster получите данные для аутентификации.

  13. В этой же директории настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

  14. Поместите конфигурационный файл в директорию imported-cluster и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.

  15. Проверьте корректность файлов конфигурации Terraform:

    terraform validate
    

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

  16. Создайте необходимую инфраструктуру:

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

      terraform plan
      

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

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

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

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

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

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

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

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

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

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

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

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

resource "yandex_mdb_redis_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

ПримерыПримеры

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

CLI
Terraform

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

Создайте кластер Yandex Managed Service for Valkey™ с тестовыми характеристиками:

  • Имя myredis.
  • Версия 7.2.
  • Окружение — production.
  • Сеть default.
  • Один хост класса hm2.nano в подсети b0rcctk2rvtr********, в зоне доступности ru-central1-a и группе безопасности с идентификатором enp6saqnq4ie********, с публичным доступом и приоритетом хоста 50.
  • С поддержкой SSL-соединений.
  • Хранилище на сетевых SSD-дисках (network-ssd) размером 16 ГБ.
  • Пароль user1user1.
  • С защитой от непреднамеренного удаления.

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

yc managed-redis cluster create \
  --name myredis \
  --redis-version 7.2 \
  --environment production \
  --network-name default \
  --resource-preset hm2.nano \
  --host zone-id=ru-central1-a,subnet-id=b0rcctk2rvtr********,assign-public-ip=true,replica-priority=50 \
  --security-group-ids enp6saqnq4ie******** \
  --enable-tls \
  --disk-type-id network-ssd \
  --disk-size 16 \
  --password=user1user1 \
  --deletion-protection

Создайте кластер Yandex Managed Service for Valkey™ и сеть для него с тестовыми характеристиками:

  • Имя myredis.
  • Версия 7.2.
  • Окружение — PRODUCTION.
  • Облако с идентификатором b1gq90dgh25********.
  • Каталог с идентификатором b1gia87mbaom********.
  • Новая сеть mynet.
  • Один хост класса hm2.nano в новой подсети mysubnet, в зоне доступности ru-central1-a, с публичным доступом и приоритетом хоста 50. Подсеть mysubnet будет иметь диапазон 10.5.0.0/24.
  • Новая группа безопасности redis-sg, разрешающая подключения через порт 6380 с любых адресов подсети mysubnet.
  • С поддержкой SSL-соединений.
  • Хранилище на сетевых SSD-дисках (network-ssd) размером 16 ГБ.
  • Пароль user1user1.
  • С защитой от непреднамеренного удаления.

Конфигурационный файл для такого кластера выглядит так:

resource "yandex_mdb_redis_cluster" "myredis" {
  name                = "myredis"
  environment         = "PRODUCTION"
  network_id          = yandex_vpc_network.mynet.id
  security_group_ids  = [ yandex_vpc_security_group.redis-sg.id ]
  tls_enabled         = true
  deletion_protection = true

  config {
    password = "user1user1"
    version  = "7.2"
  }

  resources {
    resource_preset_id = "hm2.nano"
    disk_type_id       = "network-ssd"
    disk_size          = 16
  }

  host {
    zone             = "ru-central1-a"
    subnet_id        = yandex_vpc_subnet.mysubnet.id
    assign_public_ip = true
    replica_priority = 50
  }
}

resource "yandex_vpc_network" "mynet" { name = "mynet" }

resource "yandex_vpc_security_group" "redis-sg" {
  name       = "redis-sg"
  network_id = yandex_vpc_network.mynet.id

  ingress {
    description    = "Valkey™"
    port           = 6380
    protocol       = "TCP"
    v4_cidr_blocks = ["10.5.0.0/24"]
  }
}

resource "yandex_vpc_subnet" "mysubnet" {
  name           = "mysubnet"
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.mynet.id
  v4_cidr_blocks = ["10.5.0.0/24"]
}

Создание шардированного кластера с одним шардомСоздание шардированного кластера с одним шардом

CLI
Terraform

Создайте шардированный кластер Yandex Managed Service for Valkey™ с тестовыми характеристиками:

  • Имя myredis.
  • Версия 7.2.
  • Окружение production.
  • С включенным шардированием.
  • С поддержкой SSL-соединений.
  • С защитой от непреднамеренного удаления.
  • Сеть default.
  • Группа безопасности с идентификатором enp6saqnq4ie********.
  • Класс хостов hm2.nano.
  • Один хост в шарде shard1, в подсети b0rcctk2rvtr********, в зоне доступности ru-central1-a, с публичным доступом и приоритетом хоста 50.
  • Хранилище на сетевых SSD-дисках (network-ssd) размером 16 ГБ.
  • Пароль user1user1.

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

yc managed-redis cluster create \
  --name myredis \
  --redis-version 7.2 \
  --environment production \
  --sharded \
  --enable-tls \
  --deletion-protection \
  --network-name default \
  --security-group-ids enp6saqnq4ie******** \
  --resource-preset hm2.nano \
  --host shard-name=shard1,subnet-id=b0rcctk2rvtr********,zone-id=ru-central1-a,assign-public-ip=true,replica-priority=50 \
  --disk-type-id network-ssd \
  --disk-size 16 \
  --password user1user1

Создайте шардированный кластер Yandex Managed Service for Valkey™ и сеть для него с тестовыми характеристиками:

  • Имя myredis.
  • Версия 7.2.
  • Окружение PRODUCTION.
  • С включенным шардированием.
  • С поддержкой SSL-соединений.
  • С защитой от непреднамеренного удаления.
  • Новая сеть mynet, которая будет состоять из одной подсети. Эта новая подсеть mysubnet будет иметь диапазон 10.5.0.0/24.
  • Новая группа безопасности redis-sg, разрешающая подключения через порт 6380 с любых адресов подсети mysubnet.
  • Класс хостов hm2.nano.
  • Один хост в шарде shard1, в подсети mysubnet, в зоне доступности ru-central1-a, с публичным доступом и приоритетом хоста 50.
  • Хранилище на сетевых SSD-дисках (network-ssd) размером 16 ГБ.
  • Пароль user1user1.

Конфигурационный файл для такого кластера выглядит так:

resource "yandex_mdb_redis_cluster" "myredis" {
  name                = "myredis"
  environment         = "PRODUCTION"
  sharded             = true
  tls_enabled         = true
  deletion_protection = true
  network_id          = yandex_vpc_network.mynet.id
  security_group_ids  = [yandex_vpc_security_group.redis-sg.id]

  config {
    version  = "7.2"
    password = "user1user1"
  }

  resources {
    resource_preset_id = "hm2.nano"
    disk_type_id       = "network-ssd"
    disk_size          = 16
  }

  host {
    shard_name = "shard1"
    subnet_id  = yandex_vpc_subnet.mysubnet.id
    zone       = "ru-central1-a"
    assign_public_ip = true
    replica_priority = 50
  }
}

resource "yandex_vpc_network" "mynet" { name = "mynet" }

resource "yandex_vpc_subnet" "mysubnet" {
  name           = "mysubnet"
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.mynet.id
  v4_cidr_blocks = ["10.5.0.0/24"]
}

resource "yandex_vpc_security_group" "redis-sg" {
  name       = "redis-sg"
  network_id = yandex_vpc_network.mynet.id

  ingress {
    description    = "Valkey™"
    port           = 6380
    protocol       = "TCP"
    v4_cidr_blocks = ["10.5.0.0/24"]
  }
}

Создание шардированного кластера с тремя шардамиСоздание шардированного кластера с тремя шардами

Terraform

Создайте шардированный кластер Yandex Managed Service for Valkey™ с тестовыми характеристиками:

  • Имя myredis.
  • Версия 7.2.
  • Окружение PRODUCTION.
  • Облако с идентификатором b1gq90dgh25********.
  • Каталог с идентификатором b1gia87mbaom********.
  • Новая сеть mynet.
  • Три подсети в сети mynet, по одной в каждой зоне доступности:
    • subnet-a с диапазоном 10.1.0.0/24;
    • subnet-b с диапазоном 10.2.0.0/24;
    • subnet-d с диапазоном 10.3.0.0/24.
  • Три хоста класса hm2.nano, по одному в каждой подсети.
  • Новая группа безопасности redis-sg, разрешающая подключения через порты 6379 и 26379 (Valkey™ Sentinel) с любых адресов подсетей.
  • Хранилище на сетевых SSD-дисках (network-ssd) размером 16 ГБ.
  • Пароль user1user1.
  • С защитой от непреднамеренного удаления.

Конфигурационный файл для такого кластера выглядит так:

resource "yandex_mdb_redis_cluster" "myredis" {
  name                = "myredis"
  environment         = "PRODUCTION"
  network_id          = yandex_vpc_network.mynet.id
  security_group_ids  = [yandex_vpc_security_group.redis-sg.id]
  sharded             = true
  deletion_protection = true

  config {
    password = "user1user1"
    version  = "7.2"
  }

  resources {
    resource_preset_id = "hm2.nano"
    disk_type_id       = "network-ssd"
    disk_size          = 16
  }

  host {
    zone       = "ru-central1-a"
    subnet_id  = yandex_vpc_subnet.subnet-a.id
    shard_name = "shard1"
  }

  host {
    zone       = "ru-central1-b"
    subnet_id  = yandex_vpc_subnet.subnet-b.id
    shard_name = "shard2"
  }

  host {
    zone       = "ru-central1-d"
    subnet_id  = yandex_vpc_subnet.subnet-d.id
    shard_name = "shard3"
  }
}

resource "yandex_vpc_network" "mynet" { name = "mynet" }

resource "yandex_vpc_subnet" "subnet-a" {
  name           = "subnet-a"
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.mynet.id
  v4_cidr_blocks = ["10.1.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet-b" {
  name           = "subnet-b"
  zone           = "ru-central1-b"
  network_id     = yandex_vpc_network.mynet.id
  v4_cidr_blocks = ["10.2.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet-d" {
  name           = "subnet-d"
  zone           = "ru-central1-d"
  network_id     = yandex_vpc_network.mynet.id
  v4_cidr_blocks = ["10.3.0.0/24"]
}

resource "yandex_vpc_security_group" "redis-sg" {
  name       = "redis-sg"
  network_id = yandex_vpc_network.mynet.id

  ingress {
    description    = "Valkey™"
    port           = 6379
    protocol       = "TCP"
    v4_cidr_blocks = [
      "10.1.0.0/24",
      "10.2.0.0/24",
      "10.3.0.0/24"
    ]
  }

  ingress {
    description    = "Valkey™ Sentinel"
    port           = 26379
    protocol       = "TCP"
    v4_cidr_blocks = [
      "10.1.0.0/24",
      "10.2.0.0/24",
      "10.3.0.0/24"
    ]
  }
}

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

Предыдущая
Информация об имеющихся кластерах
Следующая
Изменение настроек кластера
Проект Яндекса
© 2025 ООО «Яндекс.Облако»