Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

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

Вы можете создавать кластеры баз данных, состоящие из одной или нескольких баз выбранного типа СУБД.

Панель управления

Создать кластер баз данных можно в панели timeweb.cloud/my в разделе «Базы данных». 

95ebf493 4252 42bb 972c A0e852b263f8

Нажмите «Добавить» и укажите параметры создаваемой базы:

  1. Тип базы данных и ее версия
    Доступны следующие базы:
    • MySQL 5.7, 8
    • PostgreSQL 13, 14, 15, 16
    • MongoDB 5
    • Redis 6
    • Opensearch 2.9
    • ClickHouse 23.10.1
    • Kafka 3.5
    • RabbitMQ 3.12

Изменить выбранную БД или ее версию будет невозможно.

Cd22a11a 8e50 48fd 82e0 Bfe8dd7bce7f

  1. Регион размещения и зона доступности.

91ba4fda 7b64 4c89 Be6b 0ac4b40b9374

  1. Тариф
    Тариф можно будет увеличить в любой момент. Уменьшить тариф невозможно.

76f31273 4b5b 478a B7b9 5a241019e81d

  1. Сеть
    В сетевых настройках можно выбрать:
    • какой внешний IP выдать базе — закрепленный за этой базой или плавающий (последний можно будет передавать другим сервисам на вашем аккаунте);
    • приватную сеть — можно выбрать одну из существующих сетей или создать новую.

Ba7f3b3a E717 4fb1 A368 46209fb47c41

  1. Имя базы и пароль пользователя БД
    Здесь вы задаете пароль дефолтного пользователя (в дальнейшем вы сможете добавлять других пользователей БД). Пароль можно сгенерировать в панели или указать свой. Вы всегда сможете изменить пароль, как и название базы. Также выберите, в какой проект добавить базу данных.

A9c37392 385e 49bf 8f3c 754fa0456c54

Нажмите «Заказать», и вы сможете начать работу с базой через пару минут.

Базе будет выдан публичный IP-адрес, который будет доступен в панели управления. Отключить доступ по публичному IP, если это потребуется, вы сможете в настройках базы после ее создания.

При создании кластера для него будут включены бесплатные автоматические бэкапы с ежедневным созданием и хранением одной резервной копии. Изменить настройки можно в настройках кластера на вкладке «Бэкапы».

CLI

Для работы у вас должен быть установлен интерфейс командной строки Timeweb Cloud.

  1. Ознакомьтесь со справкой по команде создания баз данных:
twc db create --help
  1. Посмотрите список доступных пресетов:
twc db list-presets

Можно отфильтровать пресеты по типу БД с помощью type. Например, чтобы получить только пресеты MySQL:

twc db list-presets -f type:mysql
  1. Создайте базу данных:
twc db create --name db-dev --type mysql8 --login app --preset-id 327

Далее twc предложит ввести пароль для базы данных. Вместо интерактивного ввода вы можете использовать опцию --password и ввести пароль прямо в командной строке (может быть небезопасно).

Команда выше создаст инстанс СУБД MySQL 8 db-dev с пользователем app. Имя базы данных для подключения будет default_db.

Получить все параметры подключения можно с помощью команды ниже, заменив 123456 на ваш ID инстанса СУБД:

twc db get -o yaml 123456

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

twc db create --name db-dev --type mysql8 --login app --preset-id 327 --param max_connections=200 --param max_allowed_packet=64M
Базе будет выдан публичный IP-адрес, который будет доступен в панели управления. Отключить доступ по публичному IP, если это потребуется, вы сможете в настройках базы после ее создания.

API

Для создания кластера базы данных воспользуйтесь методом createDatabaseCluster. Отправьте POST-запрос на /api/v1/databases и передайте в нем параметры создаваемого кластера.

Terraform

Дальнейшее описание предполагает, что у вас уже установлен Terraform, настроен провайдер Timeweb Cloud и инициализирован проект (шаги 1–4 этой инструкции).

  1. Ознакомьтесь с документацией:

Тарифы баз данных можно получить через API: https://api.timeweb.cloud/api/v1/presets/dbs

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

Например, с помощью параметров ниже мы создадим следующие сущности:

  • Кластер MySQL 5.7
  • Локация — Санкт-Петербург
  • 2 Гб ОЗУ и 20 Гб диска 
  • Приватная сеть (локальный IP будет выдан автоматически; на текущий момент назначить его через Terraform невозможно)
  • Публичный IP
  • Две базы данных
  • Два пользователя базы данных
data "twc_database_preset" "preset" {
    location = "ru-1"
    type = "mysql"
    disk = 20 * 1024
    ram = 2 * 1024
}

#Создаем приватную сеть
resource "twc_vpc" "example-vpc" {
  name = "Example VPC"
  description = "Some example VPC"
  subnet_v4 = "192.168.0.0/24"
  location = "ru-1"
} #Создаем кластер resource "twc_database_cluster" "my-cluster" {   name = "My Cluster"   type = "mysql5"     preset_id = data.twc_database_preset.preset.id
    network {
      id = twc_vpc.example-vpc.id
  }
  is_external_ip = true } #Создаем базу данных resource "twc_database_instance" "db-instance" { cluster_id = twc_database_cluster.my-cluster.id name = "database1" } #Создаем еще одну базу данных resource "twc_database_instance" "second-db-instance" { cluster_id = twc_database_cluster.my-cluster.id name = "database2" } #Создаем пользователя с доступом ко всем БД resource "twc_database_user" "test-user-2" { cluster_id = twc_database_cluster.my-cluster.id login = "admin" password = "strongpassword1" privileges = ["SELECT", "INSERT", "UPDATE", "DELETE"] } #Создаем пользователя с доступом к конкретной базе resource "twc_database_user" "test-user" { cluster_id = twc_database_cluster.my-cluster.id login = "newuser" password = "userpassword1" instance { instance_id = twc_database_instance.second-db-instance.id privileges = ["SELECT", "INSERT", "UPDATE", "DELETE"] } }
  1. Проверьте конфигурацию:
terraform validate

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

  1. Проверьте запланированные изменения:
terraform plan

Terraform выведет информацию о создаваемых ресурсах.

  1. Если все корректно — примените конфигурацию:
terraform apply

 

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

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону