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

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

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

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

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

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

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

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

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

    Чтобы загрузить клиент PostgreSQL на ECS, свяжите Elastic IP-адрес с ECS и убедитесь, что ECS находится в той же зоне доступности, виртуальной частной сети (VPC) и группе безопасности, что и экземпляр RDS for PostgreSQL для обеспечения бесшовной связи.

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

  3. На странице Информация об экземпляре ECS просмотрите регион и VPC экземпляра ECS.

  4. На странице Основная информация экземпляра RDS for PostgreSQL просмотрите его регион и VPC.
  5. Проверьте, находятся ли экземпляр ECS и экземпляр RDS for PostgreSQL в одном регионе и VPC.
    • Если да, перейдите к Шагу 2: Проверка сетевого подключения и установка клиента PostgreSQL.
    • Если они расположены в разных регионах, создайте другой экземпляр ECS или экземпляр базы данных. Экземпляры ECS и базы данных в разных регионах не могут взаимодействовать друг с другом. Для снижения задержки сети разместите свой экземпляр базы данных в регионе, ближайшем к вашей рабочей нагрузке.
    • Если они находятся в разных VPC, измените настройки VPC для экземпляра ECS. Подробнее см. раздел «Изменение VPC» в руководстве пользователя «Elastic Cloud Server User Guide».Elastic Cloud Server User Guide.

Шаг 2: Проверка сетевого подключения и установка клиента PostgreSQL

  1. Войдите на экземпляр ECS. Подробности см. в разделе «Вход на экземпляр Windows ECS с использованием VNC» руководства пользователя «Elastic Cloud Server User Guide».Elastic Cloud Server User Guide.
  2. На странице Экземпляры консоли RDS щелкните имя экземпляра базы данных, чтобы перейти на страницу Основная информация.
  3. Выберите Соединения и безопасность в панели навигации. На вкладке Информация о соединении получите плавающий IP-адрес и порт базы данных экземпляра базы данных.
  4. На экземпляре ECS проверьте возможность подключения к плавающему IP-адресу и порту базы данных экземпляра базы данных.
    curl -kv curl -kv 192.168.0.7::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.

      Для использования SSL заранее скачайте OpenSSL на ECS.sudo yum install -y openssl-devel


    • Получите ссылку для скачивания кода, выполните команду wget для загрузки пакета установки на ECS или скачайте пакет установки на локальный ПК

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

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

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


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

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


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

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

    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>

    Плавающий IP-адрес, полученный в 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)