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

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

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

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

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

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

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

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

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

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

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

    Для получения подробностей о том, как приобрести Linux ECS, см. "Purchasing an ECS" in Elastic Cloud Server Руководство пользователя.

  3. На ECS Информация страница, просмотрите регион и VPC ECS.

  4. На Основная информация страница экземпляра RDS for PostgreSQL, просмотрите его регион и VPC.

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

  1. Войдите в ECS. Для получения подробностей см. "Logging In to a Linux ECS Using VNC" в Elastic Cloud Server Руководство пользователя.
  2. На Экземпляры странице консоли RDS, нажмите имя экземпляра БД, чтобы перейти к Основная информация страница.
  3. Выберите Подключение & Безопасность из навигационной области. В Информация о подключении области, получите EIP и порт базы данных экземпляра БД.
  4. На ECS проверьте, могут ли быть подключены EIP и порт базы данных экземпляра БД.
    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)

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

      Ниже используется ECS с образом EulerOS в качестве примера, чтобы описать, как установить клиент PostgreSQL 16.4.

      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, нажмите название экземпляра DB, чтобы перейти к Основная информация страница.
  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>

    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)