Вы можете создавать кластеры баз данных, состоящие из одной или нескольких баз выбранного типа СУБД.
Создать кластер баз данных можно в панели timeweb.cloud/my в разделе «Базы данных».
Нажмите «Добавить» и укажите параметры создаваемой базы:
Изменить выбранную БД или ее версию будет невозможно.
Выберите регион размещения кластера. Обратите внимание, что создание кластера с репликацией возможно только в BGP-сети и в следующих локациях: Санкт-Петербург, Москва, Нидерланды и Германия.
Конфигурацию можно будет изменить в любой момент. Уменьшить конфигурацию невозможно.
Для баз данных MySQL и PostgreSQL доступно создание кластера с репликацией. Вы можете указать количество реплик при настройке конфигурации: 3 или 5. Изменить количество реплик после создания кластера будет невозможно.
Цена за кластер с репликацией рассчитывается как количество реплик * стоимость одной ноды.Для MySQL используется кластерное решение на базе Percona XtraDB Cluster. Репликация в кластере осуществляется по принципу «multi-master» — это значит, что все узлы в кластере равнозначны и могут одновременно принимать записи и запросы. Обновления данных выполняются в синхронном режиме, что гарантирует консистентность данных на всех узлах. В случае недоступности одного из узлов, другие продолжают обслуживание запросов, обеспечивая высокую отказоустойчивость системы.
Для PostgreSQL используется кластер на основе Patroni и Etcd. Репликация работает по принципу «leader-replica», что означает, что в кластере есть один главный сервер (leader), на который направляются все записи. Реплики получают изменения в асинхронном режиме. В случае отказа лидера, Patroni с помощью Etcd автоматически переключает роль лидера на одну из реплик, обеспечивая высокую доступность базы данных.
Нажмите «Заказать», и вы сможете начать работу с базой через пару минут.
Добрый день как с помощью 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 что я делаю неправильно?
Добрый день!
Для создания базы данных 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
должен ссылаться на идентификатор кластера.Если ошибка сохраняется и исправить конфигурацию не удается, создайте, пожалуйста, тикет в поддержку и прикрепите файл конфигурации, с которым возникает проблема. Коллеги помогут разобраться в ситуации.
Пожалуйста, подскажите, есть ли возможность использовать TLS для соединения с managed mongodb?
Добрый день!
Такой возможности пока нет. Поддержка TLS для DBaaS запланирована на январь 2025 года. Вы можете увидеть это в нашем роадмапе.
Подскажите надёжный способ переноса базы данных postgres из одного кластера в другой (схема и данные) с учётом того, что нет прав владельца. Как сделать dump/restore для такого сценария?
Спасибо.
Приведите пожалуйста пример как создать redis через teraform. Подход кластер + инстанс + пользователь как для postgres, как я вижу не подходит. Инстанс как я понимаю создаётся сразу вместе с кластером.
Добрый день!
Да, создание инстанса для Redis не подразумевается.
Создать кластер Redis через Terraform действительно не удается 🤔 Мы передали информацию коллегам, чтобы это исправить, но по срокам решения пока сориентировать не сможем. Спасибо, что обратили внимание!
Как получить хост базы данных после создания через twc_database_instance для использования в k8s кластере?
Добрый день!
Для получения 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 для настройки подключения к базе данных.