VK Cloud logo
Обновлена 15 апреля 2024 г. в 08:50

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

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

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

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

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

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

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

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

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

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

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

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

variable "db-instance-flavor" {  type    = string  default = "STD3-4-8-50"}data "vkcs_compute_flavor" "db" {  name = var.db-instance-flavor}resource "vkcs_networking_network" "db" {  name           = "db-net"  admin_state_up = true}resource "vkcs_networking_subnet" "db-subnetwork" {  name            = "db-subnet"  network_id      = vkcs_networking_network.db.id  cidr            = "10.100.0.0/16"  dns_nameservers = ["8.8.8.8", "8.8.4.4"]}data "vkcs_networking_network" "extnet" {  name = "ext-net"}resource "vkcs_networking_router" "db-router" {  name                = "db-router"  admin_state_up      = true  external_network_id = data.vkcs_networking_network.extnet.id}resource "vkcs_networking_router_interface" "db" {  router_id = vkcs_networking_router.db-router.id  subnet_id = vkcs_networking_subnet.db-subnetwork.id}resource "vkcs_db_instance" "db-instance" {  name        = "db-instance"  datastore {    type    = "mysql"    version = "8.0"  }  floating_ip_enabled = true  flavor_id   = data.vkcs_compute_flavor.db.id  size        = 8  volume_type = "ceph-ssd"  disk_autoexpand {    autoexpand    = true    max_disk_size = 1000  }  network {    uuid = vkcs_networking_network.db.id  }}

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. Дождитесь завершения операции.