VK Cloud logo
Обновлена20 декабря 2023 г. в 05:58

Создание инстанса БД

В статье приведены примеры создания при помощи Terraform инстансов БД c различными настройками.

Подготовительные шаги

  1. Ознакомьтесь с доступными ресурсами и квотами для региона, в котором планируете создать инстанс БД. Для разных регионов могут быть настроены разные квоты.

    Если вы хотите увеличить квоты, обратитесь в техническую поддержку.

  2. Установите Terraform и настройте провайдер, если это еще не сделано.

    Поместите настройки провайдера в файл конфигурации Terraform provider.tf.

1. Создайте файл с описанием инстанса БД

Во всех примерах ниже инстансы БД создаются со следующими свойствами:

  • Регион: по умолчанию (совпадает с регионом проекта).
  • Зона доступности: по умолчанию (для региона Москва — GZ1).
  • Тип СУБД и версия: MySQL 8.0.
  • Конфигурация инстанса БД: Single.
  • Внешний IP-адрес: назначен.

Выберите один из примеров создания кластера и создайте файл конфигурации Terraform main.tf с нужным содержимым:

Шаблон конфигурации для ВМ инстанса задается через переменную db-instance-flavor.

1variable "db-instance-flavor" {
2  type    = string
3  default = "STD3-4-8-50"
4}
5
6data "vkcs_compute_flavor" "db" {
7  name = var.db-instance-flavor
8}
9
10resource "vkcs_networking_network" "db" {
11  name           = "db-net"
12  admin_state_up = true
13}
14
15resource "vkcs_networking_subnet" "db-subnetwork" {
16  name            = "db-subnet"
17  network_id      = vkcs_networking_network.db.id
18  cidr            = "10.100.0.0/16"
19  dns_nameservers = ["8.8.8.8", "8.8.4.4"]
20}
21
22data "vkcs_networking_network" "extnet" {
23  name = "ext-net"
24}
25
26resource "vkcs_networking_router" "db-router" {
27  name                = "db-router"
28  admin_state_up      = true
29  external_network_id = data.vkcs_networking_network.extnet.id
30}
31
32resource "vkcs_networking_router_interface" "db" {
33  router_id = vkcs_networking_router.db-router.id
34  subnet_id = vkcs_networking_subnet.db-subnetwork.id
35}
36
37resource "vkcs_db_instance" "db-instance" {
38  name        = "db-instance"
39  datastore {
40    type    = "mysql"
41    version = "8.0"
42  }
43  floating_ip_enabled = true
44  flavor_id   = data.vkcs_compute_flavor.db.id
45  size        = 8
46  volume_type = "ceph-ssd"
47  disk_autoexpand {
48    autoexpand    = true
49    max_disk_size = 1000
50  }
51  network {
52    uuid = vkcs_networking_network.db.id
53  }
54}

2. Создайте ресурсы при помощи Terraform

  1. Поместите файлы конфигурации Terraform terraform.rc, vkcs_provider.tf, main.tf и secret.tfvars (если был создан) в одну директорию.

  2. Перейдите в эту директорию.

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

    terraform init

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

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

    terraform apply

    При запросе подтверждения введите yes.

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

3. Проверьте применение конфигурации

Перейдите в личный кабинет VK Cloud, в раздел Базы данныхИнстансы баз данных. Убедитесь, что все описанные в конфигурации объекты были успешно созданы:

  • Инстанс БД.
  • Внешний IP-адрес для инстанса — отображается на странице инстанса.
  • Расширение Prometheus Node exporter (если было установлено) — отображается на странице инстанса на вкладке Расширения.
  • БД на инстансе (если была создана) — отображается на странице инстанса на вкладке Список баз данных.
  • Пользователь БД (если был создан) — отображается на странице инстанса на вкладке Пользователи.

Удалите неиспользуемые ресурсы

Некоторые объекты, созданные в этом сценарии, потребляют ресурсы. Если они вам больше не нужны, удалите их:

  1. Перейдите в директорию с файлами конфигурации Terraform.

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

    terraform destroy

    При запросе подтверждения введите yes.

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