Облачная платформаAdvanced

Подключение к экземпляру базы данных через общедоступную сеть от ECS под управлением Linux

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

После создания экземпляра RDS for PostgreSQL вы можете подключиться к нему с ECS под управлением Linux с установленным клиентом PostgreSQL через публичную сеть.

Вы можете использовать клиент PostgreSQL psql для подключения к вашему экземпляру базы данных через защищенное соединение Secure Sockets Layer (SSL). SSL шифрует соединения с вашим экземпляром базы данных, повышая безопасность передаваемых данных.

SSL включен по умолчанию при создании экземпляра RDS for PostgreSQL и после создания экземпляра отключение невозможно.

Включение SSL снижает производительность чтения и записи вашего экземпляра примерно на 20%.

Также можно получить доступ к своему экземпляру базы данных через трансляцию сетевых адресов (NAT). Если настроены как NAT, так и EIP, то приоритет будет отдаваться EIP.

Шаг 1: Создайте экземпляр ECS

  1. Войдите в консоль управления и проверьте наличие доступных экземпляров ECS.
    • Если доступен экземпляр ECS под управлением Linux, перейдите к3.
    • Если доступного экземпляра ECS под управлением Linux нет, перейдите к2.
  2. Создайте экземпляр ECS и выберите Linux (например, CentOS) в качестве операционной системы.

    Чтобы загрузить клиент PostgreSQL на ECS, свяжите EIP с ECS.

    Подробнее о покупке экземпляра ECS см. раздел «Покупка экземпляра ECS» вРуководстве пользователя Elastic Cloud Server.

  3. На страницеИнформация об экземпляре ECSпросмотрите регион и виртуальную частную сеть (VPC), связанные с экземпляром ECS.

  4. На страницеОсновная информацияэкземпляра RDS for PostgreSQL просмотрите его регион и виртуальную частную сеть (VPC).

Шаг 2: Проверка связи и установка клиента PostgreSQL

  1. Войдите на экземпляр ECS. Подробности смотрите в разделе «Вход на экземпляр Linux ECS с использованием VNC» в руководстве пользователяElastic Cloud Server.
  2. На страницеЭкземплярыконсоли RDS щелкните имя экземпляра базы данных, чтобы перейти на страницуОсновная информация.
  3. В меню навигации выберитеСоединения и безопасность. На панелиИнформация о соединенииполучите публичный IP-адрес (EIP) и порт базы данных экземпляра.
  4. Проверьте возможность подключения публичного IP-адреса и порта экземпляра RDS for PostgreSQL с экземпляра ECS.
    curl -kv curl -kv EIP::5432
    • Если да, связь нормальная.
    • Если нет, проверяйте правила группы безопасности.
      • Если группа безопасности экземпляра ECS не содержит правило выхода с полемНазначениеустановленным на0.0.0.0/0и полемПротокол и портустановленным наВсе, добавьте правило выхода для плавающего IP-адреса и порта экземпляра базы данных.
      • Если в группе безопасности экземпляра базы данных отсутствует правило входа, разрешающее доступ с частного IP-адреса и порта экземпляра ECS, добавьте такое правило входа для частного IP-адреса и порта экземпляра ECS. Подробнее см.Настройка правил группы безопасности.
  5. Установите клиент PostgreSQL.
    • Установка клиента PostgreSQL (версии PostgreSQL 15 или более ранние)

      Сообщество PostgreSQL предоставляетметоды установки клиентовдля различных операционных систем. Вы можете скачать и установить клиент с помощью инструмента установки вашей ОС. Этот метод прост, но применим только для операционных систем, поддерживаемых сообществом PostgreSQL. В данном примере используется CentOS 7. Используйте инструмент установки по умолчанию вашей ОС для установки клиента (PostgreSQL версии 15 или ранее).

      Рисунок 1 Получение инструмента установки


      Выполните командыустановки:

      sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
      sudo yum install -y postgresql15-server

      Проверьте успешность установки.

      psql -V

      Рисунок 2 Успешная установка


    • Установка клиента PostgreSQL (без ограничений на версии PostgreSQL)

      Установка из исходного кода: этот способ установки не накладывает ограничений на версии экземпляров RDS for PostgreSQL и типы ОС ECS.

      Далее приводится описание процесса установки клиента PostgreSQL версии 16.4 на ECS, использующем образ EulerOS.

      1. Для использования SSL заранее скачайте OpenSSL на ECS.
        sudo yum install -y openssl-devel
      2. Получите ссылкузагрузки кода, выполните командуwgetдля скачивания пакета установки на ECS либоскачайте пакет установки на локальный ПКи затем загрузите его на ECS.
        wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz
      3. Распакуйте установочный пакет.
        tar xf postgresql-16.4.tar.gz
      4. Откомпилируйте код и установите клиент.
        cd postgresql-16.4
        ./configure --without-icu --without-readline --without-zlib --with-openssl
        make -j 8 && make install
        Note

        Если параметр--prefixне указан, путь по умолчанию будет/usr/local/pgsql. Клиент может быть установлен самым простым способом.

        Рисунок 3 Компиляция и установка


      5. Добавьте следующий код в файл /etc/profile для настройки переменных среды:
        export PATH=/usr/local/pgsql/bin:$PATH
        export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
        source /etc/profile
      6. Проверьте доступность psql.
        psql -V

        Рисунок 4 Тестирование psql


Шаг 3: Подключение к экземпляру базы данных через интерфейс командной строки (CLI-соединение по SSL)

  1. На странице Экземплярыконсоли RDS щелкните имя экземпляра базы данных, чтобы перейти на страницу Базовая информация.
  2. В панели навигации выберите Подключения и безопасность.
  3. В области Информация о подключении найдите поле SSL и нажмите кнопку для загрузки пакета Certificate Download.zip. Затем извлеките корневой сертификат ca.pem и связку сертификатов ca-bundle.pem из пакета.
  4. Загрузите ca.pem на ECS.
  5. Выполните следующую команду на ECS для подключения к экземпляру RDS для PostgreSQL:

    psql --no-readline -h <host> -p <port> "dbname=<database> user=<user> sslmode=verify-ca sslrootcert=<ca-file-directory>"

    Пример:

    psql --no-readline -h 192.168.0.7 -p 5432 "dbname=postgres user=root sslmode=verify-ca sslrootcert=/root/ca.pem"

    Таблица 1 Параметры

    Параметр

    Описание

    <host>

    Полученный в пункте 3.

    <port>

    Порт базы данных, полученный в пункте 3. Значение по умолчанию равно 5432.

    <database>

    Имя базы данных, к которой необходимо подключиться. Имя базы данных по умолчанию – postgres.

    <user>

    Укажите учетную запись администратора root.

    <ca-file-directory>

    Каталог сертификата удостоверяющего центра, используемого для SSL-подключения. Сертификат должен находиться в каталоге, где выполняется команда.

    sslmode

    Режим SSL-подключения. Установите значение verify-ca для проверки доверительности сервиса с использованием удостоверяющего центра.

  6. Введите пароль учетной записи базы данных по запросу.
    Пароль:

    Если отображается следующая информация, подключение успешно.

    SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)