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

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

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

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

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

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

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

Вы также можете получить доступ к вашему DB instance через Network Address Translation (NAT). Если вы настроили как NAT, так и EIP, предпочтительно используется EIP.

Шаг 1: Создать ECS

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

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

    Для получения подробностей о том, как приобрести Linux ECS, см. «Purchasing an ECS» в Elastic Cloud Server User Guide.

  3. На странице ECS Information просмотрите регион и VPC ECS.

  4. На странице Basic Information RDS for PostgreSQL instance просмотрите его регион и VPC.

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

  1. Войдите в ECS. Для получения подробной информации см. "Logging In to a Linux ECS Using VNC" в Elastic Cloud Server User Guide.
  2. На странице Instances консоли RDS нажмите имя DB instance, чтобы перейти на страницу Basic Information.
  3. Выберите Connectivity & Security в панели навигации. В области Connection Information получите EIP и порт базы данных DB‑инстанса.
  4. На ECS проверьте, можно ли подключиться к EIP и порту инстанса RDS for PostgreSQL.
    curl -kv EIP : 5432
    • Если да, сетевое подключение в порядке.
    • Если нет, проверьте правила группы безопасности.
      • Если в группе безопасности ECS отсутствует исходящее правило, в котором Destination установлен в 0.0.0.0/0 и Protocol & Port установлен в All, добавьте исходящее правило для floating IP address и порта инстанса DB.
      • Если в группе безопасности инстанса DB нет входящего правила, разрешающего доступ с частного IP‑адреса и порта ECS, добавьте входящее правило для частного IP‑адреса и порта ECS. Для получения подробной информации см. Configuring Security Group Rules.
  5. Установите клиент PostgreSQL.
    • Установка клиента PostgreSQL (PostgreSQL 15 или более ранней версии)

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

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


      Запустите команды installation:

      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

        Если --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: Подключитесь к DB Instance с помощью CLI (SSL‑соединение)

  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, чтобы подключиться к экземпляру RDS for 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"

    Table 1 Параметры

    Параметр

    Описание

    <host>

    EIP, полученный в 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)