Управление базами данных YDB
В сервисе Managed Service for YDB вы можете создавать базы данных в двух режимах: бессерверном (Serverless) и с выделенными серверами (Dedicated).
С помощью консоли управления или YC CLI можно:
- Создать и изменить параметры бессерверной (Serverless) базы данных.
- Создать и изменить параметры базы данных с выделенными серверами (Dedicated).
- Посмотреть список баз данных.
- Удалить базу данных.
Создать и изменить параметры бессерверной (Serverless) базы данных
Создать Serverless базу данных
-
В консоли управления выберите каталог, в котором будет создана БД.
-
В списке сервисов выберите Managed Service for YDB.
-
Нажмите кнопку Создать базу данных.
-
Введите Имя БД. Требования к имени:
- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
-
В блоке Тип базы данных выберите опцию Serverless.
-
Вам будут предложены значения по умолчанию. Они подобраны таким образом, чтобы вы могли эффективно начать работу. Вы можете изменить их сейчас или в будущем, если потребуется. Подробнее о настройках БД см. раздел Режимы работы Serverless и Dedicated.
-
Нажмите кнопку Создать базу данных.
Дождитесь, когда статус БД изменится на Running
.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды YC CLI для создания БД:
yc ydb database create --help
-
Выполните команду:
yc ydb database create <имя_БД> --serverless
Результат:
id: etne027gi9aap7ldau3f folder_id: b1gmit33ngp3kr4mhjmo created_at: "2022-12-13T09:17:06Z" name: svlbd status: PROVISIONING endpoint: grpcs://ydb.serverless.yandexcloud.net:2135/?database=/ru-central1/b1gia87mbaomkfvsleds/etne027gi9aap7ldau3f serverless_database: storage_size_limit: "53687091200" location_id: ru-central1 backup_config: backup_settings: - name: daily backup_schedule: daily_backup_schedule: execute_time: hours: 17 backup_time_to_live: 604800s type: SYSTEM document_api_endpoint: https://docapi.serverless.yandexcloud.net/ru-central1/b1gia87mbaomkfvsleds/etne027gi9aap7ldau3f monitoring_config: {}
Все параметры можно будет изменить в дальнейшем командой update
YC CLI или в консоли управления. Подробнее см. в разделе Параметры Serverless базы данных.
Любая создаваемая Serverless БД является георезервированной в трех зонах доступности.
Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.
Внимание
Зеркало временно недоступно.
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Подробнее о Terraform читайте в документации.
-
Опишите в конфигурационном файле Terraform параметры Serverless БД, которую необходимо создать:
resource "yandex_ydb_database_serverless" "database1" { name = "<имя_БД>" serverless_database { enable_throttling_rcu_limit = <true_или_false> provisioned_rcu_limit = <пропускная_способность> storage_size_limit = <объем_данных> throttling_rcu_limit = <выделенная_пропускная_способность> } }
Где:
name
— имя БД. Обязательный параметр.enable_throttling_rcu_limit
— включить ограничение пропускной способности. Необязательный параметр. Значение по умолчаниюfalse
.provisioned_rcu_limit
— ограничение потребления Request Units в секунду. Необязательный параметр. Значение по умолчанию 0.storage_size_limit
— объем данных, ГБ. Необязательный параметр. Значение по умолчанию 50 ГБ.throttling_rcu_limit
— устанавленное значение показывает, какое потребление Request Units в секунду оплачивается по часам по тарифу. Ноль выключает почасовую оплату. Необязательный параметр. Значение по умолчанию 0.
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform создаст все требуемые ресурсы. Проверить изменения можно в консоли управления или с помощью команды YC CLI:
yc ydb database get <имя_БД>
Пример
Создание Serverless БД с ограничением пропускной способности 10 RU/c и объемом данных 50 ГБ:
resource "yandex_ydb_database_serverless" "database1" { name = "test-ydb-serverless" serverless_database { enable_throttling_rcu_limit = false provisioned_rcu_limit = 10 storage_size_limit = 50 throttling_rcu_limit = 0 } }
Изменить параметры Serverless базы данных
- В консоли управления выберите каталог, в котором нужно изменить настройки БД.
- В списке сервисов выберите Managed Service for YDB.
- Нажмите значок
- Настройте параметры БД:
- При необходимости измените имя БД.
- В блоке Ограничения задайте пропускную способность и объем данных.
- В блоке Тарификация задайте выделенную пропускную способность.
- Нажмите кнопку Изменить базу данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Посмотрите описание команды YC CLI для изменения БД:
yc ydb database update --help
Имена параметров Serverless БД начинаются с sls-
. Другие параметры применимы только к Dedicated БД.
Примеры
-
Переименование БД dbtest в mydb:
yc ydb database update dbtest \ --new-name mydb
-
Установка ограничения на потребление 100 Request Units в секунду для Serverless БД с именем db5:
yc ydb database update db5 \ --sls-throttling-rcu 100
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и измените фрагмент с описанием Serverless базы данных:
resource "yandex_ydb_database_serverless" "database1" { name = "<имя_БД>" serverless_database { enable_throttling_rcu_limit = <true_или_false> provisioned_rcu_limit = <пропускная_способность> storage_size_limit = <объем_данных> throttling_rcu_limit = <выделенная_пропускная_способность> } }
Где:
name
— имя БД. Обязательный параметр.enable_throttling_rcu_limit
— включить ограничение пропускной способности. Необязательный параметр. Значение по умолчаниюfalse
.provisioned_rcu_limit
— ограничение потребления Request Units в секунду. Необязательный параметр. Значение по умолчанию 0.storage_size_limit
— объем данных, ГБ. Необязательный параметр. Значение по умолчанию 50 ГБ.throttling_rcu_limit
— устанавленное значение показывает, какое потребление Request Units в секунду оплачивается по часам по тарифу. Ноль выключает почасовую оплату. Необязательный параметр. Значение по умолчанию 0.
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform применит требуемые изменения к ресурсам. Проверить изменения можно в консоли управления или с помощью команды YC CLI:
yc ydb database get <имя_БД>
Пример
Изменение выделенной пропускной способности и объема данных для БД test-ydb-serverless
:
resource "yandex_ydb_database_serverless" "database1" { name = "test-ydb-serverless" serverless_database { enable_throttling_rcu_limit = false provisioned_rcu_limit = 10 storage_size_limit = 80 throttling_rcu_limit = 100 } }
Создать и изменить параметры базы данных с выделенными серверами (Dedicated)
Создать Dedicated базу данных
-
В консоли управления выберите каталог, в котором будет создана БД.
-
В списке сервисов выберите Managed Service for YDB.
-
Нажмите кнопку Создать базу данных.
-
Введите Имя базы. Требования к имени:
- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
-
В блоке Тип базы данных выберите опцию Dedicated.
-
В блоке Вычислительные ресурсы выберите тип и количество вычислительных ресурсов.
-
В блоке Группы хранения выберите тип диска и количество групп хранения, определяющее суммарный объем хранилища.
-
В блоке Сеть настройте параметры сети:
-
(опционально) В поле Публичные IP-адреса выберите опцию Присвоить, если вы планируете отправлять запросы к базе не только из сети Yandex Cloud, но и через интернет.
Важно
Потребление исходящего интернет-трафика для баз Managed Service for YDB с внешними IP-адресами учитывается по действующим тарифам.
Начисления за исходящий интернет-трафик, возникшие в результате использования Managed Service for YDB, будут компенсированы грантами.
-
Выберите существующую сеть из списка Облачная сеть или создайте новую:
- Нажмите кнопку Создать новую.
- В открывшемся окне укажите Имя новой сети.
- (опционально) Выберите опцию Создать подсети. Подсети в каждой зоне доступности будут созданы автоматически.
- Нажмите кнопку Создать.
-
В блоке Подсети для каждой зоны доступности выберите подсеть или создайте новую:
- Нажмите кнопку Создать новую.
- В открывшемся окне укажите Имя новой подсети.
- (опционально) Введите Описание подсети.
- Выберите из списка Зона доступности нужную зону.
- Задайте адрес подсети в формате CIDR.
- Нажмите кнопку Создать.
-
-
Нажмите кнопку Создать базу данных.
Дождитесь, когда статус БД изменится на Running
.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды YC CLI для создания БД:
yc ydb database create --help
-
Выполните команду:
yc ydb database create <имя_БД> \ --dedicated \ --network-name <название_сети> \ --storage <тип_носителя>,<количество_групп_хранения> \ --resource-preset <конфигурация_вычислительных_ресурсов> \
Где:
--dedicated
— конфигурация БД с выделенными серверами.--network-name
— имя облачной сети, в которой будет создана БД. Может быть указана сетьdefault
.--storage
— тип носителя и количество групп хранения в форматеtype=<type>,groups=<groups>
. Для типаssd
одна группа хранения вмещает 100 ГБ данных.--resource-preset
— конфигурация вычислительных ресурсов узла. Возможные значения перечислены в колонке Имя конфигурации в таблице раздела База данных на выделенных ресурсах (Dedicated).
Важные дополнительные параметры:
--public-ip
— флаг назначения публичных IP-адресов. Без этого флага вы не сможете подключиться к создаваемой БД из интернета.--fixed-size INT
— количество узлов в кластере, по умолчанию 1. Узлы выделяются в разных зонах доступности, таким образом конфигурация из трех узлов будет географически распределена в трех зонах доступности.--async
— флаг асинхронного создания. Создание Dedicated БД может занимать значительное время, измеряемое минутами. Вы можете указать данный флаг для того, чтобы управление было возвращено сразу как только команда на создание БД будет принята облаком.
Примеры
-
Создание минимальной одноузловой Dedicated БД YDB с именем dedb, доступной из Интернет:
yc ydb database create dedb \ --dedicated \ --network-name default \ --storage type=ssd,groups=1 \ --resource-preset medium \ --public-ip
-
Асинхронное создание трехузловой георезервированной Dedicated БД YDB с хранилищем в 300 ГБ и вычислительным узлами по 64 ГБ RAM, с именем dedb3, доступной из Интернет:
yc ydb database create dedb3 \ --dedicated --network-name default \ --storage type=ssd,groups=3 \ --resource-preset medium-m64 \ --public-ip \ --fixed-size 3 \ --async
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
В конфигурационном файле Terraform опишите параметры Dedicated БД, которую необходимо создать:
resource "yandex_ydb_database_dedicated" "database1" { name = "<имя_БД>" network_id = "<идентификатор_сети>" subnet_ids = ["<идентификатор_подсети1>", "<идентификатор_подсети2>", "<идентификатор_подсети3>"] resource_preset_id = "<конфигурация_вычислительных_ресурсов>" scale_policy { fixed_scale { size = <количество_экземпляров_БД> } } storage_config { group_count = <количество_групп_хранения> storage_type_id = "<тип_носителя>" } }
Где:
name
— имя БД.network_id
— идентификатор сети, к которой подключается БД.subnet_ids
— список идентификаторов подсетей. Перечисляются через запятую.resource_preset_id
— конфигурация вычислительных ресурсов узла. Возможные значения перечислены в колонке Имя конфигурации в таблице раздела База данных на выделенных ресурсах (Dedicated).scale_policy
— политика масштабирования, гдеsize
— количество экземпляров БД.storage_config
— конфигурация хранилища, где:group_count
— количество групп хранения.storage_type_id
— тип носителя. Для типаssd
одна группа хранения вмещает 100 ГБ данных.
-
Создайте БД:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform создаст все требуемые ресурсы. Проверить изменения можно в консоли управления или с помощью команды YC CLI:
yc ydb database list
Пример
Создание минимальной одноузловой Dedicated БД Managed Service for YDB с именем test-bd
, доступной из интернета:
resource "yandex_ydb_database_dedicated" "database2" { name = "test-ydb-dedicated" network_id = yandex_vpc_network.my-net.id subnet_ids = [yandex_vpc_subnet.my-subnet-a.id, yandex_vpc_subnet.my-subnet-b.id, yandex_vpc_subnet.my-subnet-c.id] resource_preset_id = "medium" scale_policy { fixed_scale { size = 1 } } storage_config { group_count = 1 storage_type_id = "ssd" } }
Изменить параметры Dedicated базы данных
- В консоли управления выберите каталог, в котором нужно изменить настройки БД.
- В списке сервисов выберите Managed Service for YDB.
- Нажмите значок
- Настройте параметры БД:
- При необходимости измените имя БД.
- В блоке Вычислительные ресурсы выберите тип и количество вычислительных ресурсов.
- В блоке Группы хранения выберите тип диска и количество групп хранения, определяющее суммарный объем хранилища.
- Нажмите кнопку Изменить базу данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Посмотрите описание команды YC CLI для изменения БД:
yc ydb database update --help
К Dedicated БД применимы параметры без префикса sls-
.
Пример
Изменение количества групп хранения для БД с типом дисков ssd и одной группой хранения:
yc ydb database update test-db \ --storage type=ssd,group=2
Количество групп хранения нельзя уменьшить.
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл Terraform и измените фрагмент с описанием БД:
resource "yandex_ydb_database_dedicated" "database2" { name = "my-first-ydb-dedicated" network_id = yandex_vpc_network.my-net.id subnet_ids = [yandex_vpc_subnet.my-subnet-a.id, yandex_vpc_subnet.my-subnet-b.id, yandex_vpc_subnet.my-subnet-c.id] resource_preset_id = "medium" scale_policy { fixed_scale { size = 2 } } storage_config { group_count = 1 storage_type_id = "ssd" } }
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Проверить изменения можно в консоли управления или с помощью команды YC CLI:
yc ydb database get <имя_БД>
Посмотреть список баз данных
- В консоли управления выберите каталог, для которого нужно получить список БД.
- В списке сервисов выберите Managed Service for YDB.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду:
yc ydb database list
Удалить базу данных
- В консоли управления выберите каталог, в котором нужно удалить БД.
- В списке сервисов выберите Managed Service for YDB.
- Нажмите значок
- Подтвердите удаление.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду:
yc ydb database delete <имя_БД>
Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигураций Terraform и удалите фрагмент с описанием БД.
Пример описания БД в конфигурации Terraform:
resource "yandex_ydb_database_dedicated" "database2" { name = "test-ydb-dedicated" network_id = yandex_vpc_network.my-net.id subnet_ids = [yandex_vpc_subnet.my-subnet-a.id, yandex_vpc_subnet.my-subnet-b.id, yandex_vpc_subnet.my-subnet-c.id] resource_preset_id = "medium" scale_policy { fixed_scale { size = 1 } } storage_config { group_count = 1 storage_type_id = "ssd" } }
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
Terraform удалит все требуемые ресурсы. Проверить изменения можно в консоли управления или с помощью команды YC CLI:
yc ydb database list