Как начать работать с Managed Service for Sharded PostgreSQL
Примечание
Сервис находится на стадии Preview.
Сервис Managed Service for Sharded PostgreSQL позволяет создавать и поддерживать кластеры шардированного PostgreSQL (SPQR
Чтобы начать работу с сервисом:
- Создайте кластер Sharded PostgreSQL.
- Создайте шард в кластере Sharded PostgreSQL.
- Подключитесь к БД.
- Отправьте запросы к БД.
Перед началом работы
-
Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы. -
Если у вас еще нет каталога, создайте его:
-
В консоли управления
на панели сверху нажмите и выберите нужное облако. -
Справа от названия облака нажмите
. -
Выберите
Создать каталог.
-
Введите имя каталога. Требования к имени:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Введите описание каталога.
-
Выберите опцию Создать сеть по умолчанию. Будет создана сеть с подсетями в каждой зоне доступности. Также в этой сети будет создана группа безопасности по умолчанию, внутри которой весь сетевой трафик разрешен.
-
Нажмите кнопку Создать.

-
-
Назначьте вашему аккаунту в Yandex Cloud роли vpc.user и
managed-spqr.editorна каталог. Эти роли позволяют создать кластер.Примечание
Если вы не можете управлять ролями, обратитесь к администратору вашего облака или организации.
-
Подключаться к кластерам БД можно как изнутри, так и извне Yandex Cloud:
-
Чтобы подключиться изнутри Yandex Cloud, создайте виртуальную машину на основе Linux в той же облачной сети, что и кластер БД.
-
Чтобы подключиться к кластеру из интернета, включите публичный доступ к хостам при создании кластера.
Примечание
Следующий шаг предполагает, что подключение к кластеру производится с ВМ. Если вы собираетесь подключаться к кластеру из интернета, переходите к созданию кластера.
-
-
Подключитесь к ВМ по SSH.
Создайте кластер
-
В консоли управления
выберите каталог, в котором нужно создать кластер Sharded PostgreSQL. -
Выберите сервис Yandex Managed Service for Sharded PostgreSQL.
-
Нажмите кнопку Создать кластер.
-
В поле Имя кластера введите имя кластера.
-
Выберите окружение
PRODUCTION. -
Выберите тип шардирования:
- Стандартное — кластер будет состоять только из инфраструктурных хостов.
- Расширенное — кластер будет состоять только из хостов-роутеров и (опционально) хостов-координаторов.
-
В блоке Сетевые настройки:
- Выберите созданную перед началом работы облачную сеть.
- Выберите группу безопасности по умолчанию или создайте новую.
-
Задайте конфигурацию вычислительных ресурсов:
- Для стандартного шардирования задайте в блоке Инфраструктура конфигурацию инфраструктурных хостов.
- Для расширенного шардирования задайте в блоке Роутер конфигурацию хостов-роутеров.
Чтобы задать конфигурацию вычислительных ресурсов:
-
Выберите класс хостов. Он определяет технические характеристики виртуальных машин, на которых будут развернуты хосты кластера.
-
В блоке Хранилище:
-
В блоке Хосты укажите зоны доступности и подсети для хостов, которые будут созданы вместе с кластером.
Если вы собираетесь подключаться к кластеру из интернета, включите для хостов опцию Публичный доступ.
-
(Опционально) В блоке Координатор включите опцию Координатор и задайте конфигурацию хостов-координаторов.
-
В блоке База данных укажите:
- Имя БД. Оно должно быть уникальным в рамках каталога.
- Имя пользователя — владельца БД.
- Пароль.
-
В блоке Дополнительные настройки укажите пароль для консоли Sharded PostgreSQL.
-
Нажмите кнопку Создать кластер.
-
Дождитесь, когда кластер будет готов к работе: его статус сменится на Running, а состояние — на Alive. Чтобы проверить состояние, наведите курсор на статус кластера в столбце Доступность.
Создайте шард в кластере
-
В консоли управления
выберите каталог, в котором создан кластер Sharded PostgreSQL. -
Cоздайте кластер Managed Service for PostgreSQL в той же облачной сети, что и кластер Sharded PostgreSQL.
-
Откройте ваш кластер Sharded PostgreSQL и перейдите на вкладку
Шарды. -
В правом верхнем углу страницы нажмите кнопку Создать шард.
-
В открывшемся окне:
-
Задайте Имя шарда.
-
В поле Кластер Managed Service for PostgreSQL выберите созданный ранее кластер PostgreSQL.
Кластер Managed Service for PostgreSQL должен находиться в том же каталоге и в той же облачной сети, что и кластер Managed Service for Sharded PostgreSQL.
-
Подключитесь к БД
Важно
Если вы используете группы безопасности для облачной сети, настройте их так, чтобы был разрешен весь необходимый трафик между кластером и хостом, с которого выполняется подключение.
Чтобы подключиться к БД кластера Sharded PostgreSQL:
-
Получите SSL-сертификат:
mkdir -p ~/.postgresql && \ wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \ --output-document ~/.postgresql/root.crt && \ chmod 0655 ~/.postgresql/root.crtСертификат будет сохранен в файле
~/.postgresql/root.crt. -
Установите необходимые зависимости и клиент PostgreSQL:
sudo apt update && sudo apt install -y postgresql-client -
Подключитесь к БД:
psql "host=<FQDN_хоста> \ port=6432 \ sslmode=verify-full \ dbname=<имя_БД> \ user=<имя_пользователя> \ target_session_attrs=read-write"
-
Установите PostgreSQL для Windows
последней версии. Выберите только установку Command Line Tools. -
Получите SSL-сертификат:
mkdir $HOME\.postgresql; curl.exe -o $HOME\.postgresql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pemСертификат будет сохранен в файле
$HOME\.postgresql\root.crt. -
Установите переменные окружения для подключения:
$Env:PGSSLMODE="verify-full"; $Env:PGTARGETSESSIONATTRS="read-write" -
Подключитесь к БД:
& "C:\Program Files\PostgreSQL\<мажорная_версия_PostgreSQL>\bin\psql.exe" ` --host=<FQDN_хоста>.mdb.yandexcloud.net ` --port=6432 ` --username=<имя_пользователя> ` <имя_БД>
Отправьте запросы к БД
-
Создайте таблицу
customersв БД кластера:CREATE TABLE IF NOT EXISTS customers ( name VARCHAR, phone VARCHAR, acctbal NUMERIC ); -
Наполните таблицу данными:
INSERT INTO customers (name, phone, acctbal) VALUES ('Иван Иванов', '123-45-67', 1500.50), ('Мария Смирнова', '222-33-44', 3250.00), ('Дмитрий Кузнецов', '555-66-77', -50.75), ('Анна Орлова', '111-22-33', 0.00), ('Павел Сидоров', '444-55-66', 780.30); -
Запросите количество строк в таблице:
SELECT COUNT(*) FROM customers;Результат:
count ------- 5 (1 row)
Что дальше
- Изучите концепции сервиса.
- Узнайте подробнее о создании кластера и подключении к БД.