Top.Mail.Ru
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

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

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

  • Панель управления
  • CLI
  • API
  • Terraform

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

7d9e117e 9245 4da7 B57d E4b02afaf3ce

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

  1. Тип базы данных и ее версия
    Доступны следующие базы:
    • MySQL 8.0, 8.4
    • PostgreSQL 14, 15, 16, 17
    • MongoDB 7.0, 8.0
    • Redis 7
    • Opensearch 2.19.1
    • ClickHouse 23.10.1, 24.8.14, 25.1.6
    • Kafka 3.5.1
    • RabbitMQ 4.0

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

Image3

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

    Выберите регион размещения кластера. Обратите внимание, что создание кластера с репликацией возможно только в BGP-сети и в следующих локациях: Санкт-Петербург, Москва, Нидерланды и Германия.

Screenshot 04 18 25 17:44:12

  1. Конфигурация

    Конфигурацию можно будет изменить в любой момент. Уменьшить конфигурацию невозможно. 

    Для баз данных MySQL и PostgreSQL доступно создание кластера с репликацией. Вы можете указать количество реплик при настройке конфигурации: 3 или 5. Изменить количество реплик после создания кластера будет невозможно. 

    Цена за кластер с репликацией рассчитывается как количество реплик * стоимость одной ноды.

    Для MySQL используется кластерное решение на базе Percona XtraDB Cluster. Репликация в кластере осуществляется по принципу «multi-master» — это значит, что все узлы в кластере равнозначны и могут одновременно принимать записи и запросы. Обновления данных выполняются в синхронном режиме, что гарантирует консистентность данных на всех узлах. В случае недоступности одного из узлов, другие продолжают обслуживание запросов, обеспечивая высокую отказоустойчивость системы.

    Для PostgreSQL используется кластер на основе Patroni и Etcd. Репликация работает по принципу «leader-replica», что означает, что в кластере есть один главный сервер (leader), на который направляются все записи. Реплики получают изменения в асинхронном режиме. В случае отказа лидера, Patroni с помощью Etcd автоматически переключает роль лидера на одну из реплик, обеспечивая высокую доступность базы данных.

Image5

  1. Сеть
    В сетевых настройках можно выбрать:
    • нужен ли базе публичный IP-адрес. Например, если планируется, что база будет работать только в приватной сети, выпускать для нее публичный IP не требуется. Стоимость публичного IP — 150 рублей в месяц; все публичные IPv4 «плавающие», их можно переносить между разными сервисами на вашем аккаунте;
    • приватную сеть — можно выбрать одну из существующих сетей или создать новую. При необходимости укажите приватный IP вручную.

Screenshot 02 13 25 18:49:25

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

Image4

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

Image6

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

 

Была ли статья полезна?
Ваша оценка очень важна
  • Ваш комментарий
  • Предпросмотр
Комментарии 9
Alexandr
15.12.2024, 12:00

Добрый день как с помощью TF создать postgreSQL БД с публичным доступом? при передаче is_external_ip = true соответствующий признак "Разрешить доступ по публичному IP-адресу" не выставляется при попытке создать ресурс resource "twc_server_ip" с указанием source_server_id с идентификатором кластера или инстанса TF пишет ошибку can't receive server: received api error; status_code: 404, message: Server with id: 198725 is not found, error_code: server_not_found что я делаю неправильно?

Команда Timeweb Cloud
Команда Timeweb Cloud
17.12.2024, 07:58

Добрый день!

Для создания базы данных PostgreSQL с публичным доступом через Terraform можно воспользоваться следующим примером конфигурации:

terraform {
  required_providers {
    twc = {
      source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud"
    }
  }
  required_version = ">= 1.5.3"
}

provider "twc" {
  token = "токен"
}

# Выбор пресета для PostgreSQL
data "twc_database_preset" "example-db-preset" {
  location = "ru-1"
  type     = "postgres"
  disk     = 8 * 1024

  price_filter {
    from = 100
    to   = 500
  }
}

# Создание кластера PostgreSQL
resource "twc_database_cluster" "example-postgresql" {
  name      = "example_postgresql"
  type      = "postgres"
  preset_id = data.twc_database_preset.example-db-preset.id
}

# Создание экземпляра в кластере PostgreSQL
resource "twc_database_instance" "example-postgresql-instance" {
  cluster_id = twc_database_cluster.example-postgresql.id
  name = "example"
}

# Создание Floating IP
resource "twc_floating_ip" "example-floating-ip" {
  availability_zone = "spb-3"
  comment = "Floating IP for PostgreSQL"

  resource {
    type = "dbaas"
    id   = twc_database_cluster.example-postgresql.id
  }
}

Обратите внимание, что параметр id в ресурсе twc_floating_ip должен ссылаться на идентификатор кластера.

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

Кирилл
05.12.2024, 17:42

Пожалуйста, подскажите, есть ли возможность использовать TLS для соединения с managed mongodb?

Команда Timeweb Cloud
Команда Timeweb Cloud
06.12.2024, 10:39

Добрый день!

Такой возможности пока нет. Поддержка TLS для DBaaS запланирована на январь 2025 года. Вы можете увидеть это в нашем роадмапе.

Дмитрий
Дмитрий
11.11.2024, 20:24

Подскажите надёжный способ переноса базы данных postgres из одного кластера в другой (схема и данные) с учётом того, что нет прав владельца. Как сделать dump/restore для такого сценария?

Спасибо.

Дмитрий
Дмитрий
19.09.2024, 19:29

Приведите пожалуйста пример как создать redis через teraform. Подход кластер + инстанс + пользователь как для postgres, как я вижу не подходит. Инстанс как я понимаю создаётся сразу вместе с кластером.

Команда Timeweb Cloud
Команда Timeweb Cloud
20.09.2024, 11:38

Добрый день!

Да, создание инстанса для Redis не подразумевается.

Создать кластер Redis через Terraform действительно не удается 🤔 Мы передали информацию коллегам, чтобы это исправить, но по срокам решения пока сориентировать не сможем. Спасибо, что обратили внимание!

Дмитрий
Дмитрий
16.09.2024, 19:54

Как получить хост базы данных после создания через twc_database_instance для использования в k8s кластере?

Команда Timeweb Cloud
Команда Timeweb Cloud
18.09.2024, 10:25

Добрый день!

Для получения IP-адреса хоста базы данных, который можно использовать для подключения к базе данных в k8s, вы можете воспользоваться выходными переменными (output) в Terraform.

Добавьте следующий блок в ваш .tf-файл:

output "db_ip" {
  value = twc_database_cluster.my-cluster.networks[0].ips[0].ip
}

Где my-cluster — это имя вашего кластера.

Затем выполните команду terraform apply. После успешного выполнения вы сможете получить IP-адрес базы данных командой:

terraform output db_ip

или с использованием опции для вывода чистого значения:

terraform output -raw db_ip

Этот IP-адрес вы можете передать в переменные окружения или конфигурационные файлы в Kubernetes для настройки подключения к базе данных.

Мы используем на сайте куки.
В интернете без них никак