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

Подключение к DB Instance из Linux ECS через приватную сеть

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

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

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

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

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

Шаг 1: Create an ECS

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

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

    Подробности о том, как приобрести Linux ECS, см. «Purchasing an ECS» в Elastic Cloud Server User Guide.

  3. On the ECS Information page, view the region and VPC of the ECS.

  4. On the Basic Information page of the RDS for PostgreSQL instance, view its region and VPC.
  5. Проверьте, находятся ли ECS и экземпляр RDS for PostgreSQL в одном регионе и VPC.
    • Если да, перейдите к Step 2: Test Connectivity and Install a PostgreSQL Client.
    • Если они находятся не в одном регионе, создайте еще один ECS или DB instance. ECS и DB instance в разных регионах не могут взаимодействовать друг с другом. Чтобы уменьшить сетевую задержку, разверните ваш DB instance в регионе, ближайшем к вашим рабочим нагрузкам.
    • Если они находятся в разных VPC, измените настройки VPC у ECS. Для получения подробной информации см. «Changing a VPC» в Elastic Cloud Server User Guide.

Шаг 2: Тестирование соединения и установка PostgreSQL Client

  1. Войдите в ECS. Для получения подробной информации см. «Logging In to a Windows ECS Using VNC» в Elastic Cloud Server User Guide.
  2. На странице Instances консоли RDS нажмите имя DB instance, чтобы перейти на страницу Basic Information.
  3. Выберите Connectivity & Security в панели навигации. В области Connection Information получите плавающий IP-адрес и порт базы данных DB instance.
  4. На ECS проверьте, можно ли подключиться к плавающему IP-адресу и порту базы данных DB instance.
    curl -kv 192.168.0.7 : 5432
    • Если да, сетевое соединение в порядке.
    • Если нет, проверьте правила группы безопасности.
      • If the ECS security group lacks an outbound rule with Destination set to 0.0.0.0/0 and Protocol & Port set to All, add an outbound rule for the DB instance's floating IP address and port.
      • Если в группе безопасности DB instance отсутствует входящее правило, разрешающее доступ с частного IP-адреса и порта ECS, добавьте входящее правило для частного IP-адреса и порта ECS. Для получения подробной информации см. Configuring Security Group Rules.
  5. Установите PostgreSQL client.
    • Установка PostgreSQL Client (PostgreSQL 15 или более ранних версий)

      The PostgreSQL community provides client installation methods for different OSs. You can download and install the client using the installation tool of the OS. This installation method is simple but can be used only for the OSs supported by the PostgreSQL community. In this example, CentOS 7 is used. Use the default installation tool of the OS to install a client (PostgreSQL 15 or earlier).

      Рисунок 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.

      В дальнейшем используется ECS с образом EulerOS в качестве примера для описания установки клиента PostgreSQL 16.4.

      1. Для использования SSL загрузите OpenSSL на ECS заранее.
        sudo yum install -y openssl-devel
      2. Obtain the code download link, run wget to download the installation package to the ECS, or download the installation package to the local PC and then upload it to the 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

        If --prefix is not specified, the default path is /usr/local/pgsql. The client can be installed in the simplest way.

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


      5. Add the following code to the /etc/profile file to configure environment variables:
        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: Подключение к DB Instance с помощью CLI (SSL Connection)

  1. На странице Instances консоли RDS нажмите имя DB instance, чтобы перейти на страницу Basic Information.
  2. В панели навигации выберите Connectivity & Security.
  3. В области Connection Information найдите поле SSL и нажмите , чтобы загрузить пакет Certificate Download.zip. Затем извлеките корневой сертификат ca.pem и файл ca-bundle.pem из пакета.
  4. Загрузите ca.pem в ECS.
  5. Выполните следующую команду на ECS для подключения к DB instance:

    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>

    Floating IP address, полученный в 3.

    <port>

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

    <database>

    Имя базы данных для подключения. Имя базы данных по умолчанию — postgres.

    <user>

    Учётная запись администратора root.

    <ca-file-directory>

    Каталог сертификата CA, используемого для SSL‑соединения. Этот сертификат должен быть сохранён в каталоге, из которого выполняется команда.

    sslmode

    Режим SSL‑соединения. Установите значение verify-ca, чтобы использовать CA для проверки доверия к сервису.

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

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

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