С помощью этого руководства вы настроите подключение с локальной IDE DBeaver с сервисом Managed PostgreSQL®.
Вы выполните развертывание виртуальной машины Ubuntu 22.04, настройку сетей и групп безопасности, создание кластера PostgreSQL, установку и конфигурирование сервера nginx для подключения к базе данных с локальной IDE.
Данная конфигурация позволит подключиться с любой IDE, например: VS Code, DataGrip, DBeaver.
Вы будете использовать следующие сервисы:
Виртуальные машины — сервис, в рамках которого предоставляется виртуальная машина.
Публичный IP-адрес — для доступа к базе данных через интернет.
Managed PostgreSQL — управляемая база данных PostgreSQL.
VPC — изолированная виртуальная сеть для создания безопасной инфраструктуры.
Nginx — веб-сервер для проксирования запросов и организации защищeнного HTTPS-доступа к приложению.
DBeaver — универсальный клиент баз данных для управления и администрирования SQL и NoSQL СУБД.
Шаги:
Перед началом работы
Если вы уже зарегистрированы, войдите под своей учетной записью.
1. Разверните ресурсы в облаке
Создайте виртуальную сеть с названием ide-connection-VPC.
Создайте подсеть со следующими параметрами:
Название — ide-connection-subnet.
Адрес — 10.10.1.0/24.
VPC — ide-connection-VPC.
DNS-серверы — 8.8.8.8.
Создайте новую группу безопасности со следующими параметрами:
Зону доступности — укажите ту же зону доступности, что выбрана для сети.
Название — ide-connection.
Добавьте правила входящего трафика:
Протокол — TCP.
Порт — 55432.
Тип источника — IP-адрес.
Источник — <ip-address>/0, где <ip-address> — IP-адрес, с которого вы будете подключаться.
Создайте виртуальную машину со следующими параметрами:
Название —ide-connection.
Образ — на вкладке Публичные выберите образ Ubuntu 22.04.
Подключить публичный IP — оставьте опцию включенной. Для виртуальной машины будет арендован и назначен прямой публичный IP.
Группы безопасности — ide-connection.
Логин — user1.
Метод аутентификации — Публичный ключ.
Сетевой интерфейс — выберите тип Подсеть с публичным IP.
Сетевые настройки— выберите подсеть ide-connection-subnet.
Имя хоста — ide-connection.
Создайте кластер Managed PostgreSQL со следующими параметрами:
Название кластера — ide-connection.
Название базы данных — default.
Версия PostgreSQL — 16.
Режим — Стандарт.
Тип — Single.
Подсеть — ide-connection-subnet.
Убедитесь, что ресурсы созданы и отображаются в личном кабинете:
На странице сервиса VPC:
отображается сеть ide-connection-VPC;
в списке подсетей отображается ide-connection-subnet.
На странице сервиса «Группы безопасности» отображается группа безопасности ide-connection со статусом «Создана».
На странице сервиса «Виртуальные машины» отображается виртуальная машина ide-connection со статусом «Запущена».
На странице сервиса Managed PostgreSQL® отображается кластер ide-connection со статусом «Доступен».
2. Настройте nginx для проксирования запросов к базе данных
На этом шаге вы настроите систему и nginx-сервер для настройки подключения к базе данных.
Обновите систему:
sudo apt update && sudo apt upgrade -yУстановите nginx:
sudo apt install nginx -yНастройте сетевой фильтр:
sudo ufw allow OpenSSHsudo ufw allow 55432sudo ufw enableПроверьте установку nginx и ufw:
nginx -vsudo ufw statusСоздайте каталог для stream-конфигураций:
sudo mkdir -p /etc/nginx/streamsСоздайте файл конфигурации:
sudo nano /etc/nginx/streams/postgres-proxy.confВставьте конфигурацию в файл:
server {listen 55432;proxy_pass <db_private_ip>:5432;proxy_connect_timeout 5s;proxy_timeout 600s;}Где <db_private_ip> — IP-адрес кластера Managed PostgreSQL®.
Откройте файл конфигурации nginx для подключения stream-блока:
sudo nano /etc/nginx/nginx.confДобавьте блок перед блоком http:
stream {log_format basic'$remote_addr:$remote_port -> $server_addr:$server_port ''upstream: $upstream_addr status: $status';access_log /var/log/nginx/postgres-proxy-access.log basic;error_log /var/log/nginx/postgres-proxy-error.log;include /etc/nginx/streams/*.conf;}Примените конфигурацию nginx:
sudo nginx -tsudo systemctl restart nginxПроверьте, что nginx слушает порт:
sudo ss -tulpn | grep 55432
3. Протестируйте подключение с локальной IDE DBeaver
На этом шаге вы подключитесь с локальной IDE к кластеру Managed PostgreSQL®.
Откройте DBeaver или другую IDE для работы с базами данных.
Создайте новое подключение к базе данных со следующими параметрами:
Host — публичный IP-адрес виртуальной машины.
Port — 55432.
Database — название базы данных.
Username — имя пользователя кластера Managed PostgreSQL®.
Password — пароль пользователя кластера Managed PostgreSQL®.
Сохраните соединение.
4. Удалите доступ по SSH для виртуальной машины
Для повышения безопасности удалите доступ по SSH для вашей виртуальной машины, так как он больше не требуется.
В личном кабинете перейдите в сервис «Виртуальные машины» и выберите машину ide-connection-VPC, созданную на первом шаге.
Перейдите на вкладку Сетевые параметры.
Нажмите Изменить группы безопасности для публичного IP-адреса.
Удалите группу SSH-access_ru.
Нажмите Сохранить.
Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH.
Результат
Вы настроили безопасное подключение к управляемому кластеру PostgreSQL из локальной IDE DBeaver через облачную инфраструктуру с использованием nginx в качестве прокси-сервера.
Полученные навыки помогут организовывать удаленный доступ к облачным базам данных из различных IDE, настраивать сетевую безопасность и группы доступа, а также использовать nginx для проксирования подключений к управляемым сервисам баз данных.