Подключение к кластеру Sharded PostgreSQL
К хостам кластера Managed Service for Sharded PostgreSQL можно подключиться:
-
Через интернет, если вы настроили публичный доступ для нужного хоста. К таким хостам подключиться можно только с использованием SSL-соединения.
-
С виртуальных машин Yandex Cloud, расположенных в той же облачной сети. Если к хосту нет публичного доступа, для подключения с таких виртуальных машин необязательно использовать SSL-соединение.
Подключение возможно ко всем типам хостов: INFRA, ROUTER, COORDINATOR, хосты PostgreSQL-кластера. Подключение выполняется через порт 6432. К хостам типа COORDINATOR, а также к консоли администратора Sharded PostgreSQL необходимо подключаться от имени пользователя spqr-console к базе данных spqr-console. Консоль администратора позволяет настроить правила шардирования. Подробнее см. в документации SPQR
Настройка групп безопасности
Для подключения к кластеру необходимо, чтобы группы безопасности содержали правила, которые разрешают трафик с определенных портов, IP-адресов или из других групп безопасности.
Настройки правил будут различаться в зависимости от выбранного способа подключения:
Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик с любых IP-адресов на порт 6432. Для этого создайте следующее правило для входящего трафика:
- Диапазон портов —
6432. - Протокол —
TCP. - Источник —
CIDR. - CIDR блоки —
0.0.0.0/0.
-
Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик из группы безопасности, в которой находится ВМ, на порт 6432. Для этого в этих группах создайте следующее правило для входящего трафика:
- Диапазон портов —
6432. - Протокол —
TCP. - Источник —
Группа безопасности. - Группа безопасности — если кластер и ВМ находятся в одной и той же группе безопасности, выберите значение
Текущая(Self). В противном случае укажите группу безопасности ВМ.
- Диапазон портов —
-
Настройте группу безопасности, в которой находится ВМ так, чтобы можно было подключаться к ВМ и был разрешен трафик между ВМ и хостами кластера.
Пример правил для ВМ:
-
Для входящего трафика:
- Диапазон портов —
22. - Протокол —
TCP. - Источник —
CIDR. - CIDR блоки —
0.0.0.0/0.
Это правило позволяет подключаться к ВМ по протоколу SSH.
- Диапазон портов —
-
Для исходящего трафика:
- Диапазон портов —
0-65535. - Протокол —
Любой(Any). - Назначение —
CIDR. - CIDR блоки —
0.0.0.0/0.
Это правило разрешает любой исходящий трафик, что позволяет не только подключаться к кластеру, но и устанавливать на ВМ необходимые для этого сертификаты и утилиты.
- Диапазон портов —
-
Примечание
Вы можете задать более детальные правила для групп безопасности, например, разрешающие трафик только в определенных подсетях.
Группы безопасности должны быть корректно настроены для всех подсетей, в которых будут размещены хосты кластера.
Получение SSL-сертификата
Хосты Sharded PostgreSQL с публичным доступом поддерживают только шифрованные соединения. Чтобы использовать их, получите SSL-сертификат:
mkdir -p ~/.postgresql && \
wget "https://storage.yandexcloud.kz/cloud-certs/CA.pem" \
--output-document ~/.postgresql/root.crt && \
chmod 0655 ~/.postgresql/root.crt
Сертификат будет сохранен в файле ~/.postgresql/root.crt.
mkdir $HOME\.postgresql; curl.exe -o $HOME\.postgresql\root.crt https://storage.yandexcloud.kz/cloud-certs/CA.pem
Сертификат будет сохранен в файле $HOME\.postgresql\root.crt.
Корпоративные политики и антивирус могут блокировать скачивание сертификата. Подробнее см. в разделе Вопросы и ответы.
FQDN хоста Sharded PostgreSQL
Для подключения к хосту потребуется его FQDN — доменное имя.
FQDN можно посмотреть в консоли управления:
- Перейдите на страницу кластера.
- Перейдите в раздел Хосты.
- Скопируйте значение в столбце FQDN хоста.
Подключение с помощью Bash
Перед подключением установите зависимости:
sudo apt update && sudo apt install --yes postgresql-client
-
Подключитесь к базе данных:
psql "host=<FQDN_хоста> \ port=6432 \ sslmode=disable \ dbname=<имя_БД> \ user=<имя_пользователя> \ target_session_attrs=read-write"Где
target_session_attrsопределяет тип запроса к хосту. Например, значениеread-writeдает возможность чтения и записи. Подробнее см. в документации SPQR .После выполнения команды введите пароль пользователя для завершения процедуры подключения.
-
Для проверки успешности подключения выполните запрос:
SELECT version();
-
Подключитесь к базе данных:
psql "host=<FQDN_хоста> \ port=6432 \ sslmode=verify-full \ dbname=<имя_БД> \ user=<имя_пользователя> \ target_session_attrs=read-write"Где
target_session_attrsопределяет тип запроса к хосту. Например, значениеread-writeдает возможность чтения и записи. Подробнее см. в документации SPQR .После выполнения команды введите пароль пользователя для завершения процедуры подключения.
-
Для проверки успешности подключения выполните запрос:
SELECT version();
Подключение из pgAdmin 4
Подключение проверялось для pgAdmin 4
Подключаться из pgAdmin 4 можно только к хостам кластера в публичном доступе с использованием SSL-сертификата.
Создайте новое подключение к серверу:
-
Выберите в меню Object → Register → Server...
-
На вкладке General в поле Name укажите имя, под которым кластер будет отображаться в интерфейсе pgAdmin 4. Имя может быть любым.
-
На вкладке Connection укажите параметры подключения:
- Host name/address — FQDN хоста;
- Port —
6432; - Maintenance database — имя БД для подключения;
- Username — имя пользователя, от имени которого выполняется подключение;
- Password — пароль пользователя.
-
На вкладке Parameters:
- Установите параметр SSL mode в значение
verify-full. - Добавьте новый параметр Root certificate и укажите в нем путь к сохраненному файлу SSL-сертификата.
- Установите параметр SSL mode в значение
-
Нажмите кнопку Save, чтобы сохранить настройки подключения к серверу.
Кластер появится в списке серверов в навигационном меню.