Как начать работать с Managed Service for PostgreSQL
Сервис Managed Service for PostgreSQL помогает создавать и поддерживать кластеры PostgreSQL в инфраструктуре Yandex Cloud.
Чтобы начать работу с сервисом:
Перед началом работы
-
Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы. -
Если у вас еще нет каталога, создайте его:
-
В консоли управления
в списке слева выберите нужное облако. -
Справа сверху нажмите кнопку Создать каталог.
-
Введите имя каталога. Требования к имени:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Введите описание каталога.
-
Выберите опцию Создать сеть по умолчанию. Будет создана сеть с подсетями в каждой зоне доступности. Также в этой сети будет создана группа безопасности по умолчанию, внутри которой весь сетевой трафик разрешен.
-
Нажмите кнопку Создать.
-
-
Назначьте вашему аккаунту в Yandex Cloud роли vpc.user и managed-postgresql.editor на каталог. Эти роли позволяют создать кластер.
Примечание
Если вы не можете управлять ролями, обратитесь к администратору вашего облака или организации.
-
Подключаться к кластерам БД можно как изнутри, так и извне Yandex Cloud:
-
Чтобы подключиться изнутри Yandex Cloud, создайте виртуальную машину на основе Linux в той же облачной сети, что и кластер БД.
-
Чтобы подключиться к кластеру из интернета, запросите публичный доступ к хостам при создании кластера.
Примечание
Следующий шаг предполагает, что подключение к кластеру производится с ВМ. Если вы собираетесь подключаться к кластеру из интернета, переходите к созданию кластера.
-
-
Подключитесь к ВМ по SSH.
Создайте кластер
-
В консоли управления
выберите каталог, в котором нужно создать кластер БД. -
Выберите сервис Managed Service for PostgreSQL.
-
Нажмите кнопку Создать кластер.
-
В поле Имя кластера введите имя кластера.
-
Выберите окружение
PRODUCTION. -
Выберите версию PostgreSQL.
-
Выберите класс хостов. Он определяет технические характеристики виртуальных машин, на которых будут развернуты хосты кластера.
-
В блоке Хранилище:
-
В блоке База данных:
- Укажите имя БД. Оно должно быть уникальным в рамках каталога.
- Укажите имя пользователя — владельца БД.
- Введите пароль или сгенерируйте его с помощью Connection Manager.
-
В блоке Сетевые настройки:
- Выберите созданную перед началом работы облачную сеть.
- Выберите группу безопасности по умолчанию или создайте новую.
-
В блоке Хосты укажите зоны доступности и подсети для хостов, которые будут созданы вместе с кластером.
Если вы собираетесь подключаться к кластеру из интернета, включите для хостов опцию Публичный доступ.
-
Нажмите кнопку Создать кластер.
-
Дождитесь, когда кластер будет готов к работе: его статус сменится на Running, а состояние — на Alive. Чтобы проверить состояние, наведите курсор на статус кластера в столбце Доступность.
Подключитесь к БД
Важно
Если вы используете группы безопасности для облачной сети, настройте их так, чтобы был разрешен весь необходимый трафик между кластером и хостом, с которого выполняется подключение.
Чтобы подключиться к БД:
-
Получите 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=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \ 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=c-<идентификатор_кластера>.rw.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)
Что дальше
- Перенесите данные в БД кластера.
- Изучите концепции сервиса.
- Узнайте больше о создании кластера и подключении к БД.
- Ознакомьтесь с практическими руководствами по работе с сервисом.
- Ознакомьтесь с вопросами и ответами.